Newer
Older
zweic / doc / ast.txt
@glproj03 glproj03 on 29 Nov 2005 986 bytes Added Abstract Syntax Tree definition
##############################################################################
                               ABSTRACT SYNTAX
##############################################################################

P = Program { D } E

D = ClassDef name [ name ] { M }
# where [ name ] corresponds to [ "extends" ident ] in the concrete syntax

M = FieldDecl name T
  | MethodDef name { name T } T E
# where { name T } corresponds to [ Formal { "," Formal } ] in the con. syntax

T = ClassType name
  | IntType
  | NullType

S = While E { S }
  | Var name T E
  | Set name E
  | Do E
  | PrintInt E
  | PrintChar E

E = Ident name
  | New name { E }
  | Select E name
  | Call E name { E }
  | IntLit int
  | NullLit
  | Unop U E
  | Binop B E E
  | ReadInt
  | ReadChar
  | If E E E
  | Block { S } E

U = Not
  | Neg

B = Add
  | Sub
  | Mul
  | Div
  | Mod
  | Eq
  | Ne
  | Lt
  | Le
  | Gt
  | Ge
  | And

##############################################################################
$Id$