Skip to content
esonetec edited this page Nov 14, 2014 · 19 revisions

Abstract Syntax

Program -> epislon | ( class IDENT { ClassMember' } Program ) *

Program :: ClassMember+

  • ClassMember' -> public ClassMember''

  • ClassMember'' -> MainMethod' | Member

  • MainMethod' -> static void IDENT ( String [ ] IDENT ) Block

  • Member -> Type IDENT Member'

  • Member' -> ; | ( Parameters? ) Block

MainMethod :: Type Parameters Block Member :: Type Symbol Member' :: Type Symbol Parameters Block

  • Parameters -> Parameter (, Parameters)?
  • Parameter -> Type IDENT

Parameters :: Parameter+ Parameter :: Type Symbol

  • Type -> Basictype ([])*
  • BasicType -> int | boolean | void | IDENT

Type :: Symbol

  • Statement -> Block | EmptyStatement | IfStatement | ExpressionStatement | WhileStatement | ReturnStatement
  • Block -> { BlockStatement* }

Block :: Statement+

  • BlockStatement -> Block | EmptyStatement | IfStatement | ExpressionStatement | WhileStatement | ReturnStatement | LocalVariableDeclarationStatement
  • LocalVariableDeclarationStatement -> Type IDENT (= Expression)? ;
  • EmptyStatement -> ;
  • WhileStatement-> while ( Expression ) Statement
  • IfStatement -> if ( Expression ) Statement (else Statement)?
  • ExpressionStatement -> Expression ;
  • ReturnStatement -> return Expression? ;

LocalVariableDeclarationStatement :: Type Symbol (Expression) EmptyStatement :: WhileStatement :: Expression Statement IfStatement Expression Statement (Statement) ExpressionStatement :: Expression ReturnStatement :: Expression

UnaryExpressions and following

UnaryExpression = LogicalNotExpression | NegateExpression | PostfixExpression

LogicalNotExpression :: Expression

NegateExpression :: Expression

PostfixExpression = PrimaryExpression | ArrayAccessExpression | MethodInvovationExpression | VariableAccessExpression

ArrayAccessExpression :: Expression Expression

MethodInvovationExpression :: Expression Symbol (Expression)*

VariableAccessExpression :: Expression Symbol

Symbol :: Symbol

PrimaryExpression = BooleanConstantExpression | IntegerConstantExpression | NullExpression | ThisExpression | NewArrayExpression | NewObjectExpression

BooleanConstantExpression :: value

IntegerConstantExpression :: value

NullExpression ::

ThisExpression ::

NewArrayExpression :: Type Expression

NewObjectExpression :: Symbol

Clone this wiki locally