variables now parse
This commit is contained in:
parent
8a4ebb00c9
commit
243faa8e15
|
|
@ -71,6 +71,7 @@ statement : section
|
|||
| sect_data
|
||||
| simple_stmt
|
||||
| data_space
|
||||
| data_declaration
|
||||
;
|
||||
section : type TOKEN_KEYWORD_DIVISION TOKEN_DOT
|
||||
| type TOKEN_RUN TOKEN_DOT
|
||||
|
|
@ -99,9 +100,41 @@ if_branch : if_branch parms if_branch
|
|||
| TOKEN_ELSE
|
||||
| TOKEN_END_IF
|
||||
;
|
||||
data_space : TOKEN_WORKING_STORAGE TOKEN_KEYWORD_SECTION TOKEN_DOT
|
||||
data_space : TOKEN_WORKING_STORAGE
|
||||
| TOKEN_KEYWORD_SECTION
|
||||
| TOKEN_DOT
|
||||
;
|
||||
data_category : TOKEN_ALPHANUMERIC
|
||||
| TOKEN_NUMERIC
|
||||
| TOKEN_SIGNED_NUMERIC
|
||||
| TOKEN_IMPLIED_DECIMAL
|
||||
;
|
||||
categry_contain : TOKEN_LEFT_PARENTHESIS TOKEN_INTEGER TOKEN_RIGHT_PARENTHESIS
|
||||
;
|
||||
|
||||
complete_category: complete_category complete_category
|
||||
| data_category categry_contain
|
||||
;
|
||||
data_clause : TOKEN_COMPUTATION_LEVEL_0
|
||||
| TOKEN_COMPUTATION_LEVEL_1
|
||||
| TOKEN_COMPUTATION_LEVEL_2
|
||||
| TOKEN_COMPUTATION_LEVEL_3
|
||||
| TOKEN_KEYWORD_VALUE
|
||||
| TOKEN_KEYWORD_OCCURS
|
||||
;
|
||||
full_data_clause: data_clause data_clause
|
||||
| data_clause
|
||||
;
|
||||
|
||||
data_declaration: simple_decl
|
||||
| full_decl
|
||||
;
|
||||
simple_decl : TOKEN_INTEGER TOKEN_IDENT TOKEN_DOT
|
||||
;
|
||||
full_decl : TOKEN_INTEGER TOKEN_IDENT TOKEN_PICTURE complete_category TOKEN_DOT
|
||||
| TOKEN_INTEGER TOKEN_IDENT TOKEN_PICTURE complete_category full_data_clause TOKEN_DOT
|
||||
| TOKEN_INTEGER TOKEN_IDENT TOKEN_PICTURE complete_category full_data_clause TOKEN_INTEGER TOKEN_DOT
|
||||
;
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. variables.
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
01 WS-SORT-AREA.
|
||||
05 WS-SORT-TABLE.
|
||||
10 WS-SORT-ROW PIC X(10) OCCURS 100.
|
||||
05 WS-TEMP-ROW PIC X(10).
|
||||
05 WS-ROW-MAX PIC S9(4) COMP VALUE 100.
|
||||
05 WS-SORT-MAX PIC S9(4) COMP.
|
||||
05 WS-I PIC S9(4) COMP.
|
||||
05 WS-J PIC S9(4) COMP.
|
||||
05 WS-INDEX PIC S9(4) COMP.
|
||||
77 a PIC S9(5)V9(5) COMP-3 VALUE 1.
|
||||
77 b PIC S9(5)V9(5) COMP-3 VALUE 5.
|
||||
77 c PIC S9(5)V9(5) COMP-3 VALUE 6.
|
||||
77 discriminant PIC S9(5)V9(5) COMP-3.
|
||||
77 root1 PIC S9(5)V9(5) COMP-3.
|
||||
77 root2 PIC S9(5)V9(5) COMP-3.
|
||||
77 square-root-discriminant PIC S9(5)V9(5) COMP-3.
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
DISPLAY 'Hello World!'
|
||||
STOP RUN.
|
||||
|
|
@ -73,37 +73,39 @@ extern int yydebug;
|
|||
TOKEN_UNTIL = 274, /* TOKEN_UNTIL */
|
||||
TOKEN_END_PERFORM = 275, /* TOKEN_END_PERFORM */
|
||||
TOKEN_IF = 276, /* TOKEN_IF */
|
||||
TOKEN_END_IF = 277, /* TOKEN_END_IF */
|
||||
TOKEN_SPACE = 278, /* TOKEN_SPACE */
|
||||
TOKEN_KEYWORD_OCCURS = 279, /* TOKEN_KEYWORD_OCCURS */
|
||||
TOKEN_KEYWORD_VALUE = 280, /* TOKEN_KEYWORD_VALUE */
|
||||
TOKEN_KEYWORD_COMPUTE = 281, /* TOKEN_KEYWORD_COMPUTE */
|
||||
TOKEN_KEYWORD_FUNCTION = 282, /* TOKEN_KEYWORD_FUNCTION */
|
||||
TOKEN_IDENT = 283, /* TOKEN_IDENT */
|
||||
TOKEN_STRING = 284, /* TOKEN_STRING */
|
||||
TOKEN_INTEGER = 285, /* TOKEN_INTEGER */
|
||||
TOKEN_PICTURE = 286, /* TOKEN_PICTURE */
|
||||
TOKEN_ALPHANUMERIC = 287, /* TOKEN_ALPHANUMERIC */
|
||||
TOKEN_NUMERIC = 288, /* TOKEN_NUMERIC */
|
||||
TOKEN_SIGNED_NUMERIC = 289, /* TOKEN_SIGNED_NUMERIC */
|
||||
TOKEN_IMPLIED_DECIMAL = 290, /* TOKEN_IMPLIED_DECIMAL */
|
||||
TOKEN_COMPUTATION_LEVEL_0 = 291, /* TOKEN_COMPUTATION_LEVEL_0 */
|
||||
TOKEN_COMPUTATION_LEVEL_1 = 292, /* TOKEN_COMPUTATION_LEVEL_1 */
|
||||
TOKEN_COMPUTATION_LEVEL_2 = 293, /* TOKEN_COMPUTATION_LEVEL_2 */
|
||||
TOKEN_COMPUTATION_LEVEL_3 = 294, /* TOKEN_COMPUTATION_LEVEL_3 */
|
||||
TOKEN_LEFT_PARENTHESIS = 295, /* TOKEN_LEFT_PARENTHESIS */
|
||||
TOKEN_RIGHT_PARENTHESIS = 296, /* TOKEN_RIGHT_PARENTHESIS */
|
||||
TOKEN_DOT = 297, /* TOKEN_DOT */
|
||||
TOKEN_COMMENT = 298, /* TOKEN_COMMENT */
|
||||
TOKEN_ADD = 299, /* TOKEN_ADD */
|
||||
TOKEN_SUB = 300, /* TOKEN_SUB */
|
||||
TOKEN_MULTIPLY = 301, /* TOKEN_MULTIPLY */
|
||||
TOKEN_DIVIDE = 302, /* TOKEN_DIVIDE */
|
||||
TOKEN_EQUAL = 303, /* TOKEN_EQUAL */
|
||||
TOKEN_GREATER_THAN = 304, /* TOKEN_GREATER_THAN */
|
||||
TOKEN_LESS_THAN = 305, /* TOKEN_LESS_THAN */
|
||||
TOKEN_EXPONENTIAL = 306, /* TOKEN_EXPONENTIAL */
|
||||
TOKEN_DISPLAY = 307 /* TOKEN_DISPLAY */
|
||||
TOKEN_ELSE = 277, /* TOKEN_ELSE */
|
||||
TOKEN_ELSE_IF = 278, /* TOKEN_ELSE_IF */
|
||||
TOKEN_END_IF = 279, /* TOKEN_END_IF */
|
||||
TOKEN_SPACE = 280, /* TOKEN_SPACE */
|
||||
TOKEN_KEYWORD_OCCURS = 281, /* TOKEN_KEYWORD_OCCURS */
|
||||
TOKEN_KEYWORD_VALUE = 282, /* TOKEN_KEYWORD_VALUE */
|
||||
TOKEN_KEYWORD_COMPUTE = 283, /* TOKEN_KEYWORD_COMPUTE */
|
||||
TOKEN_KEYWORD_FUNCTION = 284, /* TOKEN_KEYWORD_FUNCTION */
|
||||
TOKEN_IDENT = 285, /* TOKEN_IDENT */
|
||||
TOKEN_STRING = 286, /* TOKEN_STRING */
|
||||
TOKEN_INTEGER = 287, /* TOKEN_INTEGER */
|
||||
TOKEN_PICTURE = 288, /* TOKEN_PICTURE */
|
||||
TOKEN_ALPHANUMERIC = 289, /* TOKEN_ALPHANUMERIC */
|
||||
TOKEN_NUMERIC = 290, /* TOKEN_NUMERIC */
|
||||
TOKEN_SIGNED_NUMERIC = 291, /* TOKEN_SIGNED_NUMERIC */
|
||||
TOKEN_IMPLIED_DECIMAL = 292, /* TOKEN_IMPLIED_DECIMAL */
|
||||
TOKEN_COMPUTATION_LEVEL_0 = 293, /* TOKEN_COMPUTATION_LEVEL_0 */
|
||||
TOKEN_COMPUTATION_LEVEL_1 = 294, /* TOKEN_COMPUTATION_LEVEL_1 */
|
||||
TOKEN_COMPUTATION_LEVEL_2 = 295, /* TOKEN_COMPUTATION_LEVEL_2 */
|
||||
TOKEN_COMPUTATION_LEVEL_3 = 296, /* TOKEN_COMPUTATION_LEVEL_3 */
|
||||
TOKEN_LEFT_PARENTHESIS = 297, /* TOKEN_LEFT_PARENTHESIS */
|
||||
TOKEN_RIGHT_PARENTHESIS = 298, /* TOKEN_RIGHT_PARENTHESIS */
|
||||
TOKEN_DOT = 299, /* TOKEN_DOT */
|
||||
TOKEN_COMMENT = 300, /* TOKEN_COMMENT */
|
||||
TOKEN_ADD = 301, /* TOKEN_ADD */
|
||||
TOKEN_SUB = 302, /* TOKEN_SUB */
|
||||
TOKEN_MULTIPLY = 303, /* TOKEN_MULTIPLY */
|
||||
TOKEN_DIVIDE = 304, /* TOKEN_DIVIDE */
|
||||
TOKEN_EQUAL = 305, /* TOKEN_EQUAL */
|
||||
TOKEN_GREATER_THAN = 306, /* TOKEN_GREATER_THAN */
|
||||
TOKEN_LESS_THAN = 307, /* TOKEN_LESS_THAN */
|
||||
TOKEN_EXPONENTIAL = 308, /* TOKEN_EXPONENTIAL */
|
||||
TOKEN_DISPLAY = 309 /* TOKEN_DISPLAY */
|
||||
};
|
||||
typedef enum yytokentype yytoken_kind_t;
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue