summaryrefslogtreecommitdiff
path: root/src/GF/JavaScript/JS.cf
blob: 3c89f9c45b863c1fe1388fd004daf94796bd4ebb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
entrypoints Program;

Program. Program ::= [Element];

FunDef.  Element ::= "function" Ident "(" [Ident] ")" "{" [Stmt] "}" ;
ElStmt.  Element ::= Stmt;
separator Element "" ;

separator Ident "," ;

Compound.   Stmt ::= "{" [Stmt] "}" ;
ReturnVoid. Stmt ::= "return" ";" ;
Return.     Stmt ::= "return" Expr ";" ;
separator Stmt "" ;

ENew.    Expr14 ::= "new" Ident "(" [Expr] ")" ;

EMember. Expr15 ::= Expr15 "." Expr16 ;
EIndex.  Expr15 ::= Expr15 "[" Expr "]" ;
ECall.   Expr15 ::= Expr15 "(" [Expr] ")" ;

EVar.    Expr16 ::= Ident ;
EInt.    Expr16 ::= Integer ;
EDbl.    Expr16 ::= Double ;
EStr.    Expr16 ::= String ;
ETrue.   Expr16 ::= "true" ;
EFalse.  Expr16 ::= "false" ;
ENull.   Expr16 ::= "null" ;
EThis.   Expr16 ::= "this" ;

separator Expr "," ;
coercions Expr 16 ;