1
0
forked from GitHub/gf-core

reintroduce the compiler API

This commit is contained in:
Krasimir Angelov
2024-01-18 20:58:10 +01:00
parent 282c6fc50f
commit a82095d117
138 changed files with 84 additions and 342 deletions

View File

@@ -0,0 +1,61 @@
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
| IntPropName Int
deriving (Eq,Ord,Show)