From 18ec82b54deb9be67a9c541bf69fca0ac020fe9b Mon Sep 17 00:00:00 2001 From: bringert Date: Tue, 5 Dec 2006 22:10:28 +0000 Subject: Got GFCC to JavaScript compilation working. Variants are still printed in a weird way. --- src/GF/JavaScript/JS.cf | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src/GF/JavaScript/JS.cf') diff --git a/src/GF/JavaScript/JS.cf b/src/GF/JavaScript/JS.cf index 3c89f9c45..6f5c7481e 100644 --- a/src/GF/JavaScript/JS.cf +++ b/src/GF/JavaScript/JS.cf @@ -8,14 +8,24 @@ separator Element "" ; separator Ident "," ; -Compound. Stmt ::= "{" [Stmt] "}" ; -ReturnVoid. Stmt ::= "return" ";" ; -Return. Stmt ::= "return" Expr ";" ; +SCompound. Stmt ::= "{" [Stmt] "}" ; +SReturnVoid. Stmt ::= "return" ";" ; +SReturn. Stmt ::= "return" Expr ";" ; +SDeclOrExpr. Stmt ::= DeclOrExpr ";" ; separator Stmt "" ; +Decl. DeclOrExpr ::= "var" [DeclVar]; +DExpr. DeclOrExpr ::= Expr ; + +DVar. DeclVar ::= Ident ; +DInit. DeclVar ::= Ident "=" Expr ; +separator DeclVar "," ; + +EAssign. Expr13 ::= Expr14 "=" Expr13 ; + ENew. Expr14 ::= "new" Ident "(" [Expr] ")" ; -EMember. Expr15 ::= Expr15 "." Expr16 ; +EMember. Expr15 ::= Expr15 "." Ident ; EIndex. Expr15 ::= Expr15 "[" Expr "]" ; ECall. Expr15 ::= Expr15 "(" [Expr] ")" ; @@ -27,6 +37,7 @@ ETrue. Expr16 ::= "true" ; EFalse. Expr16 ::= "false" ; ENull. Expr16 ::= "null" ; EThis. Expr16 ::= "this" ; +EFun. Expr16 ::= "function" "(" [Ident] ")" "{" [Stmt] "}" ; separator Expr "," ; coercions Expr 16 ; -- cgit v1.2.3