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

SCM Repository

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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 19 - (view) (download)

1 : jhr 14 (* diderot.grm
2 :     *
3 :     * COPYRIGHT (c) 2010 The Diderot Project (http://diderot.cs.uchicago.edu)
4 :     * All rights reserved.
5 :     *)
6 :    
7 :     %name Diderot;
8 :    
9 :     %tokens
10 :     : KW_actor ("actor")
11 : jhr 19 | KW_die ("die")
12 : jhr 14 | KW_field ("field")
13 :     | KW_image ("image")
14 : jhr 19 | 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 : jhr 14 | OP_plus ("+")
26 :     | OP_minus ("-")
27 :     | OP_star ("*")
28 : jhr 19 | OP_slash ("/")
29 : jhr 14 | OP_at ("@")
30 :     | LP ("(")
31 :     | RP (")")
32 :     | LB ("[")
33 :     | RB ("]")
34 :     | LCB ("{")
35 :     | RCB ("}")
36 :     | INT of IntInf.int
37 :     | FLOAT of FloatLit.float
38 :     | STRING of string
39 : jhr 19 | ID of Atom.atom
40 : jhr 14 ;
41 :    
42 :     File
43 :     : Decl+
44 :     ;
45 :    
46 :     Decl
47 :     : ImageDecl
48 :     | ValueDecl
49 :     | FunDecl
50 :     | ActorDecl
51 :     ;
52 :    
53 :     ImageDecl
54 :     : "image" ID ";"
55 :     ;
56 : jhr 19
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 :     ;

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