LOG
|
FILES
|
OVERVIEW
F diff --git a/lex/chonky.h b/lex/chonky.h
--- a/lex/chonky.h
+++ b/lex/chonky.h
- enum KEYWORDS{KW_AUTO,KW_DO,KW_DOUBLE,KW_INT,KW_STRUCT,KW_BREAK,KW_ELSE,KW_LONG,KW_SWITCH,KW_CASE,KW_ENUM,KW_REGISTER,KW_TYPEDEF,KW_CHAR,KW_EXTERN,KW_RETURN,KW_UNION,KW_CONST,KW_FLOAT,KW_SHORT,KW_UNSIGNED,KW_CONTINUE,KW_FOR,KW_SIGNED,KW_VOID,KW_DEFAULT,KW_GOTO,KW_SIZEOF,KW_VOLATILE,KW_IF,KW_STATIC,KW_WHILE,KW_EXCLAMATION,KW_BACK_SLASH,KW_PERCENT,KW_AND,KW_AND_AND,KW_QUOTE,KW_OPEN_NORMAL,KW_CLOSE_NORMAL,KW_STAR,KW_PLUS,KW_COMMA,KW_MINUS,KW_DOT,KW_ARROW,KW_COLUMN,KW_SEMI_COLUMN,KW_LESS,KW_EQ,KW_EQEQ,KW_MORE,KW_QUESTION,KW_OPEN_SQUARE,KW_CLOSE_SQUARE,KW_HAT,KW_FLOOR,KW_OPEN_CURLY,KW_CLOSE_CURLY,KW_PIPE,KW_PIPE_PIPE,KW_TILDE,KW_PLUSPLUS,KW_MINUSMINUS,KW_SHIFT_RIGHT,KW_SHIFT_LEFT,KW_LESS_EQ,KW_MORE_EQ,KW_NOT_EQ,KW_PLUS_EQ,KW_MINUS_EQ,KW_STAR_EQ,KW_PERCENT_EQ,KW_SHIFT_LEFT_EQ,KW_SHIFT_RIGHT_EQ,KW_AND_EQ,KW_HAT_EQ,KW_PIPE_EQ,KW_DIV_EQ,KW_FORWARD_SLASH,KW_NOTYPE,KW_NUMBER,KW_COMMENT,KW_ID,KW_STRING,PKW_IF,PKW_INCLUDE,PKW_DEFINE,PKW_UNDEF,PKW_PRAGMA,PKW_ENDIF,PKW_IFNDEF,PKW_IFDEF,PKW_ELIF,PKW_ERROR,PKW_COMMENT,PKW_NOTYPE,KW_HASHTAG,KW_HASHTAG_HASHTAG};
+ enum KEYWORDS{KW_AUTO,KW_DO,KW_DOUBLE,KW_INT,KW_STRUCT,KW_BREAK,KW_ELSE,KW_LONG,KW_SWITCH,KW_CASE,KW_ENUM,KW_REGISTER,KW_TYPEDEF,KW_CHAR,KW_EXTERN,KW_RETURN,KW_UNION,KW_CONST,KW_FLOAT,KW_SHORT,KW_UNSIGNED,KW_CONTINUE,KW_FOR,KW_SIGNED,KW_VOID,KW_DEFAULT,KW_GOTO,KW_SIZEOF,KW_VOLATILE,KW_IF,KW_STATIC,KW_WHILE,KW_EXCLAMATION,KW_BACK_SLASH,KW_PERCENT,KW_AND,KW_AND_AND,KW_QUOTE,KW_OPEN_NORMAL,KW_CLOSE_NORMAL,KW_STAR,KW_PLUS,KW_COMMA,KW_MINUS,KW_DOT,KW_ARROW,KW_COLUMN,KW_SEMI_COLUMN,KW_LESS,KW_EQ,KW_EQEQ,KW_MORE,KW_QUESTION,KW_OPEN_SQUARE,KW_CLOSE_SQUARE,KW_HAT,KW_FLOOR,KW_OPEN_CURLY,KW_CLOSE_CURLY,KW_PIPE,KW_PIPE_PIPE,KW_TILDE,KW_PLUSPLUS,KW_MINUSMINUS,KW_SHIFT_RIGHT,KW_SHIFT_LEFT,KW_LESS_EQ,KW_MORE_EQ,KW_NOT_EQ,KW_PLUS_EQ,KW_MINUS_EQ,KW_STAR_EQ,KW_PERCENT_EQ,KW_SHIFT_LEFT_EQ,KW_SHIFT_RIGHT_EQ,KW_AND_EQ,KW_HAT_EQ,KW_PIPE_EQ,KW_DIV_EQ,KW_FORWARD_SLASH,KW_NOTYPE,KW_NUMBER,KW_COMMENT,KW_ID,KW_STRING,PKW_IF,PKW_IFDEF,PKW_IFNDEF,PKW_ELIF,PKW_ELSE,PKW_ENDIF,PKW_INCLUDE,PKW_DEFINE,PKW_UNDEF,PKW_LINE,PKW_ERROR,PKW_PRAGMA,PKW_COMMENT,PKW_NOTYPE,KW_HASHTAG,KW_HASHTAG_HASHTAG};
struct automata_entry
F diff --git a/lex/chonky_jr.c b/lex/chonky_jr.c
--- a/lex/chonky_jr.c
+++ b/lex/chonky_jr.c
struct automata_entry chonky_jr[]={
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,&(chonky_jr[5]),&(chonky_jr[6]),NULL,NULL,NULL,&(chonky_jr[7]),NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[8]),NULL,NULL,NULL,NULL,&(chonky_jr[9]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[1]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,&(chonky_jr[5]),&(chonky_jr[6]),NULL,NULL,NULL,&(chonky_jr[7]),NULL,NULL,&(chonky_jr[8]),NULL,NULL,NULL,&(chonky_jr[9]),NULL,NULL,NULL,NULL,&(chonky_jr[10]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[1]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
{0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[2]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
{0,PKW_NOTYPE,{&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[3]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),} },
{0,PKW_NOTYPE,{&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[4]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),&(chonky_jr[2]),} },
{1,PKW_COMMENT,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[10]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[11]),NULL,&(chonky_jr[12]),NULL,NULL,NULL,&(chonky_jr[13]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[14]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[15]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[16]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[17]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[18]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[19]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,&(chonky_jr[20]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[21]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {1,PKW_IF,{NULL,NULL,NULL,NULL,NULL,&(chonky_jr[22]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[23]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,&(chonky_jr[24]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,&(chonky_jr[25]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,&(chonky_jr[26]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[27]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[28]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[29]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[30]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[31]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,&(chonky_jr[32]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[33]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[34]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[35]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[36]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[11]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[12]),NULL,&(chonky_jr[13]),NULL,NULL,NULL,&(chonky_jr[14]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[15]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[16]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[17]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[18]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[19]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[20]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[21]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[22]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,&(chonky_jr[23]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[24]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {1,PKW_IF,{NULL,NULL,NULL,NULL,NULL,&(chonky_jr[25]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[26]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,&(chonky_jr[27]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[28]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,&(chonky_jr[29]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,&(chonky_jr[30]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[31]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[32]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[33]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[34]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[35]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[36]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,&(chonky_jr[37]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[38]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[39]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[40]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[41]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[42]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
{1,PKW_ELIF,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[37]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[38]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[39]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[40]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[41]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[42]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {1,PKW_ELSE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
{0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[43]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[44]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[44]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[45]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[46]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[47]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {1,PKW_LINE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[48]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[49]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[50]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
{1,PKW_ENDIF,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
{1,PKW_ERROR,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
{1,PKW_IFDEF,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[45]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,&(chonky_jr[46]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,&(chonky_jr[47]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[51]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,&(chonky_jr[52]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,&(chonky_jr[53]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
{1,PKW_UNDEF,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
{1,PKW_DEFINE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
{1,PKW_IFNDEF,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
- {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[48]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
+ {0,PKW_NOTYPE,{NULL,NULL,NULL,NULL,NULL,NULL,&(chonky_jr[54]),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
{1,PKW_PRAGMA,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },
{1,PKW_INCLUDE,{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,} },};
F diff --git a/lex/lexer.c b/lex/lexer.c
--- a/lex/lexer.c
+++ b/lex/lexer.c
struct token *current_token;
+ /*this is a hack*/
+ /*lines start at 0 , this is 1 a directive at the start of the file can be processed correctly*/
+ size_t last_line=1;
while(src->src[src->where_in_src]!='\0')
{
current_token=get_next_token(src,&chonky[0],1);
if(current_token->type==KW_HASHTAG)
{
- parse_preproc_line(src,translation_data);
+ if(last_line!=current_token->line)
+ {
+ parse_preproc_line(src,translation_data);
+ last_line=current_token->line;
+ }else
+ {
+ push_lexing_error("preprocessing directive must be at the beggining of the line",src,translation_data);
+ while((current_token=get_next_token(src,&chonky[0],0))->type!=KW_NOTYPE)
+ {
+ free(current_token);
+ }
+ free(current_token);
+ last_line+=2;
+ }
+
}else if(current_token->type!=KW_NOTYPE)
{
- //Queue_Push(translation_data->tokens,current_token);
+ last_line=current_token->line;
+
expand_macro(current_token,src,translation_data);
}else
{
}
word->data[back]=word->data[front];
}
+ void goto_new_line(struct Source_File *src,struct Translation_Data *translation_data)
+ {
+ while(src->src[src->where_in_src]!='\n' && src->src[src->where_in_src]!='\0')
+ {
+ skip_line_splice(src);
+ ++src->which_column;
+ ++src->where_in_src;
+ }
+ src->which_column=0;
+ ++src->which_row;
+ }
void chase_new_line(struct Source_File *src,struct Translation_Data *translation_data)
{
while(src->src[src->where_in_src]!='\n' && src->src[src->where_in_src]!='\0')
{
if(best_state->type==KW_COMMENT || best_state->type==PKW_COMMENT)
{
+ /*TODO account for new lines not counted in comment*/
current_size=0;
best_state=current_state=start_state;
skip_white_space(src,1);
F diff --git a/lex/lexer.h b/lex/lexer.h
--- a/lex/lexer.h
+++ b/lex/lexer.h
struct token_vector Lex_Queue_Condense(struct Queue *tokens);
void handle_splicing(struct token *word);
void chase_new_line(struct Source_File *src,struct Translation_Data *translation_data);
+ void goto_new_line(struct Source_File *src,struct Translation_Data *translation_data);
void skip_white_space(struct Source_File *src,char skip_new_line);
size_t skip_line_splice(struct Source_File *src);
F diff --git a/lex/preprocessing.c b/lex/preprocessing.c
--- a/lex/preprocessing.c
+++ b/lex/preprocessing.c
Queue_Push(translation_data->tokens,macro_name);
}
}
+
+ struct token* preproc_find_else(struct Source_File *src,struct Translation_Data *translation_data)
+ {
+ struct token *hold_token;
+ int indentation=1;
+
+ while(src->src[src->where_in_src]!='\0' && indentation)
+ {
+ /*BEWARE*/
+ goto_new_line(src,translation_data);
+ /*END BEWARE*/
+
+ hold_token=get_next_token(src,&chonky[0],1);
+ if(hold_token->type==KW_HASHTAG)
+ {
+ free(hold_token);
+ hold_token=get_next_token(src,&chonky_jr[0],0);
+ switch(hold_token->type)
+ {
+ case PKW_IF:
+ case PKW_IFDEF:
+ case PKW_IFNDEF:
+ ++indentation;
+ break;
+
+ case PKW_ENDIF:
+ --indentation;
+ break;
+
+ case PKW_ELSE:
+ case PKW_ELIF:
+ if(indentation==1)
+ {
+ return hold_token;
+ }
+ else
+ {
+ break;
+ }
+ case PKW_NOTYPE:
+ push_lexing_error("unexpected character",src,translation_data);
+ free(hold_token);
+ return NULL;
+ }
+ free(hold_token);
+
+ }else if(hold_token->type!=KW_NOTYPE)
+ {
+ free(hold_token);
+ }else
+ {
+ if(src->where_in_src!=src->src_size)
+ push_lexing_error("unexpected character",src,translation_data);
+ free(hold_token);
+ return NULL;
+ }
+ }
+ /*BEWARE*/
+ goto_new_line(src,translation_data);
+ /*END BEWARE*/
+ return NULL;
+ }
#endif
F diff --git a/lex/preprocessing.h b/lex/preprocessing.h
--- a/lex/preprocessing.h
+++ b/lex/preprocessing.h
/*preproc if stuff*/
- /*
- TODO
- TODO
- TODO
- TODO
- char proproc_is_if(struct Source_File *src,struct Translation_Data *translation_data);
- char proproc_is_else(struct Source_File *src,struct Translation_Data *translation_data);
- void preproc_find_matching_else(struct Source_File *src,struct Translation_Data *translation_data);
- void preproc_find_endif(struct Source_File *src,struct Translation_Data *translation_data);
- TODO
- TODO
- TODO
- TODO
- */
+ /*returns an else or elif token, or if it hits matching endif before that return NULL and goto following line*/
+ struct token* preproc_find_else(struct Source_File *src,struct Translation_Data *translation_data);
+
+
/*define stuff*/
void expand_macro(struct token* macro_name,struct Source_File *src,struct Translation_Data *translation_data);
F diff --git a/parse/parse_expression.c b/parse/parse_expression.c
--- a/parse/parse_expression.c
+++ b/parse/parse_expression.c
if(translation_data->tokens->size==0)
{
/*TODO error*/
+ push_translation_error("expected something here",translation_data);
return (struct AST*)get_error_tree(NULL);
}
hold_token=Queue_Pop(translation_data->tokens);
}else
{
/*TODO error*/
+ push_translation_error("expected ')' here",translation_data);
return (struct AST*)get_error_tree(hold);
}
default:
/*TODO error*/
+ push_translation_error("error in expression",translation_data);
return (struct AST*)get_error_tree(NULL);
}
/*just in case*/
+ assert(0);
return (struct AST*)get_error_tree(NULL);
}
return ret;
}else
{
+ push_translation_error("expected ')' here",translation_data);
return (struct AST_Function_Expression*)get_error_tree((struct AST*)ret);
}
hold=(struct AST*)get_binary_expression_tree(hold,hold_expr,OP_ARR_SUBSCRIPT);
if(!get_and_check(translation_data,KW_CLOSE_SQUARE))
{
+ push_translation_error("expected ']' here",translation_data);
return (struct AST*)get_error_tree(hold);
}
}
return (struct AST*)ret;
}else
{
+ push_translation_error("expected ')' here",translation_data);
return (struct AST*)get_error_tree((struct AST*)ret);
}
return (struct AST*)ret;
}else
{
+ push_translation_error("expected ')' here",translation_data);
return (struct AST*)get_error_tree((struct AST*)ret);
}
if(translation_data->tokens->size==0)
{
/*TODO error*/
+ push_translation_error("expected something here",translation_data);
return (struct AST*)get_error_tree(NULL);
}
return hold;
}else
{
+ push_translation_error("expected ':' here",translation_data);
return (struct AST*)get_error_tree(hold);
}
}else
if(translation_data->tokens->size==0)
{
/*TODO error*/
+ push_translation_error("expected something here",translation_data);
return (struct AST*)get_error_tree(NULL);
}
F diff --git a/parse/parse_statement.c b/parse/parse_statement.c
--- a/parse/parse_statement.c
+++ b/parse/parse_statement.c
{
Queue_Push(&hold->components,parse_statement(translation_data,hold->scope));
}
+ if(has_new_errors(translation_data))
+ chase_next_semicolumn(translation_data);
}
return (struct AST*)hold;
return (struct AST*)get_error_tree(hold);
}
}
+ void chase_next_semicolumn(struct Translation_Data *translation_data)
+ {
+ /*chase ; and start parsing next declaration*/
+ while(!get_and_check(translation_data,KW_SEMI_COLUMN) &&
+ translation_data->tokens->size>0)
+ {
+ chomp(translation_data);
+ }
+ }
#endif
F diff --git a/parse/parse_statement.h b/parse/parse_statement.h
--- a/parse/parse_statement.h
+++ b/parse/parse_statement.h
struct AST* parse_finish_labeled_statement(struct Translation_Data* translation_data,struct Scope *scope,enum AST_Type type);
struct AST* parse_finish_default_statement(struct Translation_Data* translation_data,struct Scope *scope);
+ void chase_next_semicolumn(struct Translation_Data *translation_data);
#endif
F diff --git a/parse/parse_translation_unit.c b/parse/parse_translation_unit.c
--- a/parse/parse_translation_unit.c
+++ b/parse/parse_translation_unit.c
hold=get_translation_unit_tree(externs);
while(translation_data->tokens->size>0)
{
- if(translation_data->errors->size!=0)
- {
- while(translation_data->tokens->size>0)
- free(Queue_Pop(translation_data->tokens));
- break;
- }
if(is_type(translation_data,hold->scope) || kw_get(translation_data)==KW_ID)
{
parse_declaration(translation_data,hold->scope,&hold->components,1);
+ if(has_new_errors(translation_data))
+ {
+ chase_next_semicolumn(translation_data);
+ }
}else
{
push_translation_error("declaration expected",translation_data);
+ chase_next_semicolumn(translation_data);
}
}
return (struct AST*)hold;
F diff --git a/semantics/ast.h b/semantics/ast.h
--- a/semantics/ast.h
+++ b/semantics/ast.h
struct AST_Translation_Unit* get_translation_unit_tree(struct Scope* parent_scope);
+
+
+
#define BIN_EXPR_PTR(x) ((struct AST_Binary_Expression*)(x))
#define UN_EXPR_PTR(x) ((struct AST_Unary_Expression*)(x))
#define LVAL_EXPR_PTR(x) ((struct AST_Lvalue_Expression*)(x))
F diff --git a/semantics/gcc_error.h b/semantics/gcc_error.h
--- a/semantics/gcc_error.h
+++ b/semantics/gcc_error.h
void push_translation_error(const char *error_message,struct Translation_Data *translation_data);
void push_lexing_error(const char *error_message,struct Source_File *src,struct Translation_Data *translation_data);
void print_translation_error(FILE *out,struct Translation_Error *error);
+
#endif
F diff --git a/semantics/program.c b/semantics/program.c
--- a/semantics/program.c
+++ b/semantics/program.c
ret->macros=malloc(sizeof(struct Map));
Map_Init(ret->macros);
+ ret->number_of_errors_when_last_checked=0;
+
return ret;
}
struct Source_Name* get_source_name(char *filename,char *base)
Queue_Push(hold->source_files,file);
lex(file,hold);
}
+
+
+ char has_new_errors(struct Translation_Data *translation_data)
+ {
+ if(translation_data->errors->size<translation_data->number_of_errors_when_last_checked)
+ {
+ translation_data->number_of_errors_when_last_checked=translation_data->errors->size;
+ return 1;
+ }else
+ {
+ return 0;
+ }
+ }
#endif
F diff --git a/semantics/program.h b/semantics/program.h
--- a/semantics/program.h
+++ b/semantics/program.h
struct Translation_Data
{
struct Queue *tokens;
+
+
struct Queue *errors;
+ size_t number_of_errors_when_last_checked;
+
+
struct Queue *source_files;
struct Map *macros;
void lex_program(struct Translation_Data *hold,struct Source_File *file);
+ char has_new_errors(struct Translation_Data *translation_data);
#endif
F diff --git a/semantics/type.c b/semantics/type.c
--- a/semantics/type.c
+++ b/semantics/type.c
}
- switch(prototype->specifier)
+ switch(ret->specifier)
{
case TS_DOUBLE:
- if(prototype->constraint==TC_LONG_LONG
- || prototype->constraint==TC_SHORT
- || prototype->sign!=TSIGN_NONE)
+ if(ret->constraint==TC_LONG_LONG
+ || ret->constraint==TC_SHORT
+ || ret->sign!=TSIGN_NONE)
{
return (struct Type*)get_type_error((struct Type*)ret);
}
break;
case TS_CHAR:
- if(prototype->constraint!=TC_NONE)
+ if(ret->constraint!=TC_NONE)
{
return (struct Type*)get_type_error((struct Type*)ret);
}
case TS_INT:
break;
default:
- if(prototype->constraint!=TC_NONE || prototype->sign!=TSIGN_NONE)
+ if(ret->constraint!=TC_NONE || ret->sign!=TSIGN_NONE)
{
return (struct Type*)get_type_error((struct Type*)ret);
}
F diff --git a/tests/test.c b/tests/test.c
--- a/tests/test.c
+++ b/tests/test.c
List main(int argc, char *argv[])
{
long int c;
- int a,b[sizeof(List)];
+ int a,b[111+1];
return 0;
}
F diff --git a/tests/test3.c b/tests/test3.c
--- a/tests/test3.c
+++ b/tests/test3.c
- #include "../tests/test.c"
+ int a;
+ #include "test2.c"
#define max(a,b) (a>b?a:b)
#define version 1
#define current_version 3
int main()
{
max(1,1);
+ long long long maxi;
return version;
}
F diff --git a/tests/testerror.c b/tests/testerror.c
new file mode 100644
--- /dev/null
+++ b/tests/testerror.c
+ long a;
+ long long a;
+ char a;
+
+
+ int main()
+ {
+ short long kek+1+2+3;
+ int asdf[1];
+ a??1:1;
+ return return;
+ return 0;
+ }
+