home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
historic
/
v941.tgz
/
icon.v941src.tar
/
icon.v941src
/
ipl
/
packs
/
tcll1
/
fp.grm
< prev
next >
Wrap
Text File
|
2000-07-29
|
841b
|
35 lines
start : fpProg.
fpProg = { def | aplExp}.
def = DEF ident "=" fnExp DEFN!.
def = VAL ident "=" fnExp ":" obj VALU!.
aplExp = fnExp ":" obj APPL!.
fnExp = fnComp [ "->" fnComp ";" fnExp COND!]
| while func fnExp WHILE!
.
fnComp = func { "." func COMP!}.
func = ident FNID!
| ( "+" | "-" | "*"
| "=" | "~="
| "<" | ">" | ">=" "<=" ) FNID!
| selector SEL!
| bu func obj BU!
| "/" func INSERT!
| "@" func ALL!
| "(" fnExp ")" PARENS!
| "[" ( fnExpList | EMPTYCONS! ) "]" CONS!
| literal
.
selector = signedInt.
fnExpList = fnExp CONS1! { "," fnExp CONSNEXT! }.
literal = "'" obj CONST!
| string STRCONST!
.
obj = atom
| "<" objList ">" OBJL!
.
objList = obj OBJ1! { "," obj OBJLNEXT! } | EMPTYOBJL! .
atom = signedInt INTOBJ! | signedFloat FLOATOBJ!
| string STRINGOBJ! | ident OBJID!
.
fiducials: ":" "->" ";" "]" ")" ">".