| Intentional Programming | ACI Concept | AAL definition | AAL syntax | AAL parser | Object Representation | OpCode | Reference Links |
Syntax of the ALL (snapshot).
Block
: '{' Statements '}'
;
MultiplicativeExpr
: UnaryExpr ( ( '*' | '%' | '/' ) UnaryExpr $ )*
;
StandardParams
: Parameter [ ',' StandardParams ]
;
FunctionDeclParamList
: '(' ')' | '(' StandardParams ')'
;
TypeDeclDef
: TypeName Identifier ( ';' | TypeInitializer ';' )
;
Parameter
: TypeName VarName
;
Arguments
: '(' ')' | '(' ArgumentList ')'
;
FunctionDecl
: TypeName VarName FunctionDeclParamList $
;
Expression
: AssignmentExpr ( ',' AssignmentExpr )*
;
ObjCallSuffix
: '.' Identifier [ Arguments ] | '[' Expression ']' | Arguments
;
BitwiseORExpr
: BitwiseXORExpr ( '|' BitwiseXORExpr )* %
;
CaseStatement
: 'switch' '(' Expression ')' '{' ( CaseClause )* '}' $
;
EqualityExpr
: RelationalExpr ( ( '==' | '!=' ) RelationalExpr )* %
;
TypeInitializer
: '=' ( AssignmentExpr | ConditionalExpr )
;
CallExpr
: 'new' TypeName Arguments
| CoreExpr ( ObjCallSuffix )*
;
PostfixExpr
: CallExpr [ '++' | '--' ] %
;
ShiftExpr
: AdditiveExpr ( ( '>>' | '<<' ) AdditiveExpr )* %
;
DoStatement
: 'do' Statement 'while' '(' Expression ')' ';' $
;
CoreExpr
: '(' AssignmentExpr ')' | Identifier | Literal
;
BitwiseANDExpr
: EqualityExpr ( '&' EqualityExpr )* %
;
LeftHandSideExpr
: CallExpr
;
ExprStatement
: Expression ';'
;
AdditiveExpr
: MultiplicativeExpr ( ( '+' | '-' ) MultiplicativeExpr )* %
;
UnaryExpr
: '++' UnaryExpr
|'--' UnaryExpr
|'-' UnaryExpr
|'+' UnaryExpr
|'~' UnaryExpr
|'!' UnaryExpr
|PostfixExpr
;
Statements
: ( Statement )*
;
TypeDeclWithInitializer:
| TypeDeclDef
| ClassDeclDef
| FunctionDeclDef
;
LogicalANDExpr
: [ BitwiseORExpr ( '||' BitwiseORExpr )* %
;
ClassDef
: SuperDef Block
;
AssignmentExpr
: LeftHandSideExpr '=' AssignmentExpr $ | ConditionalExpr
;
ElseStatement
: 'else' Statement $
;
FunctionDeclDef
: FunctionDecl ( ';' | FunctionBody )
;
ReturnStatement
: 'return' Expression ';' $
;
FunctionBody
: Block $
;
ConditionalExpr
: LogicalORExpr [ '?' AssignmentExpr ':' AssignmentExpr ] %
;
CaseClause
: ( 'case' Expression | 'default' ) ':' ( Statement )* $
;
ArgumentList
: AssignmentExpr ( ',' AssignmentExpr )*
;
Statement
: Block
|ReturnStatement
|IfStatement
|ContinueStatement
|BreakStatement
|DoStatement
|WhileStatement
|CaseStatement
|ExprStatement
;
ContinueStatement
: 'continue' ';' $
;
BitwiseXORExpr
: BitwiseANDExpr ( '^' BitwiseANDExpr )* %
;
RelationalExpr
: ShiftExpr ( ( '<' | '>' | '<=' | '>=' ) ShiftExpr )* %
;
BreakStatement
: 'break' ';' $
;
CodeText
: Globals | Statements
;
Globals
: TypeDeclWithInitializer
;
WhileStatement
: 'while' '(' Expression ')' Statement $
;
IfStatement
: 'if' '(' Expression ')' Statement [ ElseStatement ] $
;
LogicalORExpr
: LogicalANDExpr ( '&&' LogicalANDExpr )* %
;
ClassDeclDef
: 'class' TypeName (ClassDef | ';')
;
|
|