Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /trunk/src/parser/diderot.grm
ViewVC logotype

Diff of /trunk/src/parser/diderot.grm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 18, Fri Jan 15 02:36:12 2010 UTC revision 19, Fri Jan 15 14:17:29 2010 UTC
# Line 8  Line 8 
8    
9  %tokens  %tokens
10    : KW_actor            ("actor")    : KW_actor            ("actor")
11      | KW_die              ("die")
12    | KW_field            ("field")    | KW_field            ("field")
13    | KW_image            ("image")    | KW_image            ("image")
14      | KW_new              ("new")
15      | KW_stabelize        ("stabelize")
16      | KW_eq               ("=")
17      | OP_orelse           ("||")
18      | OP_andalso          ("&&")
19      | OP_lt               ("<")
20      | OP_lte              ("<=")
21      | OP_eqeq             ("==")
22      | OP_neq              ("!=")
23      | OP_gte              (">=")
24      | OP_gt               (">")
25    | OP_plus             ("+")    | OP_plus             ("+")
26    | OP_minus            ("-")    | OP_minus            ("-")
27    | OP_star             ("*")    | OP_star             ("*")
28      | OP_slash            ("/")
29    | OP_at               ("@")    | OP_at               ("@")
30    | LP                  ("(")    | LP                  ("(")
31    | RP                  (")")    | RP                  (")")
# Line 23  Line 36 
36    | INT of IntInf.int    | INT of IntInf.int
37    | FLOAT of FloatLit.float    | FLOAT of FloatLit.float
38    | STRING of string    | STRING of string
39      | ID of Atom.atom
40    ;    ;
41    
42  File  File
# Line 39  Line 53 
53  ImageDecl  ImageDecl
54          : "image" ID ";"          : "image" ID ";"
55          ;          ;
56    
57    
58    (***** Actors *****)
59    
60    ActorDecl
61            : "actor" ID "(" Params ")" "{" ActorState* ActorMethod+ "}"
62            ;
63    
64    Params
65            : ( Param ( "," Param )* )?
66            ;
67    
68    Param
69            : Type ID
70            ;
71    
72    ActorState
73            : Type ID "=" Expr ";"
74            ;
75    
76    ActorMethod
77            : ID "{" "}"
78            ;
79    
80    
81    (***** Types *****)
82    
83    Type    : "bool"
84            | "int"
85            | "real"
86            ;
87    
88    
89    (***** Expressions *****)
90    
91    Expr
92            : Expr1 ( "||" Expr1 )*
93            ;
94    
95    Expr1
96            : Expr2 ( "&&" Expr2 )*
97            ;
98    
99    Expr2
100            : Expr3 ( CmpOp Expr3 )*
101            ;
102    
103    CmpExp
104            : "<" | "<=" | "==" | ">=" | ">"
105            ;
106    
107    Expr3
108            : Expr4 ( AddOp Expr4 )*
109            ;
110    
111    AddOp
112            : "+" | "-"
113            ;
114    
115    Expr4
116            : Expr5 ( MulOp Expr5 )*
117            ;
118    
119    MulOp
120            : "*" | "/"
121            ;
122    
123    Expr5
124            : Expr6 ("@" Expr6)?
125            ;
126    
127    AtomExp
128            : ID
129            | INT
130            | FLOAT
131            | STRING
132            | "(" Expr ("," Expr)* ")"
133            ;

Legend:
Removed from v.18  
changed lines
  Added in v.19

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0