72 lines
985 B
Plaintext
72 lines
985 B
Plaintext
/* Lexical Analysis with Flex (2.6.0) We used some of the code from this manual */
|
|
/* so we placed the citation here. */
|
|
/* definitions */
|
|
/* %option noyywrap */
|
|
/* %{ */
|
|
/* #include <typedefs.h> */
|
|
/* %} */
|
|
|
|
/* identifier */
|
|
ID 101 [a-zA-Z_][a-zA-Z0-9_]*
|
|
|
|
/* type names */
|
|
T_INTEGER 201 [0-9]*
|
|
T_ADDRESS 202
|
|
T_BOOLEAN 203 'true'|'false'
|
|
T_CHARACTER 204
|
|
T_STRING 205
|
|
|
|
/* constants (literals) */
|
|
|
|
C_INTEGER 301
|
|
C_NULL 302
|
|
C_CHARACTER 303
|
|
C_STRING 304
|
|
C_TRUE 305
|
|
C_FALSE 306
|
|
|
|
/* other keywords */
|
|
|
|
WHILE 401
|
|
IF 402
|
|
THEN 403
|
|
ELSE 404
|
|
TYPE 405
|
|
FUNCTION 406
|
|
RETURN 407
|
|
EXTERNAL 408
|
|
AS 409
|
|
|
|
/* punctuation - grouping */
|
|
|
|
L_PAREN 501
|
|
R_PAREN 502
|
|
L_BRACKET 503
|
|
R_BRACKET 504
|
|
L_BRACE 505
|
|
R_BRACE 506
|
|
/* punctuation - other */
|
|
SEMI_COLON 507
|
|
COLON 508
|
|
COMMA 509
|
|
ARROW 510
|
|
/* operators */
|
|
ADD 601
|
|
SUB_OR_NEG 602
|
|
MUL 603
|
|
DIV 604
|
|
REM 605
|
|
LESS_THAN 606
|
|
EQUAL_TO 607
|
|
ASSIGN 608
|
|
NOT 609
|
|
AND 610
|
|
OR 611
|
|
DOT 612
|
|
RESERVE 613
|
|
RELEASE 614
|
|
%%
|
|
//rules
|
|
%%
|
|
//user code
|