Created
August 11, 2011 19:09
-
-
Save jvranish/1140475 to your computer and use it in GitHub Desktop.
preliminary AC AST definition
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
data Statement = ExprStmt ParsedExpr | |
| VarDef String | |
| ConstDef String ParsedExpr | |
| Foreign String | |
| Assign String ParsedExpr | |
| FuncDef String [ParsedStatement] Bool ParsedStatement | |
| Scope [ParsedStatement] | |
| For ParsedStatement ParsedStatement ParsedStatement ParsedStatement | |
| While ParsedExpr ParsedStatement | |
| DoWhile ParsedExpr ParsedStatement | |
| If Expr ParsedStatement (Maybe ParsedStatement) | |
| Return ParsedExpr | |
deriving (Show, Eq, Ord, Data, Typeable) | |
data ParsedStatement = ParsedStatement SourcePos Statement | |
deriving (Show, Eq, Ord, Data, Typeable) | |
data Expr = Call ParsedExpr [ParsedExpr] | |
| Id String | |
| Cast ParsedType ParsedExpr | |
| Dot ParsedExpr String | |
| StringLiteral String | |
| CharLiteral Char | |
| IntegerLiteral Integer | |
| FloatLiteral Double | |
deriving (Show, Eq, Ord, Data, Typeable) | |
data ParsedExpr = ParsedExpr SourcePos (Expr ParsedExpr) | |
deriving (Show, Eq, Ord, Data, Typeable) | |
data Type a = TypeName String | |
| Pointer a | |
| Array (Maybe Integer) a | |
| TCall a [a] | |
| Struct (Map.Map String a) | |
| Union (Map.Map String a) | |
| NType Int | |
| Func [a] Bool a -- bool indicates variable number of arguments | |
| DefaultInt | |
| DefaultFloat | |
| Var (Maybe String) (TypeConstraints a) -- optional variable name, and constraints | |
deriving (Show, Eq, Ord, Functor, Foldable, Traversable) | |
data ParsedType = ParsedType SourcePos (Type ParsedType) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment