parse quadratic
This commit is contained in:
parent
1352861bb6
commit
8e76fdca91
|
|
@ -28,6 +28,8 @@ int yylex();
|
|||
%token TOKEN_UNTIL
|
||||
%token TOKEN_END_PERFORM
|
||||
%token TOKEN_IF
|
||||
%token TOKEN_ELSE_IF
|
||||
%token TOKEN_ELSE
|
||||
%token TOKEN_END_IF
|
||||
%token TOKEN_SPACE
|
||||
%token TOKEN_KEYWORD_OCCURS
|
||||
|
|
@ -60,6 +62,7 @@ int yylex();
|
|||
%token TOKEN_EXPONENTIAL
|
||||
%token TOKEN_DISPLAY
|
||||
|
||||
|
||||
%%
|
||||
file : statements
|
||||
statements : statements statement
|
||||
|
|
@ -83,16 +86,39 @@ type : TOKEN_KEYWORD_IDENTIFICATION
|
|||
| TOKEN_KEYWORD_DATA
|
||||
;
|
||||
simple_stmt : cbl_function
|
||||
| cbl_function param
|
||||
| cbl_function param
|
||||
| cbl_function assignment_stmt
|
||||
| cbl_function param assignment_stmt
|
||||
| cbl_function TOKEN_IDENT assignment_stmt
|
||||
| if_branch
|
||||
;
|
||||
expression : op_parms
|
||||
| bool
|
||||
;
|
||||
bool : op_parms TOKEN_EQUAL op_parms
|
||||
;
|
||||
assignment_stmt : TOKEN_EQUAL ext_function
|
||||
| TOKEN_EQUAL function
|
||||
| TOKEN_KEYWORD_TO TOKEN_IDENT
|
||||
| TOKEN_KEYWORD_TO TOKEN_IDENT categry_contain
|
||||
;
|
||||
op_parms : op_parms TOKEN_ADD op_parms
|
||||
| op_parms TOKEN_SUB op_parms
|
||||
| op_parms TOKEN_MULTIPLY op_parms
|
||||
| op_parms TOKEN_DIVIDE op_parms
|
||||
| op_parms TOKEN_EXPONENTIAL op_parms
|
||||
| op_parms TOKEN_LESS_THAN op_parms
|
||||
| op_parms TOKEN_GREATER_THAN op_parms
|
||||
| TOKEN_SUB op_parms
|
||||
| TOKEN_LEFT_PARENTHESIS op_parms TOKEN_RIGHT_PARENTHESIS
|
||||
| TOKEN_IDENT
|
||||
| TOKEN_INTEGER
|
||||
;
|
||||
param : TOKEN_IDENT
|
||||
| TOKEN_STRING
|
||||
| param param
|
||||
;
|
||||
function : op_parms
|
||||
;
|
||||
ext_function : TOKEN_KEYWORD_FUNCTION TOKEN_IDENT TOKEN_LEFT_PARENTHESIS TOKEN_IDENT TOKEN_RIGHT_PARENTHESIS
|
||||
;
|
||||
|
|
@ -101,10 +127,9 @@ cbl_function : TOKEN_DISPLAY
|
|||
| TOKEN_KEYWORD_COMPUTE
|
||||
| TOKEN_PERFORM
|
||||
;
|
||||
if_branch : if_branch param if_branch
|
||||
| TOKEN_IF
|
||||
| TOKEN_ELSE_IF
|
||||
| TOKEN_ELSE
|
||||
if_branch : TOKEN_IF expression
|
||||
| TOKEN_ELSE_IF expression
|
||||
| TOKEN_ELSE statement
|
||||
| TOKEN_END_IF
|
||||
;
|
||||
data_space : TOKEN_WORKING_STORAGE
|
||||
|
|
|
|||
Loading…
Reference in New Issue