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 >
Text File  |  2000-07-29  |  841b  |  35 lines

  1. start : fpProg.
  2. fpProg = { def | aplExp}.
  3. def = DEF ident "=" fnExp DEFN!.
  4. def = VAL ident "=" fnExp ":" obj VALU!.
  5. aplExp = fnExp ":" obj APPL!.
  6. fnExp    = fnComp [ "->" fnComp ";" fnExp COND!]
  7.     | while func fnExp WHILE!
  8.     .
  9. fnComp = func { "." func COMP!}.
  10. func    = ident FNID!
  11.     | ( "+" | "-" | "*"
  12.         | "=" | "~="
  13.         | "<" | ">" | ">=" "<=" ) FNID!
  14.     | selector SEL!
  15.     | bu func obj BU!
  16.     | "/" func INSERT!
  17.     | "@" func ALL!
  18.     | "(" fnExp ")" PARENS!
  19.     | "[" ( fnExpList | EMPTYCONS! ) "]" CONS!
  20.     | literal
  21.     .
  22. selector = signedInt.
  23. fnExpList = fnExp CONS1! { "," fnExp CONSNEXT! }.
  24. literal = "'" obj CONST!
  25.     | string STRCONST!
  26.     .
  27. obj    = atom
  28.     | "<" objList ">" OBJL!
  29.     .
  30. objList = obj OBJ1! { "," obj OBJLNEXT! } | EMPTYOBJL! .
  31. atom    = signedInt INTOBJ! | signedFloat FLOATOBJ!
  32.     | string STRINGOBJ! | ident OBJID!
  33.     .
  34. fiducials: ":" "->" ";" "]" ")" ">".
  35.