summaryrefslogtreecommitdiff
path: root/src-2.9/GF/JavaScript/AbsJS.hs
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-05-20 11:47:44 +0000
committeraarne <aarne@cs.chalmers.se>2008-05-20 11:47:44 +0000
commit31bf84122b21efb444aa8d055472e166ffb90783 (patch)
tree1f051909336f1534346bcccde8dda59beab02f64 /src-2.9/GF/JavaScript/AbsJS.hs
parent74f048dcf41de3540778de54dfa7541fa5b39c46 (diff)
moved all old source code to src-2.9 ; src will be for GF 3 development
Diffstat (limited to 'src-2.9/GF/JavaScript/AbsJS.hs')
-rw-r--r--src-2.9/GF/JavaScript/AbsJS.hs60
1 files changed, 60 insertions, 0 deletions
diff --git a/src-2.9/GF/JavaScript/AbsJS.hs b/src-2.9/GF/JavaScript/AbsJS.hs
new file mode 100644
index 000000000..2632ade48
--- /dev/null
+++ b/src-2.9/GF/JavaScript/AbsJS.hs
@@ -0,0 +1,60 @@
+module GF.JavaScript.AbsJS where
+
+-- Haskell module generated by the BNF converter
+
+newtype Ident = Ident String deriving (Eq,Ord,Show)
+data Program =
+ Program [Element]
+ deriving (Eq,Ord,Show)
+
+data Element =
+ FunDef Ident [Ident] [Stmt]
+ | ElStmt Stmt
+ deriving (Eq,Ord,Show)
+
+data Stmt =
+ 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 =
+ EAssign Expr Expr
+ | ENew Ident [Expr]
+ | EMember Expr Ident
+ | EIndex Expr Expr
+ | ECall Expr [Expr]
+ | EVar Ident
+ | EInt Int
+ | EDbl Double
+ | EStr String
+ | ETrue
+ | EFalse
+ | ENull
+ | EThis
+ | EFun [Ident] [Stmt]
+ | EArray [Expr]
+ | EObj [Property]
+ | ESeq [Expr]
+ deriving (Eq,Ord,Show)
+
+data Property =
+ Prop PropertyName Expr
+ deriving (Eq,Ord,Show)
+
+data PropertyName =
+ IdentPropName Ident
+ | StringPropName String
+ deriving (Eq,Ord,Show)
+