Syntax For CFG of DECAF
Syntax For CFG of DECAF
Module 0
Vihar M Patel - 201201064
Gaurav Singh - 201264059
MICRO SYNTAX:
=============================================================================
ALPHA
DIGIT
HEX_DIGIT
DELIM
COMMENT
SINGLE_QUOTE
DOUBLE_QUOTE
BACKSLASH
WHITESPACE
DECIMAL_LITERAL
HEX_LITERAL
CHAR
CHAR_LITERAL
STRING_LITERAL
[A-Za-z_]
[0-9]
[DIGITa-fA-F]
[\t\f \n]
[//]+[^\n]*
\'
\"
\\
BOOL_LITERAL
true | false
MINUS
PLUS
LOGICAL_NOT
MUL
DIV
MOD
LT
LE
GT
GE
EQEQ
NEQ
AND
OR
EQ
PLUSEQ
MINUSEQ
ID
INT
VOID
BOOL
BREAK
CONT
COMMA
SEMICOLON
CLASS
PROGRAM
IF
ELSE
CALLOUT
FOR
RET
OPEN_CURLY
CLOSE_CURLY
+
!
*
/
%
<
<=
>
>=
==
!=
&&
||
=
+=
-=
(ALPHA)[ALPHADIGIT]*
int
void
boolean
break
continue
,
;
class
Program
if
else
callout
for
return
{
}
(DELIM|COMMENT)+
[DIGIT]+
0x[HEX_DIGIT]+
[\40-\176 ^"^'^\ \' \" \\]
'[CHAR]'
"[CHAR]*"
OPEN_ROUND
CLOSE_ROUND
OPEN_SQUARE
CLOSE_SQUARE
(
)
[
]
MACRO SYNTAX:
=============================================================================
INITIAL_PROGRAM
FIELD_DECL0
FIELD_DECL1
VARS0
COMMA_VARS
VARS1
METHOD_DECL0
METHOD_DECL1
FUNC_VARS0
COMMA_FUNC_VARS
FUNC_VARS1
TYPE0
TYPE
BLOCK
VAR_DECL0
VAR_DECL1
VAR_DEC
COMMA_VAR_DECL
STATEMENT0
ELSE0
STATEMENT
ASSIGN_OP
METHOD_CALL
LOCATION
MULTIPLE_EXPR
COMMA_EXPR
EXPR
-> LOCATION
| METHOD_CALL
| LITERAL
| UNARY_OP EXPR
| BINARY_EXPR0
| OPEN_ROUND EXPR CLOSE_ROUND
CALLOUT_ARG0
CALLOUT_ARG
UNARY_OP
ARITH_OP1
ARITH_OP2
REL_OP
EQ_OP
BINARY_EXPR0
BINARY_EXPR1
BINARY_EXPR2
BINARY_EXPR3
BINARY_EXPR4
BINARY_EXPR5
LITERAL
INT_LITERAL
BOOL_LITERAL