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

SCM Repository

[diderot] Annotation of /branches/lamont/src/compiler/parser/diderot.grm
ViewVC logotype

Annotation of /branches/lamont/src/compiler/parser/diderot.grm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 23 - (view) (download)
Original Path: trunk/src/parser/diderot.grm

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 : jhr 23 : InputDecl
48 :     | GlobalDecl
49 : jhr 14 | ActorDecl
50 :     ;
51 :    
52 : jhr 23
53 :     (***** Inputs *****)
54 :    
55 :     InputDecl
56 :     : "input" Type ID ( "=" Expr )? ";"
57 : jhr 14 ;
58 : jhr 19
59 : jhr 23 (***** Global declarations *****)
60 : jhr 19
61 : jhr 23 GlobalDecl
62 :     : Type ID "=" Expr ";"
63 :     ;
64 :    
65 :    
66 : jhr 19 (***** Actors *****)
67 :    
68 :     ActorDecl
69 :     : "actor" ID "(" Params ")" "{" ActorState* ActorMethod+ "}"
70 :     ;
71 :    
72 :     Params
73 :     : ( Param ( "," Param )* )?
74 :     ;
75 :    
76 :     Param
77 :     : Type ID
78 :     ;
79 :    
80 :     ActorState
81 :     : Type ID "=" Expr ";"
82 :     ;
83 :    
84 :     ActorMethod
85 :     : ID "{" "}"
86 :     ;
87 :    
88 :    
89 :     (***** Types *****)
90 :    
91 : jhr 23 Type : "image" "<" Dimension "," Dimension ">"
92 :     | "tensor" "<" Dimension "," Dimension ">"
93 :     | "field" "#" Dimension "<" Dimension "," Dimension ">"
94 :     | "kernel" "#" Dimension
95 :     | "vec" "<" Dimension ">"
96 :     | "bool"
97 : jhr 19 | "int"
98 :     | "real"
99 :     ;
100 :    
101 : jhr 23 Dimension
102 :     : POSINT
103 :     ;
104 : jhr 19
105 :     (***** Expressions *****)
106 :    
107 :     Expr
108 :     : Expr1 ( "||" Expr1 )*
109 :     ;
110 :    
111 :     Expr1
112 :     : Expr2 ( "&&" Expr2 )*
113 :     ;
114 :    
115 :     Expr2
116 :     : Expr3 ( CmpOp Expr3 )*
117 :     ;
118 :    
119 :     CmpExp
120 :     : "<" | "<=" | "==" | ">=" | ">"
121 :     ;
122 :    
123 :     Expr3
124 :     : Expr4 ( AddOp Expr4 )*
125 :     ;
126 :    
127 :     AddOp
128 :     : "+" | "-"
129 :     ;
130 :    
131 :     Expr4
132 :     : Expr5 ( MulOp Expr5 )*
133 :     ;
134 :    
135 :     MulOp
136 :     : "*" | "/"
137 :     ;
138 :    
139 :     Expr5
140 :     : Expr6 ("@" Expr6)?
141 :     ;
142 :    
143 :     AtomExp
144 :     : ID
145 :     | INT
146 :     | FLOAT
147 :     | STRING
148 :     | "(" Expr ("," Expr)* ")"
149 :     ;

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