Changeset 3803 for applications/trunk


Ignore:
Timestamp:
Jun 3, 2008, 1:47:50 PM (12 years ago)
Author:
orlov
Message:
  • RAST for LFC -- finished.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/trunk/LFC/lfc.ast

    r3799 r3803  
    99e.func_type ::= t.type e.types t.type
    1010
    11 e.tpyes ::= /*empty*/ | t.type e.types
     11e.types ::= /*empty*/ | t.type e.types
    1212
    1313e.var_decls ::= /*empty*/ | (t.var e.vars t.type) e.var_decls
     
    1717e.sentences ::= /*empty*/ | t.sentence e.sentences
    1818
    19 t.sentence ::= (SENTENCE t.name (t.pattern e.patterns) t.term e.exp)
     19t.sentence ::= (SENTENCE t.name ((t.pat e.pattern) e.patterns) t.term e.exp)
    2020
    21 e.patterns ::= /*empty*/ | t.pattern e.patterns
     21e.patterns ::= /*empty*/ | (t.pat e.pattern) e.patterns
     22
     23e.pattern ::= /*empty*/ | t.pat e.pattern
     24
     25t.pat ::= t.var | t.const
    2226
    2327e.exp ::= /*empty*/ | t.term e.exp
     28
     29t.term ::= (UNDEFINED)
     30         | t.const
     31         | t.var
     32         | (CALL t.name (e.exp) e.args)
     33         | (PAREN e.exp)
     34         | (IF (e.exp) (e.exp) (e.exp))
     35         | (LET (t.assign e.assigns) e.exp)
     36
     37e.args ::= /*empty*/ | (e.exp) e.args
     38
     39e.assigns ::= /*empty*/ | t.assign e.assigns
     40
     41t.assign ::= (t.var e.exp)
     42
     43t.const ::= (STRING [characters])
    2444
    2545t.type ::= (TYPE t.name)
     
    2949t.name ::= ([characters])
    3050
    31 (e.patterns) e.exp
Note: See TracChangeset for help on using the changeset viewer.