summaryrefslogtreecommitdiff
path: root/src/GF/JavaScript/AbsJS.hs
diff options
context:
space:
mode:
authorbringert <bringert@cs.chalmers.se>2006-12-05 22:10:28 +0000
committerbringert <bringert@cs.chalmers.se>2006-12-05 22:10:28 +0000
commit18ec82b54deb9be67a9c541bf69fca0ac020fe9b (patch)
tree0cdda01326b69edb3d5b8a7cc078c6f3fcdb767a /src/GF/JavaScript/AbsJS.hs
parent3d68f22b95fcae256f05fb7a35815fd481b876a0 (diff)
Got GFCC to JavaScript compilation working. Variants are still printed in a weird way.
Diffstat (limited to 'src/GF/JavaScript/AbsJS.hs')
-rw-r--r--src/GF/JavaScript/AbsJS.hs23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/GF/JavaScript/AbsJS.hs b/src/GF/JavaScript/AbsJS.hs
index 4c0094bd9..843180835 100644
--- a/src/GF/JavaScript/AbsJS.hs
+++ b/src/GF/JavaScript/AbsJS.hs
@@ -13,14 +13,26 @@ data Element =
deriving (Eq,Ord,Show)
data Stmt =
- Compound [Stmt]
- | ReturnVoid
- | Return Expr
+ SCompound [Stmt]
+ | SReturnVoid
+ | SReturn Expr
+ | SDeclOrExpr DeclOrExpr
+ deriving (Eq,Ord,Show)
+
+data DeclOrExpr =
+ Decl [DeclVar]
+ | DExpr Expr
+ deriving (Eq,Ord,Show)
+
+data DeclVar =
+ DVar Ident
+ | DInit Ident Expr
deriving (Eq,Ord,Show)
data Expr =
- ENew Ident [Expr]
- | EMember Expr Expr
+ EAssign Expr Expr
+ | ENew Ident [Expr]
+ | EMember Expr Ident
| EIndex Expr Expr
| ECall Expr [Expr]
| EVar Ident
@@ -31,5 +43,6 @@ data Expr =
| EFalse
| ENull
| EThis
+ | EFun [Ident] [Stmt]
deriving (Eq,Ord,Show)