mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-02-27 16:30:14 +00:00
Added support for short / long / signed types (without int). Closes #681
This commit is contained in:
parent
82dd27e627
commit
f2f9b79ece
323
src/main/fragment/cache/fragment-cache-mos6502x.asm
vendored
323
src/main/fragment/cache/fragment-cache-mos6502x.asm
vendored
@ -2,109 +2,6 @@
|
||||
//FRAGMENT vbuz1=vbuc1
|
||||
lda #{c1}
|
||||
sta {z1}
|
||||
//FRAGMENT vbuz1_lt_vbuc1_then_la1
|
||||
lda {z1}
|
||||
cmp #{c1}
|
||||
bcc {la1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2
|
||||
lda #{c2}
|
||||
ldy {z1}
|
||||
sta {c1},y
|
||||
//FRAGMENT _deref_pbuc1=vbuc2
|
||||
lda #{c2}
|
||||
sta {c1}
|
||||
//FRAGMENT vbuz1=vbuz1_plus_2
|
||||
lda {z1}
|
||||
clc
|
||||
adc #2
|
||||
sta {z1}
|
||||
//FRAGMENT vbuaa_lt_vbuc1_then_la1
|
||||
cmp #{c1}
|
||||
bcc {la1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuaa=vbuc2
|
||||
tay
|
||||
lda #{c2}
|
||||
sta {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuxx=vbuc2
|
||||
lda #{c2}
|
||||
sta {c1},x
|
||||
//FRAGMENT pbuc1_derefidx_vbuyy=vbuc2
|
||||
lda #{c2}
|
||||
sta {c1},y
|
||||
//FRAGMENT vbuxx=vbuxx_plus_2
|
||||
inx
|
||||
inx
|
||||
//FRAGMENT vbuxx_lt_vbuc1_then_la1
|
||||
cpx #{c1}
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuxx=vbuc1
|
||||
ldx #{c1}
|
||||
//FRAGMENT vbuyy=vbuc1
|
||||
ldy #{c1}
|
||||
//FRAGMENT vbuyy_lt_vbuc1_then_la1
|
||||
cpy #{c1}
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuyy=vbuyy_plus_2
|
||||
iny
|
||||
iny
|
||||
//FRAGMENT vbuz1_eq_vbuz2_then_la1
|
||||
lda {z1}
|
||||
cmp {z2}
|
||||
beq {la1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuz1=vbuz2
|
||||
lda {z2}
|
||||
ldy {z1}
|
||||
sta {c1},y
|
||||
//FRAGMENT vbuz1=_inc_vbuz1
|
||||
inc {z1}
|
||||
//FRAGMENT vbuz1_eq_vbuaa_then_la1
|
||||
cmp {z1}
|
||||
beq {la1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuz1=vbuxx
|
||||
ldy {z1}
|
||||
txa
|
||||
sta {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuz1=vbuyy
|
||||
tya
|
||||
ldy {z1}
|
||||
sta {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuxx=vbuz1
|
||||
lda {z1}
|
||||
sta {c1},x
|
||||
//FRAGMENT pbuc1_derefidx_vbuxx=vbuxx
|
||||
txa
|
||||
sta {c1},x
|
||||
//FRAGMENT pbuc1_derefidx_vbuxx=vbuyy
|
||||
tya
|
||||
sta {c1},x
|
||||
//FRAGMENT pbuc1_derefidx_vbuyy=vbuz1
|
||||
lda {z1}
|
||||
sta {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuyy=vbuxx
|
||||
txa
|
||||
sta {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuyy=vbuyy
|
||||
tya
|
||||
sta {c1},y
|
||||
//FRAGMENT vbuxx=_inc_vbuxx
|
||||
inx
|
||||
//FRAGMENT vbuyy=_inc_vbuyy
|
||||
iny
|
||||
//FRAGMENT vbuaa=vbuc1
|
||||
lda #{c1}
|
||||
//FRAGMENT vbuz1_eq_vbuyy_then_la1
|
||||
tya
|
||||
cmp {z1}
|
||||
beq {la1}
|
||||
//FRAGMENT vbuyy_eq_vbuz1_then_la1
|
||||
tya
|
||||
cmp {z1}
|
||||
beq {la1}
|
||||
//FRAGMENT vbuyy_eq_vbuaa_then_la1
|
||||
tax
|
||||
sty $ff
|
||||
cpx $ff
|
||||
beq {la1}
|
||||
//FRAGMENT vbuz1=vbuz2_band_vbuc1
|
||||
lda #{c1}
|
||||
and {z2}
|
||||
@ -116,6 +13,12 @@ bcs {la1}
|
||||
//FRAGMENT vbuz1_neq_0_then_la1
|
||||
lda {z1}
|
||||
bne {la1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuz1=vbuc2
|
||||
lda #{c2}
|
||||
ldy {z1}
|
||||
sta {c1},y
|
||||
//FRAGMENT vbuz1=_inc_vbuz1
|
||||
inc {z1}
|
||||
//FRAGMENT vbuz1_neq_vbuc1_then_la1
|
||||
lda #{c1}
|
||||
cmp {z1}
|
||||
@ -145,6 +48,16 @@ bcs {la1}
|
||||
//FRAGMENT vbuaa_neq_0_then_la1
|
||||
cmp #0
|
||||
bne {la1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuaa=vbuc2
|
||||
tay
|
||||
lda #{c2}
|
||||
sta {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuxx=vbuc2
|
||||
lda #{c2}
|
||||
sta {c1},x
|
||||
//FRAGMENT pbuc1_derefidx_vbuyy=vbuc2
|
||||
lda #{c2}
|
||||
sta {c1},y
|
||||
//FRAGMENT vbuxx_neq_vbuc1_then_la1
|
||||
cpx #{c1}
|
||||
bne {la1}
|
||||
@ -179,9 +92,17 @@ tay
|
||||
//FRAGMENT vbuxx_ge_vbuc1_then_la1
|
||||
cpx #{c1}
|
||||
bcs {la1}
|
||||
//FRAGMENT vbuxx=vbuc1
|
||||
ldx #{c1}
|
||||
//FRAGMENT vbuxx=_inc_vbuxx
|
||||
inx
|
||||
//FRAGMENT vbuyy=vbuc1
|
||||
ldy #{c1}
|
||||
//FRAGMENT vbuyy_ge_vbuc1_then_la1
|
||||
cpy #{c1}
|
||||
bcs {la1}
|
||||
//FRAGMENT vbuyy=_inc_vbuyy
|
||||
iny
|
||||
//FRAGMENT vbuyy_neq_vbuc1_then_la1
|
||||
cpy #{c1}
|
||||
bne {la1}
|
||||
@ -214,6 +135,11 @@ sta {z1}
|
||||
ldy {z3}
|
||||
lda ({z2}),y
|
||||
sta {z1}
|
||||
//FRAGMENT vbuz1=vbuz1_plus_2
|
||||
lda {z1}
|
||||
clc
|
||||
adc #2
|
||||
sta {z1}
|
||||
//FRAGMENT pbuz1_derefidx_vbuz2=vbuz3
|
||||
lda {z3}
|
||||
ldy {z2}
|
||||
@ -281,6 +207,9 @@ tay
|
||||
//FRAGMENT vbuyy=pbuz1_derefidx_vbuyy
|
||||
lda ({z1}),y
|
||||
tay
|
||||
//FRAGMENT vbuxx=vbuxx_plus_2
|
||||
inx
|
||||
inx
|
||||
//FRAGMENT pbuz1_derefidx_vbuxx=vbuz2
|
||||
txa
|
||||
tay
|
||||
@ -319,9 +248,106 @@ sta ({z1}),y
|
||||
//FRAGMENT vbuxx=vbuyy
|
||||
tya
|
||||
tax
|
||||
//FRAGMENT vbuyy=vbuyy_plus_2
|
||||
iny
|
||||
iny
|
||||
//FRAGMENT pbuc1_derefidx_vbuz1=vbuz1
|
||||
ldy {z1}
|
||||
tya
|
||||
sta {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuaa=vbuaa
|
||||
tax
|
||||
sta {c1},x
|
||||
//FRAGMENT vbuaa_neq_vbuc1_then_la1
|
||||
cmp #{c1}
|
||||
bne {la1}
|
||||
//FRAGMENT vbuaa=vbuc1
|
||||
lda #{c1}
|
||||
//FRAGMENT vbuaa=_inc_vbuaa
|
||||
clc
|
||||
adc #1
|
||||
//FRAGMENT pbuc1_derefidx_vbuxx=vbuxx
|
||||
txa
|
||||
sta {c1},x
|
||||
//FRAGMENT pbuc1_derefidx_vbuyy=vbuyy
|
||||
tya
|
||||
sta {c1},y
|
||||
//FRAGMENT isr_rom_min_c64_entry
|
||||
|
||||
//FRAGMENT _deref_qprc1=pprc2
|
||||
lda #<{c2}
|
||||
sta {c1}
|
||||
lda #>{c2}
|
||||
sta {c1}+1
|
||||
//FRAGMENT isr_rom_min_c64_exit
|
||||
jmp $ea81
|
||||
//FRAGMENT _deref_pbuc1=vbuc2
|
||||
lda #{c2}
|
||||
sta {c1}
|
||||
//FRAGMENT _deref_pbuc1=vbuz1
|
||||
lda {z1}
|
||||
sta {c1}
|
||||
//FRAGMENT vbuz1_lt_vbuc1_then_la1
|
||||
lda {z1}
|
||||
cmp #{c1}
|
||||
bcc {la1}
|
||||
//FRAGMENT _deref_pbuc1=vbuaa
|
||||
sta {c1}
|
||||
//FRAGMENT vbuaa_lt_vbuc1_then_la1
|
||||
cmp #{c1}
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuxx_lt_vbuc1_then_la1
|
||||
cpx #{c1}
|
||||
bcc {la1}
|
||||
//FRAGMENT vbuyy_lt_vbuc1_then_la1
|
||||
cpy #{c1}
|
||||
bcc {la1}
|
||||
//FRAGMENT _deref_pbuc1=vbuyy
|
||||
sty {c1}
|
||||
//FRAGMENT vbuz1_eq_vbuz2_then_la1
|
||||
lda {z1}
|
||||
cmp {z2}
|
||||
beq {la1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuz1=vbuz2
|
||||
lda {z2}
|
||||
ldy {z1}
|
||||
sta {c1},y
|
||||
//FRAGMENT vbuz1_eq_vbuaa_then_la1
|
||||
cmp {z1}
|
||||
beq {la1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuz1=vbuxx
|
||||
ldy {z1}
|
||||
txa
|
||||
sta {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuz1=vbuyy
|
||||
tya
|
||||
ldy {z1}
|
||||
sta {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuxx=vbuz1
|
||||
lda {z1}
|
||||
sta {c1},x
|
||||
//FRAGMENT pbuc1_derefidx_vbuxx=vbuyy
|
||||
tya
|
||||
sta {c1},x
|
||||
//FRAGMENT pbuc1_derefidx_vbuyy=vbuz1
|
||||
lda {z1}
|
||||
sta {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuyy=vbuxx
|
||||
txa
|
||||
sta {c1},y
|
||||
//FRAGMENT vbuz1_eq_vbuyy_then_la1
|
||||
tya
|
||||
cmp {z1}
|
||||
beq {la1}
|
||||
//FRAGMENT vbuyy_eq_vbuz1_then_la1
|
||||
tya
|
||||
cmp {z1}
|
||||
beq {la1}
|
||||
//FRAGMENT vbuyy_eq_vbuaa_then_la1
|
||||
tax
|
||||
sty $ff
|
||||
cpx $ff
|
||||
beq {la1}
|
||||
//FRAGMENT vbuz1_neq_vbuz2_then_la1
|
||||
lda {z1}
|
||||
cmp {z2}
|
||||
@ -335,8 +361,6 @@ lda {z1}
|
||||
sec
|
||||
sbc {z2}
|
||||
sta {z1}
|
||||
//FRAGMENT _deref_pbuc1=vbuaa
|
||||
sta {c1}
|
||||
//FRAGMENT vbuz1_neq_vbuaa_then_la1
|
||||
cmp {z1}
|
||||
bne {la1}
|
||||
@ -476,21 +500,6 @@ tax
|
||||
stx {c1}
|
||||
//FRAGMENT vbuyy=vbuaa
|
||||
tay
|
||||
//FRAGMENT _deref_pbuc1=vbuyy
|
||||
sty {c1}
|
||||
//FRAGMENT pbuc1_derefidx_vbuz1=vbuz1
|
||||
ldy {z1}
|
||||
tya
|
||||
sta {c1},y
|
||||
//FRAGMENT pbuc1_derefidx_vbuaa=vbuaa
|
||||
tax
|
||||
sta {c1},x
|
||||
//FRAGMENT vbuaa_neq_vbuc1_then_la1
|
||||
cmp #{c1}
|
||||
bne {la1}
|
||||
//FRAGMENT vbuaa=_inc_vbuaa
|
||||
clc
|
||||
adc #1
|
||||
//FRAGMENT vbuz1=vbuz2_rol_1
|
||||
lda {z2}
|
||||
asl
|
||||
@ -625,17 +634,8 @@ rti
|
||||
lda #{c2}
|
||||
ora {c1}
|
||||
sta {c1}
|
||||
//FRAGMENT _deref_qprc1=pprc2
|
||||
lda #<{c2}
|
||||
sta {c1}
|
||||
lda #>{c2}
|
||||
sta {c1}+1
|
||||
//FRAGMENT _deref_pbuc1=_inc__deref_pbuc1
|
||||
inc {c1}
|
||||
//FRAGMENT isr_rom_min_c64_entry
|
||||
|
||||
//FRAGMENT isr_rom_min_c64_exit
|
||||
jmp $ea81
|
||||
//FRAGMENT _deref_pwuc1=vbuc2
|
||||
lda #<{c2}
|
||||
sta {c1}
|
||||
@ -4909,49 +4909,52 @@ tax
|
||||
tya
|
||||
lsr
|
||||
tay
|
||||
//FRAGMENT vssz1=_stackidxstruct_vbuc1_vbuc2
|
||||
//FRAGMENT vssz1=_stackidxstruct_4_vbuc1
|
||||
tsx
|
||||
ldy #0
|
||||
!:
|
||||
lda STACK_BASE+{c2},x
|
||||
sta {z1},y
|
||||
inx
|
||||
iny
|
||||
cpy #{c1}
|
||||
bne !-
|
||||
lda STACK_BASE+{c1},x
|
||||
sta {z1}
|
||||
lda STACK_BASE+{c1}+1,x
|
||||
sta {z1}+1
|
||||
lda STACK_BASE+{c1}+2,x
|
||||
sta {z1}+2
|
||||
lda STACK_BASE+{c1}+3,x
|
||||
sta {z1}+3
|
||||
//FRAGMENT vbuz1=vbuz2_plus_1
|
||||
ldy {z2}
|
||||
iny
|
||||
sty {z1}
|
||||
//FRAGMENT _stackidxstruct_vbuc1_vbuc2=vssz1
|
||||
//FRAGMENT _stackidxstruct_4_vbuc1=vssz1
|
||||
tsx
|
||||
ldy #0
|
||||
!:
|
||||
lda {z1},y
|
||||
sta STACK_BASE+{c2},x
|
||||
inx
|
||||
iny
|
||||
cpy #{c1}
|
||||
bne !-
|
||||
lda {z1}
|
||||
sta STACK_BASE+{c1},x
|
||||
lda {z1}+1
|
||||
sta STACK_BASE+{c1}+1,x
|
||||
lda {z1}+2
|
||||
sta STACK_BASE+{c1}+2,x
|
||||
lda {z1}+3
|
||||
sta STACK_BASE+{c1}+3,x
|
||||
//FRAGMENT _stackpushbyte_3
|
||||
pha
|
||||
pha
|
||||
pha
|
||||
//FRAGMENT vssz1=_stackpullstruct_vbuc1_
|
||||
ldx #0
|
||||
!:
|
||||
//FRAGMENT vssz1=_stackpullstruct_4_
|
||||
pla
|
||||
sta {z1},x
|
||||
inx
|
||||
cpx #{c1}
|
||||
bne !-
|
||||
//FRAGMENT _stackpushstruct_vbuc1_=vssz1
|
||||
ldy #{c1}
|
||||
!:
|
||||
lda {z1}-1,y
|
||||
sta {z1}
|
||||
pla
|
||||
sta {z1}+1
|
||||
pla
|
||||
sta {z1}+2
|
||||
pla
|
||||
sta {z1}+3
|
||||
//FRAGMENT _stackpushstruct_4_=vssz1
|
||||
lda {z1}+3
|
||||
pha
|
||||
lda {z1}+2
|
||||
pha
|
||||
lda {z1}+1
|
||||
pha
|
||||
lda {z1}
|
||||
pha
|
||||
dey
|
||||
bne !-
|
||||
//FRAGMENT _stackpullbyte_4
|
||||
tsx
|
||||
txa
|
||||
|
@ -58,32 +58,39 @@ public interface SymbolType extends Serializable {
|
||||
*/
|
||||
static SymbolType get(String name) {
|
||||
switch(name) {
|
||||
case "byte":
|
||||
case "unsigned byte":
|
||||
case "char":
|
||||
case "unsigned char":
|
||||
case "byte":
|
||||
case "unsigned byte":
|
||||
return BYTE;
|
||||
case "signed byte":
|
||||
case "signed char":
|
||||
case "signed byte":
|
||||
return SBYTE;
|
||||
case "unsigned":
|
||||
case "unsigned int":
|
||||
case "unsigned short":
|
||||
case "unsigned short int":
|
||||
case "word":
|
||||
case "unsigned word":
|
||||
case "unsigned short":
|
||||
case "unsigned int":
|
||||
return WORD;
|
||||
case "signed word":
|
||||
case "signed":
|
||||
case "short":
|
||||
case "signed short":
|
||||
case "short int":
|
||||
case "int":
|
||||
case "signed int":
|
||||
case "signed short":
|
||||
case "signed short int":
|
||||
case "signed word":
|
||||
return SWORD;
|
||||
case "unsigned long":
|
||||
case "unsigned long int":
|
||||
case "dword":
|
||||
case "unsigned dword":
|
||||
case "unsigned long":
|
||||
return DWORD;
|
||||
case "signed dword":
|
||||
case "long":
|
||||
case "signed long":
|
||||
case "signed long int":
|
||||
case "signed dword":
|
||||
return SDWORD;
|
||||
case "bool":
|
||||
return BOOLEAN;
|
||||
|
@ -104,8 +104,7 @@ CLOBBERS : 'clobbers' ;
|
||||
BYTES : 'bytes' ;
|
||||
CYCLES : 'cycles' ;
|
||||
LOGIC_NOT : '!' ;
|
||||
SIGNEDNESS : 'signed' | 'unsigned' ;
|
||||
SIMPLETYPE: 'byte' | 'word' | 'dword' | 'bool' | 'char' | 'short' | 'int' | 'long' | 'void' ;
|
||||
SIMPLETYPE: 'signed' | 'unsigned' | 'byte' | 'word' | 'dword' | 'bool' | 'char' | 'short' | 'int' | 'long' | 'void' ;
|
||||
BOOLEAN : 'true' | 'false';
|
||||
KICKASM_BODY: '{{' .*? '}}';
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@ -79,80 +79,79 @@ CLOBBERS=78
|
||||
BYTES=79
|
||||
CYCLES=80
|
||||
LOGIC_NOT=81
|
||||
SIGNEDNESS=82
|
||||
SIMPLETYPE=83
|
||||
BOOLEAN=84
|
||||
KICKASM_BODY=85
|
||||
IMPORT=86
|
||||
INCLUDE=87
|
||||
PRAGMA=88
|
||||
DEFINE=89
|
||||
DEFINE_CONTINUE=90
|
||||
UNDEF=91
|
||||
IFDEF=92
|
||||
IFNDEF=93
|
||||
IFIF=94
|
||||
ELIF=95
|
||||
IFELSE=96
|
||||
ENDIF=97
|
||||
ERROR=98
|
||||
NUMBER=99
|
||||
NUMFLOAT=100
|
||||
BINFLOAT=101
|
||||
DECFLOAT=102
|
||||
HEXFLOAT=103
|
||||
NUMINT=104
|
||||
BININTEGER=105
|
||||
DECINTEGER=106
|
||||
HEXINTEGER=107
|
||||
NAME=108
|
||||
STRING=109
|
||||
CHAR=110
|
||||
WS=111
|
||||
COMMENT_LINE=112
|
||||
COMMENT_BLOCK=113
|
||||
ASM_BYTE=114
|
||||
ASM_MNEMONIC=115
|
||||
ASM_IMM=116
|
||||
ASM_COLON=117
|
||||
ASM_COMMA=118
|
||||
ASM_PAR_BEGIN=119
|
||||
ASM_PAR_END=120
|
||||
ASM_BRACKET_BEGIN=121
|
||||
ASM_BRACKET_END=122
|
||||
ASM_DOT=123
|
||||
ASM_SHIFT_LEFT=124
|
||||
ASM_SHIFT_RIGHT=125
|
||||
ASM_PLUS=126
|
||||
ASM_MINUS=127
|
||||
ASM_LESS_THAN=128
|
||||
ASM_GREATER_THAN=129
|
||||
ASM_MULTIPLY=130
|
||||
ASM_DIVIDE=131
|
||||
ASM_CURLY_BEGIN=132
|
||||
ASM_CURLY_END=133
|
||||
ASM_NUMBER=134
|
||||
ASM_NUMFLOAT=135
|
||||
ASM_BINFLOAT=136
|
||||
ASM_DECFLOAT=137
|
||||
ASM_HEXFLOAT=138
|
||||
ASM_NUMINT=139
|
||||
ASM_BININTEGER=140
|
||||
ASM_DECINTEGER=141
|
||||
ASM_HEXINTEGER=142
|
||||
ASM_CHAR=143
|
||||
ASM_MULTI_REL=144
|
||||
ASM_MULTI_NAME=145
|
||||
ASM_NAME=146
|
||||
ASM_TAG=147
|
||||
ASM_WS=148
|
||||
ASM_COMMENT_LINE=149
|
||||
ASM_COMMENT_BLOCK=150
|
||||
IMPORT_SYSTEMFILE=151
|
||||
IMPORT_LOCALFILE=152
|
||||
IMPORT_WS=153
|
||||
IMPORT_COMMENT_LINE=154
|
||||
IMPORT_COMMENT_BLOCK=155
|
||||
SIMPLETYPE=82
|
||||
BOOLEAN=83
|
||||
KICKASM_BODY=84
|
||||
IMPORT=85
|
||||
INCLUDE=86
|
||||
PRAGMA=87
|
||||
DEFINE=88
|
||||
DEFINE_CONTINUE=89
|
||||
UNDEF=90
|
||||
IFDEF=91
|
||||
IFNDEF=92
|
||||
IFIF=93
|
||||
ELIF=94
|
||||
IFELSE=95
|
||||
ENDIF=96
|
||||
ERROR=97
|
||||
NUMBER=98
|
||||
NUMFLOAT=99
|
||||
BINFLOAT=100
|
||||
DECFLOAT=101
|
||||
HEXFLOAT=102
|
||||
NUMINT=103
|
||||
BININTEGER=104
|
||||
DECINTEGER=105
|
||||
HEXINTEGER=106
|
||||
NAME=107
|
||||
STRING=108
|
||||
CHAR=109
|
||||
WS=110
|
||||
COMMENT_LINE=111
|
||||
COMMENT_BLOCK=112
|
||||
ASM_BYTE=113
|
||||
ASM_MNEMONIC=114
|
||||
ASM_IMM=115
|
||||
ASM_COLON=116
|
||||
ASM_COMMA=117
|
||||
ASM_PAR_BEGIN=118
|
||||
ASM_PAR_END=119
|
||||
ASM_BRACKET_BEGIN=120
|
||||
ASM_BRACKET_END=121
|
||||
ASM_DOT=122
|
||||
ASM_SHIFT_LEFT=123
|
||||
ASM_SHIFT_RIGHT=124
|
||||
ASM_PLUS=125
|
||||
ASM_MINUS=126
|
||||
ASM_LESS_THAN=127
|
||||
ASM_GREATER_THAN=128
|
||||
ASM_MULTIPLY=129
|
||||
ASM_DIVIDE=130
|
||||
ASM_CURLY_BEGIN=131
|
||||
ASM_CURLY_END=132
|
||||
ASM_NUMBER=133
|
||||
ASM_NUMFLOAT=134
|
||||
ASM_BINFLOAT=135
|
||||
ASM_DECFLOAT=136
|
||||
ASM_HEXFLOAT=137
|
||||
ASM_NUMINT=138
|
||||
ASM_BININTEGER=139
|
||||
ASM_DECINTEGER=140
|
||||
ASM_HEXINTEGER=141
|
||||
ASM_CHAR=142
|
||||
ASM_MULTI_REL=143
|
||||
ASM_MULTI_NAME=144
|
||||
ASM_NAME=145
|
||||
ASM_TAG=146
|
||||
ASM_WS=147
|
||||
ASM_COMMENT_LINE=148
|
||||
ASM_COMMENT_BLOCK=149
|
||||
IMPORT_SYSTEMFILE=150
|
||||
IMPORT_LOCALFILE=151
|
||||
IMPORT_WS=152
|
||||
IMPORT_COMMENT_LINE=153
|
||||
IMPORT_COMMENT_BLOCK=154
|
||||
';'=8
|
||||
'..'=11
|
||||
'...'=12
|
||||
@ -214,17 +213,17 @@ IMPORT_COMMENT_BLOCK=155
|
||||
'bytes'=79
|
||||
'cycles'=80
|
||||
'!'=81
|
||||
'#import'=86
|
||||
'#include'=87
|
||||
'#pragma'=88
|
||||
'#define'=89
|
||||
'#undef'=91
|
||||
'#ifdef'=92
|
||||
'#ifndef'=93
|
||||
'#if'=94
|
||||
'#elif'=95
|
||||
'#else'=96
|
||||
'#endif'=97
|
||||
'#error'=98
|
||||
'.byte'=114
|
||||
'#'=116
|
||||
'#import'=85
|
||||
'#include'=86
|
||||
'#pragma'=87
|
||||
'#define'=88
|
||||
'#undef'=90
|
||||
'#ifdef'=91
|
||||
'#ifndef'=92
|
||||
'#if'=93
|
||||
'#elif'=94
|
||||
'#else'=95
|
||||
'#endif'=96
|
||||
'#error'=97
|
||||
'.byte'=113
|
||||
'#'=115
|
||||
|
@ -85,8 +85,7 @@ declarator
|
||||
;
|
||||
|
||||
type
|
||||
: SIMPLETYPE #typeSimple
|
||||
| SIGNEDNESS SIMPLETYPE? #typeSignedSimple
|
||||
: SIMPLETYPE+ #typeSimple
|
||||
| structDef #typeStructDef
|
||||
| structRef #typeStructRef
|
||||
| enumDef #typeEnumDef
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickCParser.g4 by ANTLR 4.9.1
|
||||
// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickCParser.g4 by ANTLR 4.9
|
||||
package dk.camelot64.kickc.parser;
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ import java.util.ArrayList;
|
||||
|
||||
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
|
||||
public class KickCParser extends Parser {
|
||||
static { RuntimeMetaData.checkVersion("4.9.1", RuntimeMetaData.VERSION); }
|
||||
static { RuntimeMetaData.checkVersion("4.9", RuntimeMetaData.VERSION); }
|
||||
|
||||
protected static final DFA[] _decisionToDFA;
|
||||
protected static final PredictionContextCache _sharedContextCache =
|
||||
@ -32,22 +32,22 @@ public class KickCParser extends Parser {
|
||||
SWITCH=62, RETURN=63, BREAK=64, CONTINUE=65, ASM=66, DEFAULT=67, CASE=68,
|
||||
STRUCT=69, UNION=70, ENUM=71, SIZEOF=72, TYPEID=73, DEFINED=74, KICKASM=75,
|
||||
RESOURCE=76, USES=77, CLOBBERS=78, BYTES=79, CYCLES=80, LOGIC_NOT=81,
|
||||
SIGNEDNESS=82, SIMPLETYPE=83, BOOLEAN=84, KICKASM_BODY=85, IMPORT=86,
|
||||
INCLUDE=87, PRAGMA=88, DEFINE=89, DEFINE_CONTINUE=90, UNDEF=91, IFDEF=92,
|
||||
IFNDEF=93, IFIF=94, ELIF=95, IFELSE=96, ENDIF=97, ERROR=98, NUMBER=99,
|
||||
NUMFLOAT=100, BINFLOAT=101, DECFLOAT=102, HEXFLOAT=103, NUMINT=104, BININTEGER=105,
|
||||
DECINTEGER=106, HEXINTEGER=107, NAME=108, STRING=109, CHAR=110, WS=111,
|
||||
COMMENT_LINE=112, COMMENT_BLOCK=113, ASM_BYTE=114, ASM_MNEMONIC=115, ASM_IMM=116,
|
||||
ASM_COLON=117, ASM_COMMA=118, ASM_PAR_BEGIN=119, ASM_PAR_END=120, ASM_BRACKET_BEGIN=121,
|
||||
ASM_BRACKET_END=122, ASM_DOT=123, ASM_SHIFT_LEFT=124, ASM_SHIFT_RIGHT=125,
|
||||
ASM_PLUS=126, ASM_MINUS=127, ASM_LESS_THAN=128, ASM_GREATER_THAN=129,
|
||||
ASM_MULTIPLY=130, ASM_DIVIDE=131, ASM_CURLY_BEGIN=132, ASM_CURLY_END=133,
|
||||
ASM_NUMBER=134, ASM_NUMFLOAT=135, ASM_BINFLOAT=136, ASM_DECFLOAT=137,
|
||||
ASM_HEXFLOAT=138, ASM_NUMINT=139, ASM_BININTEGER=140, ASM_DECINTEGER=141,
|
||||
ASM_HEXINTEGER=142, ASM_CHAR=143, ASM_MULTI_REL=144, ASM_MULTI_NAME=145,
|
||||
ASM_NAME=146, ASM_TAG=147, ASM_WS=148, ASM_COMMENT_LINE=149, ASM_COMMENT_BLOCK=150,
|
||||
IMPORT_SYSTEMFILE=151, IMPORT_LOCALFILE=152, IMPORT_WS=153, IMPORT_COMMENT_LINE=154,
|
||||
IMPORT_COMMENT_BLOCK=155;
|
||||
SIMPLETYPE=82, BOOLEAN=83, KICKASM_BODY=84, IMPORT=85, INCLUDE=86, PRAGMA=87,
|
||||
DEFINE=88, DEFINE_CONTINUE=89, UNDEF=90, IFDEF=91, IFNDEF=92, IFIF=93,
|
||||
ELIF=94, IFELSE=95, ENDIF=96, ERROR=97, NUMBER=98, NUMFLOAT=99, BINFLOAT=100,
|
||||
DECFLOAT=101, HEXFLOAT=102, NUMINT=103, BININTEGER=104, DECINTEGER=105,
|
||||
HEXINTEGER=106, NAME=107, STRING=108, CHAR=109, WS=110, COMMENT_LINE=111,
|
||||
COMMENT_BLOCK=112, ASM_BYTE=113, ASM_MNEMONIC=114, ASM_IMM=115, ASM_COLON=116,
|
||||
ASM_COMMA=117, ASM_PAR_BEGIN=118, ASM_PAR_END=119, ASM_BRACKET_BEGIN=120,
|
||||
ASM_BRACKET_END=121, ASM_DOT=122, ASM_SHIFT_LEFT=123, ASM_SHIFT_RIGHT=124,
|
||||
ASM_PLUS=125, ASM_MINUS=126, ASM_LESS_THAN=127, ASM_GREATER_THAN=128,
|
||||
ASM_MULTIPLY=129, ASM_DIVIDE=130, ASM_CURLY_BEGIN=131, ASM_CURLY_END=132,
|
||||
ASM_NUMBER=133, ASM_NUMFLOAT=134, ASM_BINFLOAT=135, ASM_DECFLOAT=136,
|
||||
ASM_HEXFLOAT=137, ASM_NUMINT=138, ASM_BININTEGER=139, ASM_DECINTEGER=140,
|
||||
ASM_HEXINTEGER=141, ASM_CHAR=142, ASM_MULTI_REL=143, ASM_MULTI_NAME=144,
|
||||
ASM_NAME=145, ASM_TAG=146, ASM_WS=147, ASM_COMMENT_LINE=148, ASM_COMMENT_BLOCK=149,
|
||||
IMPORT_SYSTEMFILE=150, IMPORT_LOCALFILE=151, IMPORT_WS=152, IMPORT_COMMENT_LINE=153,
|
||||
IMPORT_COMMENT_BLOCK=154;
|
||||
public static final int
|
||||
RULE_file = 0, RULE_asmFile = 1, RULE_declSeq = 2, RULE_decl = 3, RULE_declVariables = 4,
|
||||
RULE_declaratorInitList = 5, RULE_declaratorInit = 6, RULE_typeDef = 7,
|
||||
@ -89,7 +89,7 @@ public class KickCParser extends Parser {
|
||||
"'while'", "'do'", "'for'", "'switch'", "'return'", "'break'", "'continue'",
|
||||
"'asm'", "'default'", "'case'", "'struct'", "'union'", "'enum'", "'sizeof'",
|
||||
"'typeid'", "'defined'", "'kickasm'", "'resource'", "'uses'", "'clobbers'",
|
||||
"'bytes'", "'cycles'", "'!'", null, null, null, null, "'#import'", "'#include'",
|
||||
"'bytes'", "'cycles'", "'!'", null, null, null, "'#import'", "'#include'",
|
||||
"'#pragma'", "'#define'", null, "'#undef'", "'#ifdef'", "'#ifndef'",
|
||||
"'#if'", "'#elif'", "'#else'", "'#endif'", "'#error'", null, null, null,
|
||||
null, null, null, null, null, null, null, null, null, null, null, null,
|
||||
@ -111,9 +111,9 @@ public class KickCParser extends Parser {
|
||||
"IF", "ELSE", "WHILE", "DO", "FOR", "SWITCH", "RETURN", "BREAK", "CONTINUE",
|
||||
"ASM", "DEFAULT", "CASE", "STRUCT", "UNION", "ENUM", "SIZEOF", "TYPEID",
|
||||
"DEFINED", "KICKASM", "RESOURCE", "USES", "CLOBBERS", "BYTES", "CYCLES",
|
||||
"LOGIC_NOT", "SIGNEDNESS", "SIMPLETYPE", "BOOLEAN", "KICKASM_BODY", "IMPORT",
|
||||
"INCLUDE", "PRAGMA", "DEFINE", "DEFINE_CONTINUE", "UNDEF", "IFDEF", "IFNDEF",
|
||||
"IFIF", "ELIF", "IFELSE", "ENDIF", "ERROR", "NUMBER", "NUMFLOAT", "BINFLOAT",
|
||||
"LOGIC_NOT", "SIMPLETYPE", "BOOLEAN", "KICKASM_BODY", "IMPORT", "INCLUDE",
|
||||
"PRAGMA", "DEFINE", "DEFINE_CONTINUE", "UNDEF", "IFDEF", "IFNDEF", "IFIF",
|
||||
"ELIF", "IFELSE", "ENDIF", "ERROR", "NUMBER", "NUMFLOAT", "BINFLOAT",
|
||||
"DECFLOAT", "HEXFLOAT", "NUMINT", "BININTEGER", "DECINTEGER", "HEXINTEGER",
|
||||
"NAME", "STRING", "CHAR", "WS", "COMMENT_LINE", "COMMENT_BLOCK", "ASM_BYTE",
|
||||
"ASM_MNEMONIC", "ASM_IMM", "ASM_COLON", "ASM_COMMA", "ASM_PAR_BEGIN",
|
||||
@ -321,7 +321,7 @@ public class KickCParser extends Parser {
|
||||
setState(101);
|
||||
_errHandler.sync(this);
|
||||
_la = _input.LA(1);
|
||||
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << TYPEDEF) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (STRUCT - 69)) | (1L << (UNION - 69)) | (1L << (ENUM - 69)) | (1L << (SIGNEDNESS - 69)) | (1L << (SIMPLETYPE - 69)) | (1L << (PRAGMA - 69)))) != 0)) {
|
||||
while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << TYPEDEF) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (STRUCT - 69)) | (1L << (UNION - 69)) | (1L << (ENUM - 69)) | (1L << (SIMPLETYPE - 69)) | (1L << (PRAGMA - 69)))) != 0)) {
|
||||
{
|
||||
{
|
||||
setState(98);
|
||||
@ -1092,7 +1092,7 @@ public class KickCParser extends Parser {
|
||||
setState(184);
|
||||
_errHandler.sync(this);
|
||||
_la = _input.LA(1);
|
||||
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << PARAM_LIST) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (STRUCT - 69)) | (1L << (UNION - 69)) | (1L << (ENUM - 69)) | (1L << (SIGNEDNESS - 69)) | (1L << (SIMPLETYPE - 69)))) != 0)) {
|
||||
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << PARAM_LIST) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (STRUCT - 69)) | (1L << (UNION - 69)) | (1L << (ENUM - 69)) | (1L << (SIMPLETYPE - 69)))) != 0)) {
|
||||
{
|
||||
setState(183);
|
||||
parameterListDecl();
|
||||
@ -1364,7 +1364,7 @@ public class KickCParser extends Parser {
|
||||
setState(218);
|
||||
_errHandler.sync(this);
|
||||
_la = _input.LA(1);
|
||||
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << PARAM_LIST) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (STRUCT - 69)) | (1L << (UNION - 69)) | (1L << (ENUM - 69)) | (1L << (SIGNEDNESS - 69)) | (1L << (SIMPLETYPE - 69)))) != 0)) {
|
||||
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << PARAM_LIST) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (STRUCT - 69)) | (1L << (UNION - 69)) | (1L << (ENUM - 69)) | (1L << (SIMPLETYPE - 69)))) != 0)) {
|
||||
{
|
||||
setState(217);
|
||||
parameterListDecl();
|
||||
@ -1448,7 +1448,10 @@ public class KickCParser extends Parser {
|
||||
}
|
||||
}
|
||||
public static class TypeSimpleContext extends TypeContext {
|
||||
public TerminalNode SIMPLETYPE() { return getToken(KickCParser.SIMPLETYPE, 0); }
|
||||
public List<TerminalNode> SIMPLETYPE() { return getTokens(KickCParser.SIMPLETYPE); }
|
||||
public TerminalNode SIMPLETYPE(int i) {
|
||||
return getToken(KickCParser.SIMPLETYPE, i);
|
||||
}
|
||||
public TypeSimpleContext(TypeContext ctx) { copyFrom(ctx); }
|
||||
@Override
|
||||
public void enterRule(ParseTreeListener listener) {
|
||||
@ -1500,24 +1503,6 @@ public class KickCParser extends Parser {
|
||||
else return visitor.visitChildren(this);
|
||||
}
|
||||
}
|
||||
public static class TypeSignedSimpleContext extends TypeContext {
|
||||
public TerminalNode SIGNEDNESS() { return getToken(KickCParser.SIGNEDNESS, 0); }
|
||||
public TerminalNode SIMPLETYPE() { return getToken(KickCParser.SIMPLETYPE, 0); }
|
||||
public TypeSignedSimpleContext(TypeContext ctx) { copyFrom(ctx); }
|
||||
@Override
|
||||
public void enterRule(ParseTreeListener listener) {
|
||||
if ( listener instanceof KickCParserListener ) ((KickCParserListener)listener).enterTypeSignedSimple(this);
|
||||
}
|
||||
@Override
|
||||
public void exitRule(ParseTreeListener listener) {
|
||||
if ( listener instanceof KickCParserListener ) ((KickCParserListener)listener).exitTypeSignedSimple(this);
|
||||
}
|
||||
@Override
|
||||
public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
|
||||
if ( visitor instanceof KickCParserVisitor ) return ((KickCParserVisitor<? extends T>)visitor).visitTypeSignedSimple(this);
|
||||
else return visitor.visitChildren(this);
|
||||
}
|
||||
}
|
||||
public static class TypeEnumRefContext extends TypeContext {
|
||||
public EnumRefContext enumRef() {
|
||||
return getRuleContext(EnumRefContext.class,0);
|
||||
@ -1561,6 +1546,7 @@ public class KickCParser extends Parser {
|
||||
TypeContext _localctx = new TypeContext(_ctx, getState());
|
||||
enterRule(_localctx, 24, RULE_type);
|
||||
try {
|
||||
int _alt;
|
||||
setState(242);
|
||||
_errHandler.sync(this);
|
||||
switch ( getInterpreter().adaptivePredict(_input,20,_ctx) ) {
|
||||
@ -1568,63 +1554,63 @@ public class KickCParser extends Parser {
|
||||
_localctx = new TypeSimpleContext(_localctx);
|
||||
enterOuterAlt(_localctx, 1);
|
||||
{
|
||||
setState(232);
|
||||
match(SIMPLETYPE);
|
||||
setState(233);
|
||||
_errHandler.sync(this);
|
||||
_alt = 1;
|
||||
do {
|
||||
switch (_alt) {
|
||||
case 1:
|
||||
{
|
||||
{
|
||||
setState(232);
|
||||
match(SIMPLETYPE);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new NoViableAltException(this);
|
||||
}
|
||||
setState(235);
|
||||
_errHandler.sync(this);
|
||||
_alt = getInterpreter().adaptivePredict(_input,19,_ctx);
|
||||
} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
_localctx = new TypeSignedSimpleContext(_localctx);
|
||||
enterOuterAlt(_localctx, 2);
|
||||
{
|
||||
setState(233);
|
||||
match(SIGNEDNESS);
|
||||
setState(235);
|
||||
_errHandler.sync(this);
|
||||
switch ( getInterpreter().adaptivePredict(_input,19,_ctx) ) {
|
||||
case 1:
|
||||
{
|
||||
setState(234);
|
||||
match(SIMPLETYPE);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
_localctx = new TypeStructDefContext(_localctx);
|
||||
enterOuterAlt(_localctx, 3);
|
||||
enterOuterAlt(_localctx, 2);
|
||||
{
|
||||
setState(237);
|
||||
structDef();
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
case 3:
|
||||
_localctx = new TypeStructRefContext(_localctx);
|
||||
enterOuterAlt(_localctx, 4);
|
||||
enterOuterAlt(_localctx, 3);
|
||||
{
|
||||
setState(238);
|
||||
structRef();
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
case 4:
|
||||
_localctx = new TypeEnumDefContext(_localctx);
|
||||
enterOuterAlt(_localctx, 5);
|
||||
enterOuterAlt(_localctx, 4);
|
||||
{
|
||||
setState(239);
|
||||
enumDef();
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
case 5:
|
||||
_localctx = new TypeEnumRefContext(_localctx);
|
||||
enterOuterAlt(_localctx, 6);
|
||||
enterOuterAlt(_localctx, 5);
|
||||
{
|
||||
setState(240);
|
||||
enumRef();
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
case 6:
|
||||
_localctx = new TypeNamedRefContext(_localctx);
|
||||
enterOuterAlt(_localctx, 7);
|
||||
enterOuterAlt(_localctx, 6);
|
||||
{
|
||||
setState(241);
|
||||
match(TYPEDEFNAME);
|
||||
@ -1771,7 +1757,7 @@ public class KickCParser extends Parser {
|
||||
setState(255);
|
||||
_errHandler.sync(this);
|
||||
_la = _input.LA(1);
|
||||
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (STRUCT - 69)) | (1L << (UNION - 69)) | (1L << (ENUM - 69)) | (1L << (SIGNEDNESS - 69)) | (1L << (SIMPLETYPE - 69)))) != 0) );
|
||||
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (STRUCT - 69)) | (1L << (UNION - 69)) | (1L << (ENUM - 69)) | (1L << (SIMPLETYPE - 69)))) != 0) );
|
||||
setState(257);
|
||||
match(CURLY_END);
|
||||
}
|
||||
@ -2133,7 +2119,7 @@ public class KickCParser extends Parser {
|
||||
setState(293);
|
||||
_errHandler.sync(this);
|
||||
_la = _input.LA(1);
|
||||
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << CURLY_BEGIN) | (1L << PAR_BEGIN) | (1L << SEMICOLON) | (1L << PLUS) | (1L << MINUS) | (1L << ASTERISK) | (1L << INC) | (1L << DEC) | (1L << AND) | (1L << BIT_NOT) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION) | (1L << IF) | (1L << WHILE) | (1L << DO) | (1L << FOR) | (1L << SWITCH) | (1L << RETURN))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (BREAK - 64)) | (1L << (CONTINUE - 64)) | (1L << (ASM - 64)) | (1L << (STRUCT - 64)) | (1L << (UNION - 64)) | (1L << (ENUM - 64)) | (1L << (SIZEOF - 64)) | (1L << (TYPEID - 64)) | (1L << (DEFINED - 64)) | (1L << (KICKASM - 64)) | (1L << (LOGIC_NOT - 64)) | (1L << (SIGNEDNESS - 64)) | (1L << (SIMPLETYPE - 64)) | (1L << (BOOLEAN - 64)) | (1L << (NUMBER - 64)) | (1L << (NAME - 64)) | (1L << (STRING - 64)) | (1L << (CHAR - 64)))) != 0)) {
|
||||
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << CURLY_BEGIN) | (1L << PAR_BEGIN) | (1L << SEMICOLON) | (1L << PLUS) | (1L << MINUS) | (1L << ASTERISK) | (1L << INC) | (1L << DEC) | (1L << AND) | (1L << BIT_NOT) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION) | (1L << IF) | (1L << WHILE) | (1L << DO) | (1L << FOR) | (1L << SWITCH) | (1L << RETURN))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (BREAK - 64)) | (1L << (CONTINUE - 64)) | (1L << (ASM - 64)) | (1L << (STRUCT - 64)) | (1L << (UNION - 64)) | (1L << (ENUM - 64)) | (1L << (SIZEOF - 64)) | (1L << (TYPEID - 64)) | (1L << (DEFINED - 64)) | (1L << (KICKASM - 64)) | (1L << (LOGIC_NOT - 64)) | (1L << (SIMPLETYPE - 64)) | (1L << (BOOLEAN - 64)) | (1L << (NUMBER - 64)) | (1L << (NAME - 64)) | (1L << (STRING - 64)) | (1L << (CHAR - 64)))) != 0)) {
|
||||
{
|
||||
setState(292);
|
||||
stmtSeq();
|
||||
@ -3182,7 +3168,7 @@ public class KickCParser extends Parser {
|
||||
setState(384);
|
||||
_errHandler.sync(this);
|
||||
_la = _input.LA(1);
|
||||
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << CURLY_BEGIN) | (1L << PAR_BEGIN) | (1L << SEMICOLON) | (1L << PLUS) | (1L << MINUS) | (1L << ASTERISK) | (1L << INC) | (1L << DEC) | (1L << AND) | (1L << BIT_NOT) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION) | (1L << IF) | (1L << WHILE) | (1L << DO) | (1L << FOR) | (1L << SWITCH) | (1L << RETURN))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (BREAK - 64)) | (1L << (CONTINUE - 64)) | (1L << (ASM - 64)) | (1L << (STRUCT - 64)) | (1L << (UNION - 64)) | (1L << (ENUM - 64)) | (1L << (SIZEOF - 64)) | (1L << (TYPEID - 64)) | (1L << (DEFINED - 64)) | (1L << (KICKASM - 64)) | (1L << (LOGIC_NOT - 64)) | (1L << (SIGNEDNESS - 64)) | (1L << (SIMPLETYPE - 64)) | (1L << (BOOLEAN - 64)) | (1L << (NUMBER - 64)) | (1L << (NAME - 64)) | (1L << (STRING - 64)) | (1L << (CHAR - 64)))) != 0) );
|
||||
} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << CURLY_BEGIN) | (1L << PAR_BEGIN) | (1L << SEMICOLON) | (1L << PLUS) | (1L << MINUS) | (1L << ASTERISK) | (1L << INC) | (1L << DEC) | (1L << AND) | (1L << BIT_NOT) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION) | (1L << IF) | (1L << WHILE) | (1L << DO) | (1L << FOR) | (1L << SWITCH) | (1L << RETURN))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (BREAK - 64)) | (1L << (CONTINUE - 64)) | (1L << (ASM - 64)) | (1L << (STRUCT - 64)) | (1L << (UNION - 64)) | (1L << (ENUM - 64)) | (1L << (SIZEOF - 64)) | (1L << (TYPEID - 64)) | (1L << (DEFINED - 64)) | (1L << (KICKASM - 64)) | (1L << (LOGIC_NOT - 64)) | (1L << (SIMPLETYPE - 64)) | (1L << (BOOLEAN - 64)) | (1L << (NUMBER - 64)) | (1L << (NAME - 64)) | (1L << (STRING - 64)) | (1L << (CHAR - 64)))) != 0) );
|
||||
}
|
||||
}
|
||||
catch (RecognitionException re) {
|
||||
@ -3565,7 +3551,7 @@ public class KickCParser extends Parser {
|
||||
setState(391);
|
||||
_errHandler.sync(this);
|
||||
_la = _input.LA(1);
|
||||
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << CURLY_BEGIN) | (1L << PAR_BEGIN) | (1L << SEMICOLON) | (1L << PLUS) | (1L << MINUS) | (1L << ASTERISK) | (1L << INC) | (1L << DEC) | (1L << AND) | (1L << BIT_NOT) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION) | (1L << IF) | (1L << WHILE) | (1L << DO) | (1L << FOR) | (1L << SWITCH) | (1L << RETURN))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (BREAK - 64)) | (1L << (CONTINUE - 64)) | (1L << (ASM - 64)) | (1L << (STRUCT - 64)) | (1L << (UNION - 64)) | (1L << (ENUM - 64)) | (1L << (SIZEOF - 64)) | (1L << (TYPEID - 64)) | (1L << (DEFINED - 64)) | (1L << (KICKASM - 64)) | (1L << (LOGIC_NOT - 64)) | (1L << (SIGNEDNESS - 64)) | (1L << (SIMPLETYPE - 64)) | (1L << (BOOLEAN - 64)) | (1L << (NUMBER - 64)) | (1L << (NAME - 64)) | (1L << (STRING - 64)) | (1L << (CHAR - 64)))) != 0)) {
|
||||
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << CURLY_BEGIN) | (1L << PAR_BEGIN) | (1L << SEMICOLON) | (1L << PLUS) | (1L << MINUS) | (1L << ASTERISK) | (1L << INC) | (1L << DEC) | (1L << AND) | (1L << BIT_NOT) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION) | (1L << IF) | (1L << WHILE) | (1L << DO) | (1L << FOR) | (1L << SWITCH) | (1L << RETURN))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (BREAK - 64)) | (1L << (CONTINUE - 64)) | (1L << (ASM - 64)) | (1L << (STRUCT - 64)) | (1L << (UNION - 64)) | (1L << (ENUM - 64)) | (1L << (SIZEOF - 64)) | (1L << (TYPEID - 64)) | (1L << (DEFINED - 64)) | (1L << (KICKASM - 64)) | (1L << (LOGIC_NOT - 64)) | (1L << (SIMPLETYPE - 64)) | (1L << (BOOLEAN - 64)) | (1L << (NUMBER - 64)) | (1L << (NAME - 64)) | (1L << (STRING - 64)) | (1L << (CHAR - 64)))) != 0)) {
|
||||
{
|
||||
setState(390);
|
||||
stmtSeq();
|
||||
@ -3885,7 +3871,7 @@ public class KickCParser extends Parser {
|
||||
setState(481);
|
||||
_errHandler.sync(this);
|
||||
_la = _input.LA(1);
|
||||
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << CURLY_BEGIN) | (1L << PAR_BEGIN) | (1L << SEMICOLON) | (1L << PLUS) | (1L << MINUS) | (1L << ASTERISK) | (1L << INC) | (1L << DEC) | (1L << AND) | (1L << BIT_NOT) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION) | (1L << IF) | (1L << WHILE) | (1L << DO) | (1L << FOR) | (1L << SWITCH) | (1L << RETURN))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (BREAK - 64)) | (1L << (CONTINUE - 64)) | (1L << (ASM - 64)) | (1L << (STRUCT - 64)) | (1L << (UNION - 64)) | (1L << (ENUM - 64)) | (1L << (SIZEOF - 64)) | (1L << (TYPEID - 64)) | (1L << (DEFINED - 64)) | (1L << (KICKASM - 64)) | (1L << (LOGIC_NOT - 64)) | (1L << (SIGNEDNESS - 64)) | (1L << (SIMPLETYPE - 64)) | (1L << (BOOLEAN - 64)) | (1L << (NUMBER - 64)) | (1L << (NAME - 64)) | (1L << (STRING - 64)) | (1L << (CHAR - 64)))) != 0)) {
|
||||
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << CURLY_BEGIN) | (1L << PAR_BEGIN) | (1L << SEMICOLON) | (1L << PLUS) | (1L << MINUS) | (1L << ASTERISK) | (1L << INC) | (1L << DEC) | (1L << AND) | (1L << BIT_NOT) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION) | (1L << IF) | (1L << WHILE) | (1L << DO) | (1L << FOR) | (1L << SWITCH) | (1L << RETURN))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (BREAK - 64)) | (1L << (CONTINUE - 64)) | (1L << (ASM - 64)) | (1L << (STRUCT - 64)) | (1L << (UNION - 64)) | (1L << (ENUM - 64)) | (1L << (SIZEOF - 64)) | (1L << (TYPEID - 64)) | (1L << (DEFINED - 64)) | (1L << (KICKASM - 64)) | (1L << (LOGIC_NOT - 64)) | (1L << (SIMPLETYPE - 64)) | (1L << (BOOLEAN - 64)) | (1L << (NUMBER - 64)) | (1L << (NAME - 64)) | (1L << (STRING - 64)) | (1L << (CHAR - 64)))) != 0)) {
|
||||
{
|
||||
setState(480);
|
||||
stmtSeq();
|
||||
@ -3952,7 +3938,7 @@ public class KickCParser extends Parser {
|
||||
setState(489);
|
||||
_errHandler.sync(this);
|
||||
_la = _input.LA(1);
|
||||
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << CURLY_BEGIN) | (1L << PAR_BEGIN) | (1L << SEMICOLON) | (1L << PLUS) | (1L << MINUS) | (1L << ASTERISK) | (1L << INC) | (1L << DEC) | (1L << AND) | (1L << BIT_NOT) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION) | (1L << IF) | (1L << WHILE) | (1L << DO) | (1L << FOR) | (1L << SWITCH) | (1L << RETURN))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (BREAK - 64)) | (1L << (CONTINUE - 64)) | (1L << (ASM - 64)) | (1L << (STRUCT - 64)) | (1L << (UNION - 64)) | (1L << (ENUM - 64)) | (1L << (SIZEOF - 64)) | (1L << (TYPEID - 64)) | (1L << (DEFINED - 64)) | (1L << (KICKASM - 64)) | (1L << (LOGIC_NOT - 64)) | (1L << (SIGNEDNESS - 64)) | (1L << (SIMPLETYPE - 64)) | (1L << (BOOLEAN - 64)) | (1L << (NUMBER - 64)) | (1L << (NAME - 64)) | (1L << (STRING - 64)) | (1L << (CHAR - 64)))) != 0)) {
|
||||
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << CURLY_BEGIN) | (1L << PAR_BEGIN) | (1L << SEMICOLON) | (1L << PLUS) | (1L << MINUS) | (1L << ASTERISK) | (1L << INC) | (1L << DEC) | (1L << AND) | (1L << BIT_NOT) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION) | (1L << IF) | (1L << WHILE) | (1L << DO) | (1L << FOR) | (1L << SWITCH) | (1L << RETURN))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (BREAK - 64)) | (1L << (CONTINUE - 64)) | (1L << (ASM - 64)) | (1L << (STRUCT - 64)) | (1L << (UNION - 64)) | (1L << (ENUM - 64)) | (1L << (SIZEOF - 64)) | (1L << (TYPEID - 64)) | (1L << (DEFINED - 64)) | (1L << (KICKASM - 64)) | (1L << (LOGIC_NOT - 64)) | (1L << (SIMPLETYPE - 64)) | (1L << (BOOLEAN - 64)) | (1L << (NUMBER - 64)) | (1L << (NAME - 64)) | (1L << (STRING - 64)) | (1L << (CHAR - 64)))) != 0)) {
|
||||
{
|
||||
setState(488);
|
||||
stmtSeq();
|
||||
@ -4194,7 +4180,6 @@ public class KickCParser extends Parser {
|
||||
case STRUCT:
|
||||
case UNION:
|
||||
case ENUM:
|
||||
case SIGNEDNESS:
|
||||
case SIMPLETYPE:
|
||||
_localctx = new ForClassicInitDeclContext(_localctx);
|
||||
enterOuterAlt(_localctx, 1);
|
||||
@ -4202,7 +4187,7 @@ public class KickCParser extends Parser {
|
||||
setState(510);
|
||||
_errHandler.sync(this);
|
||||
_la = _input.LA(1);
|
||||
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (STRUCT - 69)) | (1L << (UNION - 69)) | (1L << (ENUM - 69)) | (1L << (SIGNEDNESS - 69)) | (1L << (SIMPLETYPE - 69)))) != 0)) {
|
||||
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << TYPEDEFNAME) | (1L << CONST) | (1L << EXTERN) | (1L << EXPORT) | (1L << ALIGN) | (1L << INLINE) | (1L << VOLATILE) | (1L << STATIC) | (1L << INTERRUPT) | (1L << REGISTER) | (1L << LOCAL_RESERVE) | (1L << ADDRESS) | (1L << ADDRESS_ZEROPAGE) | (1L << ADDRESS_MAINMEM) | (1L << FORM_SSA) | (1L << FORM_MA) | (1L << INTRINSIC) | (1L << CALLINGCONVENTION))) != 0) || ((((_la - 69)) & ~0x3f) == 0 && ((1L << (_la - 69)) & ((1L << (STRUCT - 69)) | (1L << (UNION - 69)) | (1L << (ENUM - 69)) | (1L << (SIMPLETYPE - 69)))) != 0)) {
|
||||
{
|
||||
setState(509);
|
||||
declVariables();
|
||||
@ -5011,7 +4996,6 @@ public class KickCParser extends Parser {
|
||||
case STRUCT:
|
||||
case UNION:
|
||||
case ENUM:
|
||||
case SIGNEDNESS:
|
||||
case SIMPLETYPE:
|
||||
{
|
||||
setState(536);
|
||||
@ -5064,7 +5048,6 @@ public class KickCParser extends Parser {
|
||||
case STRUCT:
|
||||
case UNION:
|
||||
case ENUM:
|
||||
case SIGNEDNESS:
|
||||
case SIMPLETYPE:
|
||||
{
|
||||
setState(544);
|
||||
@ -5993,7 +5976,7 @@ public class KickCParser extends Parser {
|
||||
setState(696);
|
||||
_errHandler.sync(this);
|
||||
_la = _input.LA(1);
|
||||
while (((((_la - 114)) & ~0x3f) == 0 && ((1L << (_la - 114)) & ((1L << (ASM_BYTE - 114)) | (1L << (ASM_MNEMONIC - 114)) | (1L << (ASM_MULTI_NAME - 114)) | (1L << (ASM_NAME - 114)))) != 0)) {
|
||||
while (((((_la - 113)) & ~0x3f) == 0 && ((1L << (_la - 113)) & ((1L << (ASM_BYTE - 113)) | (1L << (ASM_MNEMONIC - 113)) | (1L << (ASM_MULTI_NAME - 113)) | (1L << (ASM_NAME - 113)))) != 0)) {
|
||||
{
|
||||
{
|
||||
setState(693);
|
||||
@ -6971,7 +6954,7 @@ public class KickCParser extends Parser {
|
||||
_prevctx = _localctx;
|
||||
setState(799);
|
||||
_la = _input.LA(1);
|
||||
if ( !(((((_la - 126)) & ~0x3f) == 0 && ((1L << (_la - 126)) & ((1L << (ASM_PLUS - 126)) | (1L << (ASM_MINUS - 126)) | (1L << (ASM_LESS_THAN - 126)) | (1L << (ASM_GREATER_THAN - 126)))) != 0)) ) {
|
||||
if ( !(((((_la - 125)) & ~0x3f) == 0 && ((1L << (_la - 125)) & ((1L << (ASM_PLUS - 125)) | (1L << (ASM_MINUS - 125)) | (1L << (ASM_LESS_THAN - 125)) | (1L << (ASM_GREATER_THAN - 125)))) != 0)) ) {
|
||||
_errHandler.recoverInline(this);
|
||||
}
|
||||
else {
|
||||
@ -7253,7 +7236,7 @@ public class KickCParser extends Parser {
|
||||
}
|
||||
|
||||
public static final String _serializedATN =
|
||||
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\u009d\u033e\4\2\t"+
|
||||
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\u009c\u033e\4\2\t"+
|
||||
"\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+
|
||||
"\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
|
||||
"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
|
||||
@ -7269,8 +7252,8 @@ public class KickCParser extends Parser {
|
||||
"\3\f\3\f\3\f\5\f\u00c1\n\f\3\f\7\f\u00c4\n\f\f\f\16\f\u00c7\13\f\3\r\3"+
|
||||
"\r\3\r\3\r\3\r\7\r\u00ce\n\r\f\r\16\r\u00d1\13\r\3\r\3\r\3\r\3\r\3\r\5"+
|
||||
"\r\u00d8\n\r\3\r\3\r\3\r\5\r\u00dd\n\r\3\r\3\r\3\r\3\r\5\r\u00e3\n\r\3"+
|
||||
"\r\7\r\u00e6\n\r\f\r\16\r\u00e9\13\r\3\16\3\16\3\16\5\16\u00ee\n\16\3"+
|
||||
"\16\3\16\3\16\3\16\3\16\5\16\u00f5\n\16\3\17\3\17\3\17\3\20\3\20\5\20"+
|
||||
"\r\7\r\u00e6\n\r\f\r\16\r\u00e9\13\r\3\16\6\16\u00ec\n\16\r\16\16\16\u00ed"+
|
||||
"\3\16\3\16\3\16\3\16\3\16\5\16\u00f5\n\16\3\17\3\17\3\17\3\20\3\20\5\20"+
|
||||
"\u00fc\n\20\3\20\3\20\6\20\u0100\n\20\r\20\16\20\u0101\3\20\3\20\3\21"+
|
||||
"\3\21\3\21\3\22\3\22\3\22\3\23\3\23\5\23\u010e\n\23\3\23\3\23\3\23\3\23"+
|
||||
"\3\24\3\24\3\24\3\24\3\24\3\24\7\24\u011a\n\24\f\24\16\24\u011d\13\24"+
|
||||
@ -7313,47 +7296,47 @@ public class KickCParser extends Parser {
|
||||
"/\3/\3/\3/\3/\7/\u0339\n/\f/\16/\u033c\13/\3/\2\t\f\26\30&DF\\\60\2\4"+
|
||||
"\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNP"+
|
||||
"RTVXZ\\\2\r\3\2GH\3\2\27\30\5\2\22\23\31\32SS\3\2\35\36\3\2\24\26\3\2"+
|
||||
"\22\23\3\2\37$\3\2\u0080\u0083\3\2~\177\3\2\u0084\u0085\3\2\u0080\u0081"+
|
||||
"\2\u03b8\2^\3\2\2\2\4a\3\2\2\2\6g\3\2\2\2\bx\3\2\2\2\nz\3\2\2\2\f}\3\2"+
|
||||
"\2\2\16\u0091\3\2\2\2\20\u0093\3\2\2\2\22\u009b\3\2\2\2\24\u00a5\3\2\2"+
|
||||
"\2\26\u00b5\3\2\2\2\30\u00d7\3\2\2\2\32\u00f4\3\2\2\2\34\u00f6\3\2\2\2"+
|
||||
"\36\u00f9\3\2\2\2 \u0105\3\2\2\2\"\u0108\3\2\2\2$\u010b\3\2\2\2&\u0113"+
|
||||
"\3\2\2\2(\u011e\3\2\2\2*\u0123\3\2\2\2,\u012b\3\2\2\2.\u0138\3\2\2\2\60"+
|
||||
"\u013a\3\2\2\2\62\u014e\3\2\2\2\64\u017d\3\2\2\2\66\u0180\3\2\2\28\u01d9"+
|
||||
"\3\2\2\2:\u01dc\3\2\2\2<\u01e7\3\2\2\2>\u01fd\3\2\2\2@\u0203\3\2\2\2B"+
|
||||
"\u0205\3\2\2\2D\u0207\3\2\2\2F\u0251\3\2\2\2H\u0292\3\2\2\2J\u029a\3\2"+
|
||||
"\2\2L\u02a0\3\2\2\2N\u02b5\3\2\2\2P\u02ba\3\2\2\2R\u02c0\3\2\2\2T\u02d2"+
|
||||
"\3\2\2\2V\u02d4\3\2\2\2X\u02de\3\2\2\2Z\u031a\3\2\2\2\\\u032a\3\2\2\2"+
|
||||
"^_\5\6\4\2_`\7\2\2\3`\3\3\2\2\2ab\5P)\2bc\7\2\2\3c\5\3\2\2\2df\5\b\5\2"+
|
||||
"ed\3\2\2\2fi\3\2\2\2ge\3\2\2\2gh\3\2\2\2h\7\3\2\2\2ig\3\2\2\2jk\5\n\6"+
|
||||
"\2kl\7\n\2\2ly\3\2\2\2my\5*\26\2no\5\36\20\2op\7\n\2\2py\3\2\2\2qr\5$"+
|
||||
"\23\2rs\7\n\2\2sy\3\2\2\2ty\5\60\31\2uv\5\20\t\2vw\7\n\2\2wy\3\2\2\2x"+
|
||||
"j\3\2\2\2xm\3\2\2\2xn\3\2\2\2xq\3\2\2\2xt\3\2\2\2xu\3\2\2\2y\t\3\2\2\2"+
|
||||
"z{\5\22\n\2{|\5\f\7\2|\13\3\2\2\2}~\b\7\1\2~\177\5\16\b\2\177\u0085\3"+
|
||||
"\2\2\2\u0080\u0081\f\3\2\2\u0081\u0082\7\f\2\2\u0082\u0084\5\16\b\2\u0083"+
|
||||
"\u0080\3\2\2\2\u0084\u0087\3\2\2\2\u0085\u0083\3\2\2\2\u0085\u0086\3\2"+
|
||||
"\2\2\u0086\r\3\2\2\2\u0087\u0085\3\2\2\2\u0088\u008b\5\30\r\2\u0089\u008a"+
|
||||
"\7\'\2\2\u008a\u008c\5F$\2\u008b\u0089\3\2\2\2\u008b\u008c\3\2\2\2\u008c"+
|
||||
"\u0092\3\2\2\2\u008d\u008e\5\30\r\2\u008e\u008f\7\'\2\2\u008f\u0090\5"+
|
||||
"J&\2\u0090\u0092\3\2\2\2\u0091\u0088\3\2\2\2\u0091\u008d\3\2\2\2\u0092"+
|
||||
"\17\3\2\2\2\u0093\u0094\7)\2\2\u0094\u0095\5\22\n\2\u0095\u0096\b\t\1"+
|
||||
"\2\u0096\u0097\5\30\r\2\u0097\21\3\2\2\2\u0098\u009a\5\64\33\2\u0099\u0098"+
|
||||
"\3\2\2\2\u009a\u009d\3\2\2\2\u009b\u0099\3\2\2\2\u009b\u009c\3\2\2\2\u009c"+
|
||||
"\u009e\3\2\2\2\u009d\u009b\3\2\2\2\u009e\u00a2\5\32\16\2\u009f\u00a1\5"+
|
||||
"\64\33\2\u00a0\u009f\3\2\2\2\u00a1\u00a4\3\2\2\2\u00a2\u00a0\3\2\2\2\u00a2"+
|
||||
"\u00a3\3\2\2\2\u00a3\23\3\2\2\2\u00a4\u00a2\3\2\2\2\u00a5\u00a6\5\32\16"+
|
||||
"\2\u00a6\u00a7\5\26\f\2\u00a7\25\3\2\2\2\u00a8\u00b6\b\f\1\2\u00a9\u00ad"+
|
||||
"\7\24\2\2\u00aa\u00ac\5\64\33\2\u00ab\u00aa\3\2\2\2\u00ac\u00af\3\2\2"+
|
||||
"\2\u00ad\u00ab\3\2\2\2\u00ad\u00ae\3\2\2\2\u00ae\u00b0\3\2\2\2\u00af\u00ad"+
|
||||
"\3\2\2\2\u00b0\u00b6\5\26\f\4\u00b1\u00b2\7\b\2\2\u00b2\u00b3\5\26\f\2"+
|
||||
"\u00b3\u00b4\7\t\2\2\u00b4\u00b6\3\2\2\2\u00b5\u00a8\3\2\2\2\u00b5\u00a9"+
|
||||
"\3\2\2\2\u00b5\u00b1\3\2\2\2\u00b6\u00c5\3\2\2\2\u00b7\u00b8\f\6\2\2\u00b8"+
|
||||
"\22\23\3\2\37$\3\2\177\u0082\3\2}~\3\2\u0083\u0084\3\2\177\u0080\2\u03b7"+
|
||||
"\2^\3\2\2\2\4a\3\2\2\2\6g\3\2\2\2\bx\3\2\2\2\nz\3\2\2\2\f}\3\2\2\2\16"+
|
||||
"\u0091\3\2\2\2\20\u0093\3\2\2\2\22\u009b\3\2\2\2\24\u00a5\3\2\2\2\26\u00b5"+
|
||||
"\3\2\2\2\30\u00d7\3\2\2\2\32\u00f4\3\2\2\2\34\u00f6\3\2\2\2\36\u00f9\3"+
|
||||
"\2\2\2 \u0105\3\2\2\2\"\u0108\3\2\2\2$\u010b\3\2\2\2&\u0113\3\2\2\2(\u011e"+
|
||||
"\3\2\2\2*\u0123\3\2\2\2,\u012b\3\2\2\2.\u0138\3\2\2\2\60\u013a\3\2\2\2"+
|
||||
"\62\u014e\3\2\2\2\64\u017d\3\2\2\2\66\u0180\3\2\2\28\u01d9\3\2\2\2:\u01dc"+
|
||||
"\3\2\2\2<\u01e7\3\2\2\2>\u01fd\3\2\2\2@\u0203\3\2\2\2B\u0205\3\2\2\2D"+
|
||||
"\u0207\3\2\2\2F\u0251\3\2\2\2H\u0292\3\2\2\2J\u029a\3\2\2\2L\u02a0\3\2"+
|
||||
"\2\2N\u02b5\3\2\2\2P\u02ba\3\2\2\2R\u02c0\3\2\2\2T\u02d2\3\2\2\2V\u02d4"+
|
||||
"\3\2\2\2X\u02de\3\2\2\2Z\u031a\3\2\2\2\\\u032a\3\2\2\2^_\5\6\4\2_`\7\2"+
|
||||
"\2\3`\3\3\2\2\2ab\5P)\2bc\7\2\2\3c\5\3\2\2\2df\5\b\5\2ed\3\2\2\2fi\3\2"+
|
||||
"\2\2ge\3\2\2\2gh\3\2\2\2h\7\3\2\2\2ig\3\2\2\2jk\5\n\6\2kl\7\n\2\2ly\3"+
|
||||
"\2\2\2my\5*\26\2no\5\36\20\2op\7\n\2\2py\3\2\2\2qr\5$\23\2rs\7\n\2\2s"+
|
||||
"y\3\2\2\2ty\5\60\31\2uv\5\20\t\2vw\7\n\2\2wy\3\2\2\2xj\3\2\2\2xm\3\2\2"+
|
||||
"\2xn\3\2\2\2xq\3\2\2\2xt\3\2\2\2xu\3\2\2\2y\t\3\2\2\2z{\5\22\n\2{|\5\f"+
|
||||
"\7\2|\13\3\2\2\2}~\b\7\1\2~\177\5\16\b\2\177\u0085\3\2\2\2\u0080\u0081"+
|
||||
"\f\3\2\2\u0081\u0082\7\f\2\2\u0082\u0084\5\16\b\2\u0083\u0080\3\2\2\2"+
|
||||
"\u0084\u0087\3\2\2\2\u0085\u0083\3\2\2\2\u0085\u0086\3\2\2\2\u0086\r\3"+
|
||||
"\2\2\2\u0087\u0085\3\2\2\2\u0088\u008b\5\30\r\2\u0089\u008a\7\'\2\2\u008a"+
|
||||
"\u008c\5F$\2\u008b\u0089\3\2\2\2\u008b\u008c\3\2\2\2\u008c\u0092\3\2\2"+
|
||||
"\2\u008d\u008e\5\30\r\2\u008e\u008f\7\'\2\2\u008f\u0090\5J&\2\u0090\u0092"+
|
||||
"\3\2\2\2\u0091\u0088\3\2\2\2\u0091\u008d\3\2\2\2\u0092\17\3\2\2\2\u0093"+
|
||||
"\u0094\7)\2\2\u0094\u0095\5\22\n\2\u0095\u0096\b\t\1\2\u0096\u0097\5\30"+
|
||||
"\r\2\u0097\21\3\2\2\2\u0098\u009a\5\64\33\2\u0099\u0098\3\2\2\2\u009a"+
|
||||
"\u009d\3\2\2\2\u009b\u0099\3\2\2\2\u009b\u009c\3\2\2\2\u009c\u009e\3\2"+
|
||||
"\2\2\u009d\u009b\3\2\2\2\u009e\u00a2\5\32\16\2\u009f\u00a1\5\64\33\2\u00a0"+
|
||||
"\u009f\3\2\2\2\u00a1\u00a4\3\2\2\2\u00a2\u00a0\3\2\2\2\u00a2\u00a3\3\2"+
|
||||
"\2\2\u00a3\23\3\2\2\2\u00a4\u00a2\3\2\2\2\u00a5\u00a6\5\32\16\2\u00a6"+
|
||||
"\u00a7\5\26\f\2\u00a7\25\3\2\2\2\u00a8\u00b6\b\f\1\2\u00a9\u00ad\7\24"+
|
||||
"\2\2\u00aa\u00ac\5\64\33\2\u00ab\u00aa\3\2\2\2\u00ac\u00af\3\2\2\2\u00ad"+
|
||||
"\u00ab\3\2\2\2\u00ad\u00ae\3\2\2\2\u00ae\u00b0\3\2\2\2\u00af\u00ad\3\2"+
|
||||
"\2\2\u00b0\u00b6\5\26\f\4\u00b1\u00b2\7\b\2\2\u00b2\u00b3\5\26\f\2\u00b3"+
|
||||
"\u00b4\7\t\2\2\u00b4\u00b6\3\2\2\2\u00b5\u00a8\3\2\2\2\u00b5\u00a9\3\2"+
|
||||
"\2\2\u00b5\u00b1\3\2\2\2\u00b6\u00c5\3\2\2\2\u00b7\u00b8\f\6\2\2\u00b8"+
|
||||
"\u00ba\7\b\2\2\u00b9\u00bb\5,\27\2\u00ba\u00b9\3\2\2\2\u00ba\u00bb\3\2"+
|
||||
"\2\2\u00bb\u00bc\3\2\2\2\u00bc\u00c4\7\t\2\2\u00bd\u00be\f\5\2\2\u00be"+
|
||||
"\u00c0\7\6\2\2\u00bf\u00c1\5F$\2\u00c0\u00bf\3\2\2\2\u00c0\u00c1\3\2\2"+
|
||||
"\2\u00c1\u00c2\3\2\2\2\u00c2\u00c4\7\7\2\2\u00c3\u00b7\3\2\2\2\u00c3\u00bd"+
|
||||
"\3\2\2\2\u00c4\u00c7\3\2\2\2\u00c5\u00c3\3\2\2\2\u00c5\u00c6\3\2\2\2\u00c6"+
|
||||
"\27\3\2\2\2\u00c7\u00c5\3\2\2\2\u00c8\u00c9\b\r\1\2\u00c9\u00ca\7n\2\2"+
|
||||
"\27\3\2\2\2\u00c7\u00c5\3\2\2\2\u00c8\u00c9\b\r\1\2\u00c9\u00ca\7m\2\2"+
|
||||
"\u00ca\u00d8\b\r\1\2\u00cb\u00cf\7\24\2\2\u00cc\u00ce\5\64\33\2\u00cd"+
|
||||
"\u00cc\3\2\2\2\u00ce\u00d1\3\2\2\2\u00cf\u00cd\3\2\2\2\u00cf\u00d0\3\2"+
|
||||
"\2\2\u00d0\u00d2\3\2\2\2\u00d1\u00cf\3\2\2\2\u00d2\u00d8\5\30\r\4\u00d3"+
|
||||
@ -7365,219 +7348,218 @@ public class KickCParser extends Parser {
|
||||
"$\2\u00e2\u00e1\3\2\2\2\u00e2\u00e3\3\2\2\2\u00e3\u00e4\3\2\2\2\u00e4"+
|
||||
"\u00e6\7\7\2\2\u00e5\u00d9\3\2\2\2\u00e5\u00df\3\2\2\2\u00e6\u00e9\3\2"+
|
||||
"\2\2\u00e7\u00e5\3\2\2\2\u00e7\u00e8\3\2\2\2\u00e8\31\3\2\2\2\u00e9\u00e7"+
|
||||
"\3\2\2\2\u00ea\u00f5\7U\2\2\u00eb\u00ed\7T\2\2\u00ec\u00ee\7U\2\2\u00ed"+
|
||||
"\u00ec\3\2\2\2\u00ed\u00ee\3\2\2\2\u00ee\u00f5\3\2\2\2\u00ef\u00f5\5\36"+
|
||||
"\3\2\2\2\u00ea\u00ec\7T\2\2\u00eb\u00ea\3\2\2\2\u00ec\u00ed\3\2\2\2\u00ed"+
|
||||
"\u00eb\3\2\2\2\u00ed\u00ee\3\2\2\2\u00ee\u00f5\3\2\2\2\u00ef\u00f5\5\36"+
|
||||
"\20\2\u00f0\u00f5\5\34\17\2\u00f1\u00f5\5$\23\2\u00f2\u00f5\5\"\22\2\u00f3"+
|
||||
"\u00f5\7\3\2\2\u00f4\u00ea\3\2\2\2\u00f4\u00eb\3\2\2\2\u00f4\u00ef\3\2"+
|
||||
"\2\2\u00f4\u00f0\3\2\2\2\u00f4\u00f1\3\2\2\2\u00f4\u00f2\3\2\2\2\u00f4"+
|
||||
"\u00f3\3\2\2\2\u00f5\33\3\2\2\2\u00f6\u00f7\t\2\2\2\u00f7\u00f8\7n\2\2"+
|
||||
"\u00f8\35\3\2\2\2\u00f9\u00fb\t\2\2\2\u00fa\u00fc\7n\2\2\u00fb\u00fa\3"+
|
||||
"\2\2\2\u00fb\u00fc\3\2\2\2\u00fc\u00fd\3\2\2\2\u00fd\u00ff\7\4\2\2\u00fe"+
|
||||
"\u0100\5 \21\2\u00ff\u00fe\3\2\2\2\u0100\u0101\3\2\2\2\u0101\u00ff\3\2"+
|
||||
"\2\2\u0101\u0102\3\2\2\2\u0102\u0103\3\2\2\2\u0103\u0104\7\5\2\2\u0104"+
|
||||
"\37\3\2\2\2\u0105\u0106\5\n\6\2\u0106\u0107\7\n\2\2\u0107!\3\2\2\2\u0108"+
|
||||
"\u0109\7I\2\2\u0109\u010a\7n\2\2\u010a#\3\2\2\2\u010b\u010d\7I\2\2\u010c"+
|
||||
"\u010e\7n\2\2\u010d\u010c\3\2\2\2\u010d\u010e\3\2\2\2\u010e\u010f\3\2"+
|
||||
"\2\2\u010f\u0110\7\4\2\2\u0110\u0111\5&\24\2\u0111\u0112\7\5\2\2\u0112"+
|
||||
"%\3\2\2\2\u0113\u0114\b\24\1\2\u0114\u0115\5(\25\2\u0115\u011b\3\2\2\2"+
|
||||
"\u0116\u0117\f\3\2\2\u0117\u0118\7\f\2\2\u0118\u011a\5(\25\2\u0119\u0116"+
|
||||
"\3\2\2\2\u011a\u011d\3\2\2\2\u011b\u0119\3\2\2\2\u011b\u011c\3\2\2\2\u011c"+
|
||||
"\'\3\2\2\2\u011d\u011b\3\2\2\2\u011e\u0121\7n\2\2\u011f\u0120\7\'\2\2"+
|
||||
"\u0120\u0122\5F$\2\u0121\u011f\3\2\2\2\u0121\u0122\3\2\2\2\u0122)\3\2"+
|
||||
"\2\2\u0123\u0124\5\22\n\2\u0124\u0125\5\30\r\2\u0125\u0127\7\4\2\2\u0126"+
|
||||
"\u0128\5\66\34\2\u0127\u0126\3\2\2\2\u0127\u0128\3\2\2\2\u0128\u0129\3"+
|
||||
"\2\2\2\u0129\u012a\7\5\2\2\u012a+\3\2\2\2\u012b\u0130\5.\30\2\u012c\u012d"+
|
||||
"\7\f\2\2\u012d\u012f\5.\30\2\u012e\u012c\3\2\2\2\u012f\u0132\3\2\2\2\u0130"+
|
||||
"\u012e\3\2\2\2\u0130\u0131\3\2\2\2\u0131-\3\2\2\2\u0132\u0130\3\2\2\2"+
|
||||
"\u0133\u0134\5\22\n\2\u0134\u0135\5\30\r\2\u0135\u0139\3\2\2\2\u0136\u0139"+
|
||||
"\5\24\13\2\u0137\u0139\7\16\2\2\u0138\u0133\3\2\2\2\u0138\u0136\3\2\2"+
|
||||
"\2\u0138\u0137\3\2\2\2\u0139/\3\2\2\2\u013a\u013b\7Z\2\2\u013b\u013c\7"+
|
||||
"n\2\2\u013c\u013d\7\b\2\2\u013d\u0142\5\62\32\2\u013e\u013f\7\f\2\2\u013f"+
|
||||
"\u0141\5\62\32\2\u0140\u013e\3\2\2\2\u0141\u0144\3\2\2\2\u0142\u0140\3"+
|
||||
"\2\2\2\u0142\u0143\3\2\2\2\u0143\u0145\3\2\2\2\u0144\u0142\3\2\2\2\u0145"+
|
||||
"\u0146\7\t\2\2\u0146\61\3\2\2\2\u0147\u014f\7e\2\2\u0148\u0149\7e\2\2"+
|
||||
"\u0149\u014a\7\r\2\2\u014a\u014f\7e\2\2\u014b\u014f\7n\2\2\u014c\u014f"+
|
||||
"\7o\2\2\u014d\u014f\7:\2\2\u014e\u0147\3\2\2\2\u014e\u0148\3\2\2\2\u014e"+
|
||||
"\u014b\3\2\2\2\u014e\u014c\3\2\2\2\u014e\u014d\3\2\2\2\u014f\63\3\2\2"+
|
||||
"\2\u0150\u017e\7*\2\2\u0151\u0152\7-\2\2\u0152\u0153\7\b\2\2\u0153\u0154"+
|
||||
"\7e\2\2\u0154\u017e\7\t\2\2\u0155\u0159\7\62\2\2\u0156\u0157\7\b\2\2\u0157"+
|
||||
"\u0158\7n\2\2\u0158\u015a\7\t\2\2\u0159\u0156\3\2\2\2\u0159\u015a\3\2"+
|
||||
"\2\2\u015a\u017e\3\2\2\2\u015b\u017e\7\65\2\2\u015c\u017e\7\66\2\2\u015d"+
|
||||
"\u015e\7\64\2\2\u015e\u015f\7\b\2\2\u015f\u0160\5F$\2\u0160\u0161\7\t"+
|
||||
"\2\2\u0161\u017e\3\2\2\2\u0162\u017e\7/\2\2\u0163\u017e\7\60\2\2\u0164"+
|
||||
"\u017e\7\67\2\2\u0165\u017e\78\2\2\u0166\u017e\7+\2\2\u0167\u017e\7,\2"+
|
||||
"\2\u0168\u017e\7.\2\2\u0169\u017e\79\2\2\u016a\u016e\7\61\2\2\u016b\u016c"+
|
||||
"\7\b\2\2\u016c\u016d\7n\2\2\u016d\u016f\7\t\2\2\u016e\u016b\3\2\2\2\u016e"+
|
||||
"\u016f\3\2\2\2\u016f\u017e\3\2\2\2\u0170\u0171\7\63\2\2\u0171\u0172\7"+
|
||||
"\b\2\2\u0172\u0177\5\62\32\2\u0173\u0174\7\f\2\2\u0174\u0176\5\62\32\2"+
|
||||
"\u0175\u0173\3\2\2\2\u0176\u0179\3\2\2\2\u0177\u0175\3\2\2\2\u0177\u0178"+
|
||||
"\3\2\2\2\u0178\u017a\3\2\2\2\u0179\u0177\3\2\2\2\u017a\u017b\7\t\2\2\u017b"+
|
||||
"\u017e\3\2\2\2\u017c\u017e\7:\2\2\u017d\u0150\3\2\2\2\u017d\u0151\3\2"+
|
||||
"\2\2\u017d\u0155\3\2\2\2\u017d\u015b\3\2\2\2\u017d\u015c\3\2\2\2\u017d"+
|
||||
"\u015d\3\2\2\2\u017d\u0162\3\2\2\2\u017d\u0163\3\2\2\2\u017d\u0164\3\2"+
|
||||
"\2\2\u017d\u0165\3\2\2\2\u017d\u0166\3\2\2\2\u017d\u0167\3\2\2\2\u017d"+
|
||||
"\u0168\3\2\2\2\u017d\u0169\3\2\2\2\u017d\u016a\3\2\2\2\u017d\u0170\3\2"+
|
||||
"\2\2\u017d\u017c\3\2\2\2\u017e\65\3\2\2\2\u017f\u0181\58\35\2\u0180\u017f"+
|
||||
"\3\2\2\2\u0181\u0182\3\2\2\2\u0182\u0180\3\2\2\2\u0182\u0183\3\2\2\2\u0183"+
|
||||
"\67\3\2\2\2\u0184\u0185\5\n\6\2\u0185\u0186\7\n\2\2\u0186\u01da\3\2\2"+
|
||||
"\2\u0187\u0189\7\4\2\2\u0188\u018a\5\66\34\2\u0189\u0188\3\2\2\2\u0189"+
|
||||
"\u018a\3\2\2\2\u018a\u018b\3\2\2\2\u018b\u01da\7\5\2\2\u018c\u018d\5D"+
|
||||
"#\2\u018d\u018e\7\n\2\2\u018e\u01da\3\2\2\2\u018f\u0190\7;\2\2\u0190\u0191"+
|
||||
"\7\b\2\2\u0191\u0192\5D#\2\u0192\u0193\7\t\2\2\u0193\u0196\58\35\2\u0194"+
|
||||
"\u0195\7<\2\2\u0195\u0197\58\35\2\u0196\u0194\3\2\2\2\u0196\u0197\3\2"+
|
||||
"\2\2\u0197\u01da\3\2\2\2\u0198\u019a\5\64\33\2\u0199\u0198\3\2\2\2\u019a"+
|
||||
"\u019d\3\2\2\2\u019b\u0199\3\2\2\2\u019b\u019c\3\2\2\2\u019c\u019e\3\2"+
|
||||
"\2\2\u019d\u019b\3\2\2\2\u019e\u019f\7=\2\2\u019f\u01a0\7\b\2\2\u01a0"+
|
||||
"\u01a1\5D#\2\u01a1\u01a2\7\t\2\2\u01a2\u01a3\58\35\2\u01a3\u01da\3\2\2"+
|
||||
"\2\u01a4\u01a6\5\64\33\2\u01a5\u01a4\3\2\2\2\u01a6\u01a9\3\2\2\2\u01a7"+
|
||||
"\u01a5\3\2\2\2\u01a7\u01a8\3\2\2\2\u01a8\u01aa\3\2\2\2\u01a9\u01a7\3\2"+
|
||||
"\2\2\u01aa\u01ab\7>\2\2\u01ab\u01ac\58\35\2\u01ac\u01ad\7=\2\2\u01ad\u01ae"+
|
||||
"\7\b\2\2\u01ae\u01af\5D#\2\u01af\u01b0\7\t\2\2\u01b0\u01b1\7\n\2\2\u01b1"+
|
||||
"\u01da\3\2\2\2\u01b2\u01b4\5\64\33\2\u01b3\u01b2\3\2\2\2\u01b4\u01b7\3"+
|
||||
"\2\2\2\u01b5\u01b3\3\2\2\2\u01b5\u01b6\3\2\2\2\u01b6\u01b8\3\2\2\2\u01b7"+
|
||||
"\u01b5\3\2\2\2\u01b8\u01b9\7?\2\2\u01b9\u01ba\7\b\2\2\u01ba\u01bb\5> "+
|
||||
"\2\u01bb\u01bc\7\t\2\2\u01bc\u01bd\58\35\2\u01bd\u01da\3\2\2\2\u01be\u01bf"+
|
||||
"\7@\2\2\u01bf\u01c0\7\b\2\2\u01c0\u01c1\5D#\2\u01c1\u01c2\7\t\2\2\u01c2"+
|
||||
"\u01c3\7\4\2\2\u01c3\u01c4\5:\36\2\u01c4\u01c5\7\5\2\2\u01c5\u01da\3\2"+
|
||||
"\2\2\u01c6\u01c8\7A\2\2\u01c7\u01c9\5D#\2\u01c8\u01c7\3\2\2\2\u01c8\u01c9"+
|
||||
"\3\2\2\2\u01c9\u01ca\3\2\2\2\u01ca\u01da\7\n\2\2\u01cb\u01cc\7B\2\2\u01cc"+
|
||||
"\u01da\7\n\2\2\u01cd\u01ce\7C\2\2\u01ce\u01da\7\n\2\2\u01cf\u01d1\7D\2"+
|
||||
"\2\u01d0\u01d2\5L\'\2\u01d1\u01d0\3\2\2\2\u01d1\u01d2\3\2\2\2\u01d2\u01d3"+
|
||||
"\3\2\2\2\u01d3\u01d4\7\4\2\2\u01d4\u01d5\5P)\2\u01d5\u01d6\7\u0087\2\2"+
|
||||
"\u01d6\u01da\3\2\2\2\u01d7\u01da\5J&\2\u01d8\u01da\7\n\2\2\u01d9\u0184"+
|
||||
"\3\2\2\2\u01d9\u0187\3\2\2\2\u01d9\u018c\3\2\2\2\u01d9\u018f\3\2\2\2\u01d9"+
|
||||
"\u019b\3\2\2\2\u01d9\u01a7\3\2\2\2\u01d9\u01b5\3\2\2\2\u01d9\u01be\3\2"+
|
||||
"\2\2\u01d9\u01c6\3\2\2\2\u01d9\u01cb\3\2\2\2\u01d9\u01cd\3\2\2\2\u01d9"+
|
||||
"\u01cf\3\2\2\2\u01d9\u01d7\3\2\2\2\u01d9\u01d8\3\2\2\2\u01da9\3\2\2\2"+
|
||||
"\u01db\u01dd\5<\37\2\u01dc\u01db\3\2\2\2\u01dd\u01de\3\2\2\2\u01de\u01dc"+
|
||||
"\3\2\2\2\u01de\u01df\3\2\2\2\u01df\u01e5\3\2\2\2\u01e0\u01e1\7E\2\2\u01e1"+
|
||||
"\u01e3\7\13\2\2\u01e2\u01e4\5\66\34\2\u01e3\u01e2\3\2\2\2\u01e3\u01e4"+
|
||||
"\3\2\2\2\u01e4\u01e6\3\2\2\2\u01e5\u01e0\3\2\2\2\u01e5\u01e6\3\2\2\2\u01e6"+
|
||||
";\3\2\2\2\u01e7\u01e8\7F\2\2\u01e8\u01e9\5F$\2\u01e9\u01eb\7\13\2\2\u01ea"+
|
||||
"\u01ec\5\66\34\2\u01eb\u01ea\3\2\2\2\u01eb\u01ec\3\2\2\2\u01ec=\3\2\2"+
|
||||
"\2\u01ed\u01ee\5@!\2\u01ee\u01f0\7\n\2\2\u01ef\u01f1\5B\"\2\u01f0\u01ef"+
|
||||
"\3\2\2\2\u01f0\u01f1\3\2\2\2\u01f1\u01f2\3\2\2\2\u01f2\u01f4\7\n\2\2\u01f3"+
|
||||
"\u01f5\5D#\2\u01f4\u01f3\3\2\2\2\u01f4\u01f5\3\2\2\2\u01f5\u01fe\3\2\2"+
|
||||
"\2\u01f6\u01f7\5\22\n\2\u01f7\u01f8\5\30\r\2\u01f8\u01f9\7\13\2\2\u01f9"+
|
||||
"\u01fa\5F$\2\u01fa\u01fb\7\r\2\2\u01fb\u01fc\5F$\2\u01fc\u01fe\3\2\2\2"+
|
||||
"\u01fd\u01ed\3\2\2\2\u01fd\u01f6\3\2\2\2\u01fe?\3\2\2\2\u01ff\u0201\5"+
|
||||
"\n\6\2\u0200\u01ff\3\2\2\2\u0200\u0201\3\2\2\2\u0201\u0204\3\2\2\2\u0202"+
|
||||
"\u0204\5D#\2\u0203\u0200\3\2\2\2\u0203\u0202\3\2\2\2\u0204A\3\2\2\2\u0205"+
|
||||
"\u0206\5D#\2\u0206C\3\2\2\2\u0207\u0208\b#\1\2\u0208\u0209\5F$\2\u0209"+
|
||||
"\u020f\3\2\2\2\u020a\u020b\f\3\2\2\u020b\u020c\7\f\2\2\u020c\u020e\5F"+
|
||||
"$\2\u020d\u020a\3\2\2\2\u020e\u0211\3\2\2\2\u020f\u020d\3\2\2\2\u020f"+
|
||||
"\u0210\3\2\2\2\u0210E\3\2\2\2\u0211\u020f\3\2\2\2\u0212\u0213\b$\1\2\u0213"+
|
||||
"\u0214\7\b\2\2\u0214\u0215\5D#\2\u0215\u0216\7\t\2\2\u0216\u0252\3\2\2"+
|
||||
"\2\u0217\u0218\7J\2\2\u0218\u021b\7\b\2\2\u0219\u021c\5F$\2\u021a\u021c"+
|
||||
"\5\24\13\2\u021b\u0219\3\2\2\2\u021b\u021a\3\2\2\2\u021c\u021d\3\2\2\2"+
|
||||
"\u021d\u021e\7\t\2\2\u021e\u0252\3\2\2\2\u021f\u0220\7K\2\2\u0220\u0223"+
|
||||
"\7\b\2\2\u0221\u0224\5F$\2\u0222\u0224\5\24\13\2\u0223\u0221\3\2\2\2\u0223"+
|
||||
"\u0222\3\2\2\2\u0224\u0225\3\2\2\2\u0225\u0226\7\t\2\2\u0226\u0252\3\2"+
|
||||
"\2\2\u0227\u0229\7L\2\2\u0228\u022a\7\b\2\2\u0229\u0228\3\2\2\2\u0229"+
|
||||
"\u022a\3\2\2\2\u022a\u022b\3\2\2\2\u022b\u022d\7n\2\2\u022c\u022e\7\t"+
|
||||
"\2\2\u022d\u022c\3\2\2\2\u022d\u022e\3\2\2\2\u022e\u0252\3\2\2\2\u022f"+
|
||||
"\u0230\7\b\2\2\u0230\u0231\5\24\13\2\u0231\u0232\7\t\2\2\u0232\u0233\5"+
|
||||
"F$\31\u0233\u0252\3\2\2\2\u0234\u0235\t\3\2\2\u0235\u0252\5F$\30\u0236"+
|
||||
"\u0237\7\24\2\2\u0237\u0252\5F$\26\u0238\u0239\t\4\2\2\u0239\u0252\5F"+
|
||||
"$\25\u023a\u023b\7\4\2\2\u023b\u0240\5F$\2\u023c\u023d\7\f\2\2\u023d\u023f"+
|
||||
"\5F$\2\u023e\u023c\3\2\2\2\u023f\u0242\3\2\2\2\u0240\u023e\3\2\2\2\u0240"+
|
||||
"\u0241\3\2\2\2\u0241\u0244\3\2\2\2\u0242\u0240\3\2\2\2\u0243\u0245\7\f"+
|
||||
"\2\2\u0244\u0243\3\2\2\2\u0244\u0245\3\2\2\2\u0245\u0246\3\2\2\2\u0246"+
|
||||
"\u0247\7\5\2\2\u0247\u0252\3\2\2\2\u0248\u0252\7n\2\2\u0249\u0252\7e\2"+
|
||||
"\2\u024a\u024c\7o\2\2\u024b\u024a\3\2\2\2\u024c\u024d\3\2\2\2\u024d\u024b"+
|
||||
"\3\2\2\2\u024d\u024e\3\2\2\2\u024e\u0252\3\2\2\2\u024f\u0252\7p\2\2\u0250"+
|
||||
"\u0252\7V\2\2\u0251\u0212\3\2\2\2\u0251\u0217\3\2\2\2\u0251\u021f\3\2"+
|
||||
"\2\2\u0251\u0227\3\2\2\2\u0251\u022f\3\2\2\2\u0251\u0234\3\2\2\2\u0251"+
|
||||
"\u0236\3\2\2\2\u0251\u0238\3\2\2\2\u0251\u023a\3\2\2\2\u0251\u0248\3\2"+
|
||||
"\2\2\u0251\u0249\3\2\2\2\u0251\u024b\3\2\2\2\u0251\u024f\3\2\2\2\u0251"+
|
||||
"\u0250\3\2\2\2\u0252\u028f\3\2\2\2\u0253\u0254\f\24\2\2\u0254\u0255\t"+
|
||||
"\5\2\2\u0255\u028e\5F$\25\u0256\u0257\f\23\2\2\u0257\u0258\t\6\2\2\u0258"+
|
||||
"\u028e\5F$\24\u0259\u025a\f\22\2\2\u025a\u025b\t\7\2\2\u025b\u028e\5F"+
|
||||
"$\23\u025c\u025d\f\21\2\2\u025d\u025e\t\b\2\2\u025e\u028e\5F$\22\u025f"+
|
||||
"\u0260\f\20\2\2\u0260\u0261\7\31\2\2\u0261\u028e\5F$\21\u0262\u0263\f"+
|
||||
"\17\2\2\u0263\u0264\7\33\2\2\u0264\u028e\5F$\20\u0265\u0266\f\16\2\2\u0266"+
|
||||
"\u0267\7\34\2\2\u0267\u028e\5F$\17\u0268\u0269\f\r\2\2\u0269\u026a\7%"+
|
||||
"\2\2\u026a\u028e\5F$\16\u026b\u026c\f\f\2\2\u026c\u026d\7&\2\2\u026d\u028e"+
|
||||
"\5F$\r\u026e\u026f\f\13\2\2\u026f\u0270\7\17\2\2\u0270\u0271\5F$\2\u0271"+
|
||||
"\u0272\7\13\2\2\u0272\u0273\5F$\f\u0273\u028e\3\2\2\2\u0274\u0275\f\n"+
|
||||
"\2\2\u0275\u0276\7\'\2\2\u0276\u028e\5F$\n\u0277\u0278\f\t\2\2\u0278\u0279"+
|
||||
"\7(\2\2\u0279\u028e\5F$\t\u027a\u027b\f \2\2\u027b\u027c\7\20\2\2\u027c"+
|
||||
"\u028e\7n\2\2\u027d\u027e\f\37\2\2\u027e\u027f\7\21\2\2\u027f\u028e\7"+
|
||||
"n\2\2\u0280\u0281\f\36\2\2\u0281\u0283\7\b\2\2\u0282\u0284\5H%\2\u0283"+
|
||||
"\u0282\3\2\2\2\u0283\u0284\3\2\2\2\u0284\u0285\3\2\2\2\u0285\u028e\7\t"+
|
||||
"\2\2\u0286\u0287\f\32\2\2\u0287\u0288\7\6\2\2\u0288\u0289\5D#\2\u0289"+
|
||||
"\u028a\7\7\2\2\u028a\u028e\3\2\2\2\u028b\u028c\f\27\2\2\u028c\u028e\t"+
|
||||
"\3\2\2\u028d\u0253\3\2\2\2\u028d\u0256\3\2\2\2\u028d\u0259\3\2\2\2\u028d"+
|
||||
"\u025c\3\2\2\2\u028d\u025f\3\2\2\2\u028d\u0262\3\2\2\2\u028d\u0265\3\2"+
|
||||
"\2\2\u028d\u0268\3\2\2\2\u028d\u026b\3\2\2\2\u028d\u026e\3\2\2\2\u028d"+
|
||||
"\u0274\3\2\2\2\u028d\u0277\3\2\2\2\u028d\u027a\3\2\2\2\u028d\u027d\3\2"+
|
||||
"\2\2\u028d\u0280\3\2\2\2\u028d\u0286\3\2\2\2\u028d\u028b\3\2\2\2\u028e"+
|
||||
"\u0291\3\2\2\2\u028f\u028d\3\2\2\2\u028f\u0290\3\2\2\2\u0290G\3\2\2\2"+
|
||||
"\u0291\u028f\3\2\2\2\u0292\u0297\5F$\2\u0293\u0294\7\f\2\2\u0294\u0296"+
|
||||
"\5F$\2\u0295\u0293\3\2\2\2\u0296\u0299\3\2\2\2\u0297\u0295\3\2\2\2\u0297"+
|
||||
"\u0298\3\2\2\2\u0298I\3\2\2\2\u0299\u0297\3\2\2\2\u029a\u029c\7M\2\2\u029b"+
|
||||
"\u029d\5L\'\2\u029c\u029b\3\2\2\2\u029c\u029d\3\2\2\2\u029d\u029e\3\2"+
|
||||
"\2\2\u029e\u029f\7W\2\2\u029fK\3\2\2\2\u02a0\u02a1\7\b\2\2\u02a1\u02a6"+
|
||||
"\5N(\2\u02a2\u02a3\7\f\2\2\u02a3\u02a5\5N(\2\u02a4\u02a2\3\2\2\2\u02a5"+
|
||||
"\u02a8\3\2\2\2\u02a6\u02a4\3\2\2\2\u02a6\u02a7\3\2\2\2\u02a7\u02a9\3\2"+
|
||||
"\2\2\u02a8\u02a6\3\2\2\2\u02a9\u02aa\7\t\2\2\u02aaM\3\2\2\2\u02ab\u02ac"+
|
||||
"\7N\2\2\u02ac\u02b6\7o\2\2\u02ad\u02ae\7O\2\2\u02ae\u02b6\7n\2\2\u02af"+
|
||||
"\u02b0\7P\2\2\u02b0\u02b6\7o\2\2\u02b1\u02b2\7Q\2\2\u02b2\u02b6\5F$\2"+
|
||||
"\u02b3\u02b4\7R\2\2\u02b4\u02b6\5F$\2\u02b5\u02ab\3\2\2\2\u02b5\u02ad"+
|
||||
"\3\2\2\2\u02b5\u02af\3\2\2\2\u02b5\u02b1\3\2\2\2\u02b5\u02b3\3\2\2\2\u02b6"+
|
||||
"O\3\2\2\2\u02b7\u02b9\5R*\2\u02b8\u02b7\3\2\2\2\u02b9\u02bc\3\2\2\2\u02ba"+
|
||||
"\u02b8\3\2\2\2\u02ba\u02bb\3\2\2\2\u02bbQ\3\2\2\2\u02bc\u02ba\3\2\2\2"+
|
||||
"\u02bd\u02c1\5T+\2\u02be\u02c1\5V,\2\u02bf\u02c1\5X-\2\u02c0\u02bd\3\2"+
|
||||
"\2\2\u02c0\u02be\3\2\2\2\u02c0\u02bf\3\2\2\2\u02c1S\3\2\2\2\u02c2\u02c3"+
|
||||
"\7\u0094\2\2\u02c3\u02c7\7w\2\2\u02c4\u02c6\7\u0095\2\2\u02c5\u02c4\3"+
|
||||
"\2\2\2\u02c6\u02c9\3\2\2\2\u02c7\u02c5\3\2\2\2\u02c7\u02c8\3\2\2\2\u02c8"+
|
||||
"\u02d3\3\2\2\2\u02c9\u02c7\3\2\2\2\u02ca\u02cb\7\u0093\2\2\u02cb\u02cf"+
|
||||
"\7w\2\2\u02cc\u02ce\7\u0095\2\2\u02cd\u02cc\3\2\2\2\u02ce\u02d1\3\2\2"+
|
||||
"\2\u02cf\u02cd\3\2\2\2\u02cf\u02d0\3\2\2\2\u02d0\u02d3\3\2\2\2\u02d1\u02cf"+
|
||||
"\3\2\2\2\u02d2\u02c2\3\2\2\2\u02d2\u02ca\3\2\2\2\u02d3U\3\2\2\2\u02d4"+
|
||||
"\u02d6\7u\2\2\u02d5\u02d7\5Z.\2\u02d6\u02d5\3\2\2\2\u02d6\u02d7\3\2\2"+
|
||||
"\2\u02d7\u02db\3\2\2\2\u02d8\u02da\7\u0095\2\2\u02d9\u02d8\3\2\2\2\u02da"+
|
||||
"\u02dd\3\2\2\2\u02db\u02d9\3\2\2\2\u02db\u02dc\3\2\2\2\u02dcW\3\2\2\2"+
|
||||
"\u02dd\u02db\3\2\2\2\u02de\u02df\7t\2\2\u02df\u02e4\5\\/\2\u02e0\u02e1"+
|
||||
"\7x\2\2\u02e1\u02e3\5\\/\2\u02e2\u02e0\3\2\2\2\u02e3\u02e6\3\2\2\2\u02e4"+
|
||||
"\u02e2\3\2\2\2\u02e4\u02e5\3\2\2\2\u02e5\u02ea\3\2\2\2\u02e6\u02e4\3\2"+
|
||||
"\2\2\u02e7\u02e9\7\u0095\2\2\u02e8\u02e7\3\2\2\2\u02e9\u02ec\3\2\2\2\u02ea"+
|
||||
"\u02e8\3\2\2\2\u02ea\u02eb\3\2\2\2\u02ebY\3\2\2\2\u02ec\u02ea\3\2\2\2"+
|
||||
"\u02ed\u031b\5\\/\2\u02ee\u02ef\7v\2\2\u02ef\u031b\5\\/\2\u02f0\u02f1"+
|
||||
"\5\\/\2\u02f1\u02f2\7x\2\2\u02f2\u02f3\5\\/\2\u02f3\u031b\3\2\2\2\u02f4"+
|
||||
"\u02f5\7y\2\2\u02f5\u02f6\5\\/\2\u02f6\u02f7\7z\2\2\u02f7\u02f8\7x\2\2"+
|
||||
"\u02f8\u02f9\7\u0094\2\2\u02f9\u031b\3\2\2\2\u02fa\u02fb\7y\2\2\u02fb"+
|
||||
"\u02fc\7y\2\2\u02fc\u02fd\5\\/\2\u02fd\u02fe\7z\2\2\u02fe\u02ff\7z\2\2"+
|
||||
"\u02ff\u0300\7x\2\2\u0300\u0301\7\u0094\2\2\u0301\u031b\3\2\2\2\u0302"+
|
||||
"\u0303\7y\2\2\u0303\u0304\5\\/\2\u0304\u0305\7x\2\2\u0305\u0306\7\u0094"+
|
||||
"\2\2\u0306\u0307\7z\2\2\u0307\u0308\7x\2\2\u0308\u0309\7\u0094\2\2\u0309"+
|
||||
"\u031b\3\2\2\2\u030a\u030b\7y\2\2\u030b\u030c\5\\/\2\u030c\u030d\7x\2"+
|
||||
"\2\u030d\u030e\7\u0094\2\2\u030e\u030f\7z\2\2\u030f\u031b\3\2\2\2\u0310"+
|
||||
"\u0311\7y\2\2\u0311\u0312\5\\/\2\u0312\u0313\7z\2\2\u0313\u031b\3\2\2"+
|
||||
"\2\u0314\u0315\7y\2\2\u0315\u0316\7y\2\2\u0316\u0317\5\\/\2\u0317\u0318"+
|
||||
"\7z\2\2\u0318\u0319\7z\2\2\u0319\u031b\3\2\2\2\u031a\u02ed\3\2\2\2\u031a"+
|
||||
"\u02ee\3\2\2\2\u031a\u02f0\3\2\2\2\u031a\u02f4\3\2\2\2\u031a\u02fa\3\2"+
|
||||
"\2\2\u031a\u0302\3\2\2\2\u031a\u030a\3\2\2\2\u031a\u0310\3\2\2\2\u031a"+
|
||||
"\u0314\3\2\2\2\u031b[\3\2\2\2\u031c\u031d\b/\1\2\u031d\u031e\7{\2\2\u031e"+
|
||||
"\u031f\5\\/\2\u031f\u0320\7|\2\2\u0320\u032b\3\2\2\2\u0321\u0322\t\t\2"+
|
||||
"\2\u0322\u032b\5\\/\n\u0323\u032b\7\u0094\2\2\u0324\u032b\7\u0092\2\2"+
|
||||
"\u0325\u0326\7\u0086\2\2\u0326\u0327\7\u0094\2\2\u0327\u032b\7\u0087\2"+
|
||||
"\2\u0328\u032b\7\u0088\2\2\u0329\u032b\7\u0091\2\2\u032a\u031c\3\2\2\2"+
|
||||
"\u032a\u0321\3\2\2\2\u032a\u0323\3\2\2\2\u032a\u0324\3\2\2\2\u032a\u0325"+
|
||||
"\3\2\2\2\u032a\u0328\3\2\2\2\u032a\u0329\3\2\2\2\u032b\u033a\3\2\2\2\u032c"+
|
||||
"\u032d\f\f\2\2\u032d\u032e\7}\2\2\u032e\u0339\5\\/\r\u032f\u0330\f\13"+
|
||||
"\2\2\u0330\u0331\t\n\2\2\u0331\u0339\5\\/\f\u0332\u0333\f\t\2\2\u0333"+
|
||||
"\u0334\t\13\2\2\u0334\u0339\5\\/\n\u0335\u0336\f\b\2\2\u0336\u0337\t\f"+
|
||||
"\2\2\u0337\u0339\5\\/\t\u0338\u032c\3\2\2\2\u0338\u032f\3\2\2\2\u0338"+
|
||||
"\u0332\3\2\2\2\u0338\u0335\3\2\2\2\u0339\u033c\3\2\2\2\u033a\u0338\3\2"+
|
||||
"\2\2\u033a\u033b\3\2\2\2\u033b]\3\2\2\2\u033c\u033a\3\2\2\2Tgx\u0085\u008b"+
|
||||
"\u0091\u009b\u00a2\u00ad\u00b5\u00ba\u00c0\u00c3\u00c5\u00cf\u00d7\u00dc"+
|
||||
"\u00e2\u00e5\u00e7\u00ed\u00f4\u00fb\u0101\u010d\u011b\u0121\u0127\u0130"+
|
||||
"\u0138\u0142\u014e\u0159\u016e\u0177\u017d\u0182\u0189\u0196\u019b\u01a7"+
|
||||
"\u01b5\u01c8\u01d1\u01d9\u01de\u01e3\u01e5\u01eb\u01f0\u01f4\u01fd\u0200"+
|
||||
"\u0203\u020f\u021b\u0223\u0229\u022d\u0240\u0244\u024d\u0251\u0283\u028d"+
|
||||
"\u028f\u0297\u029c\u02a6\u02b5\u02ba\u02c0\u02c7\u02cf\u02d2\u02d6\u02db"+
|
||||
"\u02e4\u02ea\u031a\u032a\u0338\u033a";
|
||||
"\u00f5\7\3\2\2\u00f4\u00eb\3\2\2\2\u00f4\u00ef\3\2\2\2\u00f4\u00f0\3\2"+
|
||||
"\2\2\u00f4\u00f1\3\2\2\2\u00f4\u00f2\3\2\2\2\u00f4\u00f3\3\2\2\2\u00f5"+
|
||||
"\33\3\2\2\2\u00f6\u00f7\t\2\2\2\u00f7\u00f8\7m\2\2\u00f8\35\3\2\2\2\u00f9"+
|
||||
"\u00fb\t\2\2\2\u00fa\u00fc\7m\2\2\u00fb\u00fa\3\2\2\2\u00fb\u00fc\3\2"+
|
||||
"\2\2\u00fc\u00fd\3\2\2\2\u00fd\u00ff\7\4\2\2\u00fe\u0100\5 \21\2\u00ff"+
|
||||
"\u00fe\3\2\2\2\u0100\u0101\3\2\2\2\u0101\u00ff\3\2\2\2\u0101\u0102\3\2"+
|
||||
"\2\2\u0102\u0103\3\2\2\2\u0103\u0104\7\5\2\2\u0104\37\3\2\2\2\u0105\u0106"+
|
||||
"\5\n\6\2\u0106\u0107\7\n\2\2\u0107!\3\2\2\2\u0108\u0109\7I\2\2\u0109\u010a"+
|
||||
"\7m\2\2\u010a#\3\2\2\2\u010b\u010d\7I\2\2\u010c\u010e\7m\2\2\u010d\u010c"+
|
||||
"\3\2\2\2\u010d\u010e\3\2\2\2\u010e\u010f\3\2\2\2\u010f\u0110\7\4\2\2\u0110"+
|
||||
"\u0111\5&\24\2\u0111\u0112\7\5\2\2\u0112%\3\2\2\2\u0113\u0114\b\24\1\2"+
|
||||
"\u0114\u0115\5(\25\2\u0115\u011b\3\2\2\2\u0116\u0117\f\3\2\2\u0117\u0118"+
|
||||
"\7\f\2\2\u0118\u011a\5(\25\2\u0119\u0116\3\2\2\2\u011a\u011d\3\2\2\2\u011b"+
|
||||
"\u0119\3\2\2\2\u011b\u011c\3\2\2\2\u011c\'\3\2\2\2\u011d\u011b\3\2\2\2"+
|
||||
"\u011e\u0121\7m\2\2\u011f\u0120\7\'\2\2\u0120\u0122\5F$\2\u0121\u011f"+
|
||||
"\3\2\2\2\u0121\u0122\3\2\2\2\u0122)\3\2\2\2\u0123\u0124\5\22\n\2\u0124"+
|
||||
"\u0125\5\30\r\2\u0125\u0127\7\4\2\2\u0126\u0128\5\66\34\2\u0127\u0126"+
|
||||
"\3\2\2\2\u0127\u0128\3\2\2\2\u0128\u0129\3\2\2\2\u0129\u012a\7\5\2\2\u012a"+
|
||||
"+\3\2\2\2\u012b\u0130\5.\30\2\u012c\u012d\7\f\2\2\u012d\u012f\5.\30\2"+
|
||||
"\u012e\u012c\3\2\2\2\u012f\u0132\3\2\2\2\u0130\u012e\3\2\2\2\u0130\u0131"+
|
||||
"\3\2\2\2\u0131-\3\2\2\2\u0132\u0130\3\2\2\2\u0133\u0134\5\22\n\2\u0134"+
|
||||
"\u0135\5\30\r\2\u0135\u0139\3\2\2\2\u0136\u0139\5\24\13\2\u0137\u0139"+
|
||||
"\7\16\2\2\u0138\u0133\3\2\2\2\u0138\u0136\3\2\2\2\u0138\u0137\3\2\2\2"+
|
||||
"\u0139/\3\2\2\2\u013a\u013b\7Y\2\2\u013b\u013c\7m\2\2\u013c\u013d\7\b"+
|
||||
"\2\2\u013d\u0142\5\62\32\2\u013e\u013f\7\f\2\2\u013f\u0141\5\62\32\2\u0140"+
|
||||
"\u013e\3\2\2\2\u0141\u0144\3\2\2\2\u0142\u0140\3\2\2\2\u0142\u0143\3\2"+
|
||||
"\2\2\u0143\u0145\3\2\2\2\u0144\u0142\3\2\2\2\u0145\u0146\7\t\2\2\u0146"+
|
||||
"\61\3\2\2\2\u0147\u014f\7d\2\2\u0148\u0149\7d\2\2\u0149\u014a\7\r\2\2"+
|
||||
"\u014a\u014f\7d\2\2\u014b\u014f\7m\2\2\u014c\u014f\7n\2\2\u014d\u014f"+
|
||||
"\7:\2\2\u014e\u0147\3\2\2\2\u014e\u0148\3\2\2\2\u014e\u014b\3\2\2\2\u014e"+
|
||||
"\u014c\3\2\2\2\u014e\u014d\3\2\2\2\u014f\63\3\2\2\2\u0150\u017e\7*\2\2"+
|
||||
"\u0151\u0152\7-\2\2\u0152\u0153\7\b\2\2\u0153\u0154\7d\2\2\u0154\u017e"+
|
||||
"\7\t\2\2\u0155\u0159\7\62\2\2\u0156\u0157\7\b\2\2\u0157\u0158\7m\2\2\u0158"+
|
||||
"\u015a\7\t\2\2\u0159\u0156\3\2\2\2\u0159\u015a\3\2\2\2\u015a\u017e\3\2"+
|
||||
"\2\2\u015b\u017e\7\65\2\2\u015c\u017e\7\66\2\2\u015d\u015e\7\64\2\2\u015e"+
|
||||
"\u015f\7\b\2\2\u015f\u0160\5F$\2\u0160\u0161\7\t\2\2\u0161\u017e\3\2\2"+
|
||||
"\2\u0162\u017e\7/\2\2\u0163\u017e\7\60\2\2\u0164\u017e\7\67\2\2\u0165"+
|
||||
"\u017e\78\2\2\u0166\u017e\7+\2\2\u0167\u017e\7,\2\2\u0168\u017e\7.\2\2"+
|
||||
"\u0169\u017e\79\2\2\u016a\u016e\7\61\2\2\u016b\u016c\7\b\2\2\u016c\u016d"+
|
||||
"\7m\2\2\u016d\u016f\7\t\2\2\u016e\u016b\3\2\2\2\u016e\u016f\3\2\2\2\u016f"+
|
||||
"\u017e\3\2\2\2\u0170\u0171\7\63\2\2\u0171\u0172\7\b\2\2\u0172\u0177\5"+
|
||||
"\62\32\2\u0173\u0174\7\f\2\2\u0174\u0176\5\62\32\2\u0175\u0173\3\2\2\2"+
|
||||
"\u0176\u0179\3\2\2\2\u0177\u0175\3\2\2\2\u0177\u0178\3\2\2\2\u0178\u017a"+
|
||||
"\3\2\2\2\u0179\u0177\3\2\2\2\u017a\u017b\7\t\2\2\u017b\u017e\3\2\2\2\u017c"+
|
||||
"\u017e\7:\2\2\u017d\u0150\3\2\2\2\u017d\u0151\3\2\2\2\u017d\u0155\3\2"+
|
||||
"\2\2\u017d\u015b\3\2\2\2\u017d\u015c\3\2\2\2\u017d\u015d\3\2\2\2\u017d"+
|
||||
"\u0162\3\2\2\2\u017d\u0163\3\2\2\2\u017d\u0164\3\2\2\2\u017d\u0165\3\2"+
|
||||
"\2\2\u017d\u0166\3\2\2\2\u017d\u0167\3\2\2\2\u017d\u0168\3\2\2\2\u017d"+
|
||||
"\u0169\3\2\2\2\u017d\u016a\3\2\2\2\u017d\u0170\3\2\2\2\u017d\u017c\3\2"+
|
||||
"\2\2\u017e\65\3\2\2\2\u017f\u0181\58\35\2\u0180\u017f\3\2\2\2\u0181\u0182"+
|
||||
"\3\2\2\2\u0182\u0180\3\2\2\2\u0182\u0183\3\2\2\2\u0183\67\3\2\2\2\u0184"+
|
||||
"\u0185\5\n\6\2\u0185\u0186\7\n\2\2\u0186\u01da\3\2\2\2\u0187\u0189\7\4"+
|
||||
"\2\2\u0188\u018a\5\66\34\2\u0189\u0188\3\2\2\2\u0189\u018a\3\2\2\2\u018a"+
|
||||
"\u018b\3\2\2\2\u018b\u01da\7\5\2\2\u018c\u018d\5D#\2\u018d\u018e\7\n\2"+
|
||||
"\2\u018e\u01da\3\2\2\2\u018f\u0190\7;\2\2\u0190\u0191\7\b\2\2\u0191\u0192"+
|
||||
"\5D#\2\u0192\u0193\7\t\2\2\u0193\u0196\58\35\2\u0194\u0195\7<\2\2\u0195"+
|
||||
"\u0197\58\35\2\u0196\u0194\3\2\2\2\u0196\u0197\3\2\2\2\u0197\u01da\3\2"+
|
||||
"\2\2\u0198\u019a\5\64\33\2\u0199\u0198\3\2\2\2\u019a\u019d\3\2\2\2\u019b"+
|
||||
"\u0199\3\2\2\2\u019b\u019c\3\2\2\2\u019c\u019e\3\2\2\2\u019d\u019b\3\2"+
|
||||
"\2\2\u019e\u019f\7=\2\2\u019f\u01a0\7\b\2\2\u01a0\u01a1\5D#\2\u01a1\u01a2"+
|
||||
"\7\t\2\2\u01a2\u01a3\58\35\2\u01a3\u01da\3\2\2\2\u01a4\u01a6\5\64\33\2"+
|
||||
"\u01a5\u01a4\3\2\2\2\u01a6\u01a9\3\2\2\2\u01a7\u01a5\3\2\2\2\u01a7\u01a8"+
|
||||
"\3\2\2\2\u01a8\u01aa\3\2\2\2\u01a9\u01a7\3\2\2\2\u01aa\u01ab\7>\2\2\u01ab"+
|
||||
"\u01ac\58\35\2\u01ac\u01ad\7=\2\2\u01ad\u01ae\7\b\2\2\u01ae\u01af\5D#"+
|
||||
"\2\u01af\u01b0\7\t\2\2\u01b0\u01b1\7\n\2\2\u01b1\u01da\3\2\2\2\u01b2\u01b4"+
|
||||
"\5\64\33\2\u01b3\u01b2\3\2\2\2\u01b4\u01b7\3\2\2\2\u01b5\u01b3\3\2\2\2"+
|
||||
"\u01b5\u01b6\3\2\2\2\u01b6\u01b8\3\2\2\2\u01b7\u01b5\3\2\2\2\u01b8\u01b9"+
|
||||
"\7?\2\2\u01b9\u01ba\7\b\2\2\u01ba\u01bb\5> \2\u01bb\u01bc\7\t\2\2\u01bc"+
|
||||
"\u01bd\58\35\2\u01bd\u01da\3\2\2\2\u01be\u01bf\7@\2\2\u01bf\u01c0\7\b"+
|
||||
"\2\2\u01c0\u01c1\5D#\2\u01c1\u01c2\7\t\2\2\u01c2\u01c3\7\4\2\2\u01c3\u01c4"+
|
||||
"\5:\36\2\u01c4\u01c5\7\5\2\2\u01c5\u01da\3\2\2\2\u01c6\u01c8\7A\2\2\u01c7"+
|
||||
"\u01c9\5D#\2\u01c8\u01c7\3\2\2\2\u01c8\u01c9\3\2\2\2\u01c9\u01ca\3\2\2"+
|
||||
"\2\u01ca\u01da\7\n\2\2\u01cb\u01cc\7B\2\2\u01cc\u01da\7\n\2\2\u01cd\u01ce"+
|
||||
"\7C\2\2\u01ce\u01da\7\n\2\2\u01cf\u01d1\7D\2\2\u01d0\u01d2\5L\'\2\u01d1"+
|
||||
"\u01d0\3\2\2\2\u01d1\u01d2\3\2\2\2\u01d2\u01d3\3\2\2\2\u01d3\u01d4\7\4"+
|
||||
"\2\2\u01d4\u01d5\5P)\2\u01d5\u01d6\7\u0086\2\2\u01d6\u01da\3\2\2\2\u01d7"+
|
||||
"\u01da\5J&\2\u01d8\u01da\7\n\2\2\u01d9\u0184\3\2\2\2\u01d9\u0187\3\2\2"+
|
||||
"\2\u01d9\u018c\3\2\2\2\u01d9\u018f\3\2\2\2\u01d9\u019b\3\2\2\2\u01d9\u01a7"+
|
||||
"\3\2\2\2\u01d9\u01b5\3\2\2\2\u01d9\u01be\3\2\2\2\u01d9\u01c6\3\2\2\2\u01d9"+
|
||||
"\u01cb\3\2\2\2\u01d9\u01cd\3\2\2\2\u01d9\u01cf\3\2\2\2\u01d9\u01d7\3\2"+
|
||||
"\2\2\u01d9\u01d8\3\2\2\2\u01da9\3\2\2\2\u01db\u01dd\5<\37\2\u01dc\u01db"+
|
||||
"\3\2\2\2\u01dd\u01de\3\2\2\2\u01de\u01dc\3\2\2\2\u01de\u01df\3\2\2\2\u01df"+
|
||||
"\u01e5\3\2\2\2\u01e0\u01e1\7E\2\2\u01e1\u01e3\7\13\2\2\u01e2\u01e4\5\66"+
|
||||
"\34\2\u01e3\u01e2\3\2\2\2\u01e3\u01e4\3\2\2\2\u01e4\u01e6\3\2\2\2\u01e5"+
|
||||
"\u01e0\3\2\2\2\u01e5\u01e6\3\2\2\2\u01e6;\3\2\2\2\u01e7\u01e8\7F\2\2\u01e8"+
|
||||
"\u01e9\5F$\2\u01e9\u01eb\7\13\2\2\u01ea\u01ec\5\66\34\2\u01eb\u01ea\3"+
|
||||
"\2\2\2\u01eb\u01ec\3\2\2\2\u01ec=\3\2\2\2\u01ed\u01ee\5@!\2\u01ee\u01f0"+
|
||||
"\7\n\2\2\u01ef\u01f1\5B\"\2\u01f0\u01ef\3\2\2\2\u01f0\u01f1\3\2\2\2\u01f1"+
|
||||
"\u01f2\3\2\2\2\u01f2\u01f4\7\n\2\2\u01f3\u01f5\5D#\2\u01f4\u01f3\3\2\2"+
|
||||
"\2\u01f4\u01f5\3\2\2\2\u01f5\u01fe\3\2\2\2\u01f6\u01f7\5\22\n\2\u01f7"+
|
||||
"\u01f8\5\30\r\2\u01f8\u01f9\7\13\2\2\u01f9\u01fa\5F$\2\u01fa\u01fb\7\r"+
|
||||
"\2\2\u01fb\u01fc\5F$\2\u01fc\u01fe\3\2\2\2\u01fd\u01ed\3\2\2\2\u01fd\u01f6"+
|
||||
"\3\2\2\2\u01fe?\3\2\2\2\u01ff\u0201\5\n\6\2\u0200\u01ff\3\2\2\2\u0200"+
|
||||
"\u0201\3\2\2\2\u0201\u0204\3\2\2\2\u0202\u0204\5D#\2\u0203\u0200\3\2\2"+
|
||||
"\2\u0203\u0202\3\2\2\2\u0204A\3\2\2\2\u0205\u0206\5D#\2\u0206C\3\2\2\2"+
|
||||
"\u0207\u0208\b#\1\2\u0208\u0209\5F$\2\u0209\u020f\3\2\2\2\u020a\u020b"+
|
||||
"\f\3\2\2\u020b\u020c\7\f\2\2\u020c\u020e\5F$\2\u020d\u020a\3\2\2\2\u020e"+
|
||||
"\u0211\3\2\2\2\u020f\u020d\3\2\2\2\u020f\u0210\3\2\2\2\u0210E\3\2\2\2"+
|
||||
"\u0211\u020f\3\2\2\2\u0212\u0213\b$\1\2\u0213\u0214\7\b\2\2\u0214\u0215"+
|
||||
"\5D#\2\u0215\u0216\7\t\2\2\u0216\u0252\3\2\2\2\u0217\u0218\7J\2\2\u0218"+
|
||||
"\u021b\7\b\2\2\u0219\u021c\5F$\2\u021a\u021c\5\24\13\2\u021b\u0219\3\2"+
|
||||
"\2\2\u021b\u021a\3\2\2\2\u021c\u021d\3\2\2\2\u021d\u021e\7\t\2\2\u021e"+
|
||||
"\u0252\3\2\2\2\u021f\u0220\7K\2\2\u0220\u0223\7\b\2\2\u0221\u0224\5F$"+
|
||||
"\2\u0222\u0224\5\24\13\2\u0223\u0221\3\2\2\2\u0223\u0222\3\2\2\2\u0224"+
|
||||
"\u0225\3\2\2\2\u0225\u0226\7\t\2\2\u0226\u0252\3\2\2\2\u0227\u0229\7L"+
|
||||
"\2\2\u0228\u022a\7\b\2\2\u0229\u0228\3\2\2\2\u0229\u022a\3\2\2\2\u022a"+
|
||||
"\u022b\3\2\2\2\u022b\u022d\7m\2\2\u022c\u022e\7\t\2\2\u022d\u022c\3\2"+
|
||||
"\2\2\u022d\u022e\3\2\2\2\u022e\u0252\3\2\2\2\u022f\u0230\7\b\2\2\u0230"+
|
||||
"\u0231\5\24\13\2\u0231\u0232\7\t\2\2\u0232\u0233\5F$\31\u0233\u0252\3"+
|
||||
"\2\2\2\u0234\u0235\t\3\2\2\u0235\u0252\5F$\30\u0236\u0237\7\24\2\2\u0237"+
|
||||
"\u0252\5F$\26\u0238\u0239\t\4\2\2\u0239\u0252\5F$\25\u023a\u023b\7\4\2"+
|
||||
"\2\u023b\u0240\5F$\2\u023c\u023d\7\f\2\2\u023d\u023f\5F$\2\u023e\u023c"+
|
||||
"\3\2\2\2\u023f\u0242\3\2\2\2\u0240\u023e\3\2\2\2\u0240\u0241\3\2\2\2\u0241"+
|
||||
"\u0244\3\2\2\2\u0242\u0240\3\2\2\2\u0243\u0245\7\f\2\2\u0244\u0243\3\2"+
|
||||
"\2\2\u0244\u0245\3\2\2\2\u0245\u0246\3\2\2\2\u0246\u0247\7\5\2\2\u0247"+
|
||||
"\u0252\3\2\2\2\u0248\u0252\7m\2\2\u0249\u0252\7d\2\2\u024a\u024c\7n\2"+
|
||||
"\2\u024b\u024a\3\2\2\2\u024c\u024d\3\2\2\2\u024d\u024b\3\2\2\2\u024d\u024e"+
|
||||
"\3\2\2\2\u024e\u0252\3\2\2\2\u024f\u0252\7o\2\2\u0250\u0252\7U\2\2\u0251"+
|
||||
"\u0212\3\2\2\2\u0251\u0217\3\2\2\2\u0251\u021f\3\2\2\2\u0251\u0227\3\2"+
|
||||
"\2\2\u0251\u022f\3\2\2\2\u0251\u0234\3\2\2\2\u0251\u0236\3\2\2\2\u0251"+
|
||||
"\u0238\3\2\2\2\u0251\u023a\3\2\2\2\u0251\u0248\3\2\2\2\u0251\u0249\3\2"+
|
||||
"\2\2\u0251\u024b\3\2\2\2\u0251\u024f\3\2\2\2\u0251\u0250\3\2\2\2\u0252"+
|
||||
"\u028f\3\2\2\2\u0253\u0254\f\24\2\2\u0254\u0255\t\5\2\2\u0255\u028e\5"+
|
||||
"F$\25\u0256\u0257\f\23\2\2\u0257\u0258\t\6\2\2\u0258\u028e\5F$\24\u0259"+
|
||||
"\u025a\f\22\2\2\u025a\u025b\t\7\2\2\u025b\u028e\5F$\23\u025c\u025d\f\21"+
|
||||
"\2\2\u025d\u025e\t\b\2\2\u025e\u028e\5F$\22\u025f\u0260\f\20\2\2\u0260"+
|
||||
"\u0261\7\31\2\2\u0261\u028e\5F$\21\u0262\u0263\f\17\2\2\u0263\u0264\7"+
|
||||
"\33\2\2\u0264\u028e\5F$\20\u0265\u0266\f\16\2\2\u0266\u0267\7\34\2\2\u0267"+
|
||||
"\u028e\5F$\17\u0268\u0269\f\r\2\2\u0269\u026a\7%\2\2\u026a\u028e\5F$\16"+
|
||||
"\u026b\u026c\f\f\2\2\u026c\u026d\7&\2\2\u026d\u028e\5F$\r\u026e\u026f"+
|
||||
"\f\13\2\2\u026f\u0270\7\17\2\2\u0270\u0271\5F$\2\u0271\u0272\7\13\2\2"+
|
||||
"\u0272\u0273\5F$\f\u0273\u028e\3\2\2\2\u0274\u0275\f\n\2\2\u0275\u0276"+
|
||||
"\7\'\2\2\u0276\u028e\5F$\n\u0277\u0278\f\t\2\2\u0278\u0279\7(\2\2\u0279"+
|
||||
"\u028e\5F$\t\u027a\u027b\f \2\2\u027b\u027c\7\20\2\2\u027c\u028e\7m\2"+
|
||||
"\2\u027d\u027e\f\37\2\2\u027e\u027f\7\21\2\2\u027f\u028e\7m\2\2\u0280"+
|
||||
"\u0281\f\36\2\2\u0281\u0283\7\b\2\2\u0282\u0284\5H%\2\u0283\u0282\3\2"+
|
||||
"\2\2\u0283\u0284\3\2\2\2\u0284\u0285\3\2\2\2\u0285\u028e\7\t\2\2\u0286"+
|
||||
"\u0287\f\32\2\2\u0287\u0288\7\6\2\2\u0288\u0289\5D#\2\u0289\u028a\7\7"+
|
||||
"\2\2\u028a\u028e\3\2\2\2\u028b\u028c\f\27\2\2\u028c\u028e\t\3\2\2\u028d"+
|
||||
"\u0253\3\2\2\2\u028d\u0256\3\2\2\2\u028d\u0259\3\2\2\2\u028d\u025c\3\2"+
|
||||
"\2\2\u028d\u025f\3\2\2\2\u028d\u0262\3\2\2\2\u028d\u0265\3\2\2\2\u028d"+
|
||||
"\u0268\3\2\2\2\u028d\u026b\3\2\2\2\u028d\u026e\3\2\2\2\u028d\u0274\3\2"+
|
||||
"\2\2\u028d\u0277\3\2\2\2\u028d\u027a\3\2\2\2\u028d\u027d\3\2\2\2\u028d"+
|
||||
"\u0280\3\2\2\2\u028d\u0286\3\2\2\2\u028d\u028b\3\2\2\2\u028e\u0291\3\2"+
|
||||
"\2\2\u028f\u028d\3\2\2\2\u028f\u0290\3\2\2\2\u0290G\3\2\2\2\u0291\u028f"+
|
||||
"\3\2\2\2\u0292\u0297\5F$\2\u0293\u0294\7\f\2\2\u0294\u0296\5F$\2\u0295"+
|
||||
"\u0293\3\2\2\2\u0296\u0299\3\2\2\2\u0297\u0295\3\2\2\2\u0297\u0298\3\2"+
|
||||
"\2\2\u0298I\3\2\2\2\u0299\u0297\3\2\2\2\u029a\u029c\7M\2\2\u029b\u029d"+
|
||||
"\5L\'\2\u029c\u029b\3\2\2\2\u029c\u029d\3\2\2\2\u029d\u029e\3\2\2\2\u029e"+
|
||||
"\u029f\7V\2\2\u029fK\3\2\2\2\u02a0\u02a1\7\b\2\2\u02a1\u02a6\5N(\2\u02a2"+
|
||||
"\u02a3\7\f\2\2\u02a3\u02a5\5N(\2\u02a4\u02a2\3\2\2\2\u02a5\u02a8\3\2\2"+
|
||||
"\2\u02a6\u02a4\3\2\2\2\u02a6\u02a7\3\2\2\2\u02a7\u02a9\3\2\2\2\u02a8\u02a6"+
|
||||
"\3\2\2\2\u02a9\u02aa\7\t\2\2\u02aaM\3\2\2\2\u02ab\u02ac\7N\2\2\u02ac\u02b6"+
|
||||
"\7n\2\2\u02ad\u02ae\7O\2\2\u02ae\u02b6\7m\2\2\u02af\u02b0\7P\2\2\u02b0"+
|
||||
"\u02b6\7n\2\2\u02b1\u02b2\7Q\2\2\u02b2\u02b6\5F$\2\u02b3\u02b4\7R\2\2"+
|
||||
"\u02b4\u02b6\5F$\2\u02b5\u02ab\3\2\2\2\u02b5\u02ad\3\2\2\2\u02b5\u02af"+
|
||||
"\3\2\2\2\u02b5\u02b1\3\2\2\2\u02b5\u02b3\3\2\2\2\u02b6O\3\2\2\2\u02b7"+
|
||||
"\u02b9\5R*\2\u02b8\u02b7\3\2\2\2\u02b9\u02bc\3\2\2\2\u02ba\u02b8\3\2\2"+
|
||||
"\2\u02ba\u02bb\3\2\2\2\u02bbQ\3\2\2\2\u02bc\u02ba\3\2\2\2\u02bd\u02c1"+
|
||||
"\5T+\2\u02be\u02c1\5V,\2\u02bf\u02c1\5X-\2\u02c0\u02bd\3\2\2\2\u02c0\u02be"+
|
||||
"\3\2\2\2\u02c0\u02bf\3\2\2\2\u02c1S\3\2\2\2\u02c2\u02c3\7\u0093\2\2\u02c3"+
|
||||
"\u02c7\7v\2\2\u02c4\u02c6\7\u0094\2\2\u02c5\u02c4\3\2\2\2\u02c6\u02c9"+
|
||||
"\3\2\2\2\u02c7\u02c5\3\2\2\2\u02c7\u02c8\3\2\2\2\u02c8\u02d3\3\2\2\2\u02c9"+
|
||||
"\u02c7\3\2\2\2\u02ca\u02cb\7\u0092\2\2\u02cb\u02cf\7v\2\2\u02cc\u02ce"+
|
||||
"\7\u0094\2\2\u02cd\u02cc\3\2\2\2\u02ce\u02d1\3\2\2\2\u02cf\u02cd\3\2\2"+
|
||||
"\2\u02cf\u02d0\3\2\2\2\u02d0\u02d3\3\2\2\2\u02d1\u02cf\3\2\2\2\u02d2\u02c2"+
|
||||
"\3\2\2\2\u02d2\u02ca\3\2\2\2\u02d3U\3\2\2\2\u02d4\u02d6\7t\2\2\u02d5\u02d7"+
|
||||
"\5Z.\2\u02d6\u02d5\3\2\2\2\u02d6\u02d7\3\2\2\2\u02d7\u02db\3\2\2\2\u02d8"+
|
||||
"\u02da\7\u0094\2\2\u02d9\u02d8\3\2\2\2\u02da\u02dd\3\2\2\2\u02db\u02d9"+
|
||||
"\3\2\2\2\u02db\u02dc\3\2\2\2\u02dcW\3\2\2\2\u02dd\u02db\3\2\2\2\u02de"+
|
||||
"\u02df\7s\2\2\u02df\u02e4\5\\/\2\u02e0\u02e1\7w\2\2\u02e1\u02e3\5\\/\2"+
|
||||
"\u02e2\u02e0\3\2\2\2\u02e3\u02e6\3\2\2\2\u02e4\u02e2\3\2\2\2\u02e4\u02e5"+
|
||||
"\3\2\2\2\u02e5\u02ea\3\2\2\2\u02e6\u02e4\3\2\2\2\u02e7\u02e9\7\u0094\2"+
|
||||
"\2\u02e8\u02e7\3\2\2\2\u02e9\u02ec\3\2\2\2\u02ea\u02e8\3\2\2\2\u02ea\u02eb"+
|
||||
"\3\2\2\2\u02ebY\3\2\2\2\u02ec\u02ea\3\2\2\2\u02ed\u031b\5\\/\2\u02ee\u02ef"+
|
||||
"\7u\2\2\u02ef\u031b\5\\/\2\u02f0\u02f1\5\\/\2\u02f1\u02f2\7w\2\2\u02f2"+
|
||||
"\u02f3\5\\/\2\u02f3\u031b\3\2\2\2\u02f4\u02f5\7x\2\2\u02f5\u02f6\5\\/"+
|
||||
"\2\u02f6\u02f7\7y\2\2\u02f7\u02f8\7w\2\2\u02f8\u02f9\7\u0093\2\2\u02f9"+
|
||||
"\u031b\3\2\2\2\u02fa\u02fb\7x\2\2\u02fb\u02fc\7x\2\2\u02fc\u02fd\5\\/"+
|
||||
"\2\u02fd\u02fe\7y\2\2\u02fe\u02ff\7y\2\2\u02ff\u0300\7w\2\2\u0300\u0301"+
|
||||
"\7\u0093\2\2\u0301\u031b\3\2\2\2\u0302\u0303\7x\2\2\u0303\u0304\5\\/\2"+
|
||||
"\u0304\u0305\7w\2\2\u0305\u0306\7\u0093\2\2\u0306\u0307\7y\2\2\u0307\u0308"+
|
||||
"\7w\2\2\u0308\u0309\7\u0093\2\2\u0309\u031b\3\2\2\2\u030a\u030b\7x\2\2"+
|
||||
"\u030b\u030c\5\\/\2\u030c\u030d\7w\2\2\u030d\u030e\7\u0093\2\2\u030e\u030f"+
|
||||
"\7y\2\2\u030f\u031b\3\2\2\2\u0310\u0311\7x\2\2\u0311\u0312\5\\/\2\u0312"+
|
||||
"\u0313\7y\2\2\u0313\u031b\3\2\2\2\u0314\u0315\7x\2\2\u0315\u0316\7x\2"+
|
||||
"\2\u0316\u0317\5\\/\2\u0317\u0318\7y\2\2\u0318\u0319\7y\2\2\u0319\u031b"+
|
||||
"\3\2\2\2\u031a\u02ed\3\2\2\2\u031a\u02ee\3\2\2\2\u031a\u02f0\3\2\2\2\u031a"+
|
||||
"\u02f4\3\2\2\2\u031a\u02fa\3\2\2\2\u031a\u0302\3\2\2\2\u031a\u030a\3\2"+
|
||||
"\2\2\u031a\u0310\3\2\2\2\u031a\u0314\3\2\2\2\u031b[\3\2\2\2\u031c\u031d"+
|
||||
"\b/\1\2\u031d\u031e\7z\2\2\u031e\u031f\5\\/\2\u031f\u0320\7{\2\2\u0320"+
|
||||
"\u032b\3\2\2\2\u0321\u0322\t\t\2\2\u0322\u032b\5\\/\n\u0323\u032b\7\u0093"+
|
||||
"\2\2\u0324\u032b\7\u0091\2\2\u0325\u0326\7\u0085\2\2\u0326\u0327\7\u0093"+
|
||||
"\2\2\u0327\u032b\7\u0086\2\2\u0328\u032b\7\u0087\2\2\u0329\u032b\7\u0090"+
|
||||
"\2\2\u032a\u031c\3\2\2\2\u032a\u0321\3\2\2\2\u032a\u0323\3\2\2\2\u032a"+
|
||||
"\u0324\3\2\2\2\u032a\u0325\3\2\2\2\u032a\u0328\3\2\2\2\u032a\u0329\3\2"+
|
||||
"\2\2\u032b\u033a\3\2\2\2\u032c\u032d\f\f\2\2\u032d\u032e\7|\2\2\u032e"+
|
||||
"\u0339\5\\/\r\u032f\u0330\f\13\2\2\u0330\u0331\t\n\2\2\u0331\u0339\5\\"+
|
||||
"/\f\u0332\u0333\f\t\2\2\u0333\u0334\t\13\2\2\u0334\u0339\5\\/\n\u0335"+
|
||||
"\u0336\f\b\2\2\u0336\u0337\t\f\2\2\u0337\u0339\5\\/\t\u0338\u032c\3\2"+
|
||||
"\2\2\u0338\u032f\3\2\2\2\u0338\u0332\3\2\2\2\u0338\u0335\3\2\2\2\u0339"+
|
||||
"\u033c\3\2\2\2\u033a\u0338\3\2\2\2\u033a\u033b\3\2\2\2\u033b]\3\2\2\2"+
|
||||
"\u033c\u033a\3\2\2\2Tgx\u0085\u008b\u0091\u009b\u00a2\u00ad\u00b5\u00ba"+
|
||||
"\u00c0\u00c3\u00c5\u00cf\u00d7\u00dc\u00e2\u00e5\u00e7\u00ed\u00f4\u00fb"+
|
||||
"\u0101\u010d\u011b\u0121\u0127\u0130\u0138\u0142\u014e\u0159\u016e\u0177"+
|
||||
"\u017d\u0182\u0189\u0196\u019b\u01a7\u01b5\u01c8\u01d1\u01d9\u01de\u01e3"+
|
||||
"\u01e5\u01eb\u01f0\u01f4\u01fd\u0200\u0203\u020f\u021b\u0223\u0229\u022d"+
|
||||
"\u0240\u0244\u024d\u0251\u0283\u028d\u028f\u0297\u029c\u02a6\u02b5\u02ba"+
|
||||
"\u02c0\u02c7\u02cf\u02d2\u02d6\u02db\u02e4\u02ea\u031a\u032a\u0338\u033a";
|
||||
public static final ATN _ATN =
|
||||
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
|
||||
static {
|
||||
|
@ -79,80 +79,79 @@ CLOBBERS=78
|
||||
BYTES=79
|
||||
CYCLES=80
|
||||
LOGIC_NOT=81
|
||||
SIGNEDNESS=82
|
||||
SIMPLETYPE=83
|
||||
BOOLEAN=84
|
||||
KICKASM_BODY=85
|
||||
IMPORT=86
|
||||
INCLUDE=87
|
||||
PRAGMA=88
|
||||
DEFINE=89
|
||||
DEFINE_CONTINUE=90
|
||||
UNDEF=91
|
||||
IFDEF=92
|
||||
IFNDEF=93
|
||||
IFIF=94
|
||||
ELIF=95
|
||||
IFELSE=96
|
||||
ENDIF=97
|
||||
ERROR=98
|
||||
NUMBER=99
|
||||
NUMFLOAT=100
|
||||
BINFLOAT=101
|
||||
DECFLOAT=102
|
||||
HEXFLOAT=103
|
||||
NUMINT=104
|
||||
BININTEGER=105
|
||||
DECINTEGER=106
|
||||
HEXINTEGER=107
|
||||
NAME=108
|
||||
STRING=109
|
||||
CHAR=110
|
||||
WS=111
|
||||
COMMENT_LINE=112
|
||||
COMMENT_BLOCK=113
|
||||
ASM_BYTE=114
|
||||
ASM_MNEMONIC=115
|
||||
ASM_IMM=116
|
||||
ASM_COLON=117
|
||||
ASM_COMMA=118
|
||||
ASM_PAR_BEGIN=119
|
||||
ASM_PAR_END=120
|
||||
ASM_BRACKET_BEGIN=121
|
||||
ASM_BRACKET_END=122
|
||||
ASM_DOT=123
|
||||
ASM_SHIFT_LEFT=124
|
||||
ASM_SHIFT_RIGHT=125
|
||||
ASM_PLUS=126
|
||||
ASM_MINUS=127
|
||||
ASM_LESS_THAN=128
|
||||
ASM_GREATER_THAN=129
|
||||
ASM_MULTIPLY=130
|
||||
ASM_DIVIDE=131
|
||||
ASM_CURLY_BEGIN=132
|
||||
ASM_CURLY_END=133
|
||||
ASM_NUMBER=134
|
||||
ASM_NUMFLOAT=135
|
||||
ASM_BINFLOAT=136
|
||||
ASM_DECFLOAT=137
|
||||
ASM_HEXFLOAT=138
|
||||
ASM_NUMINT=139
|
||||
ASM_BININTEGER=140
|
||||
ASM_DECINTEGER=141
|
||||
ASM_HEXINTEGER=142
|
||||
ASM_CHAR=143
|
||||
ASM_MULTI_REL=144
|
||||
ASM_MULTI_NAME=145
|
||||
ASM_NAME=146
|
||||
ASM_TAG=147
|
||||
ASM_WS=148
|
||||
ASM_COMMENT_LINE=149
|
||||
ASM_COMMENT_BLOCK=150
|
||||
IMPORT_SYSTEMFILE=151
|
||||
IMPORT_LOCALFILE=152
|
||||
IMPORT_WS=153
|
||||
IMPORT_COMMENT_LINE=154
|
||||
IMPORT_COMMENT_BLOCK=155
|
||||
SIMPLETYPE=82
|
||||
BOOLEAN=83
|
||||
KICKASM_BODY=84
|
||||
IMPORT=85
|
||||
INCLUDE=86
|
||||
PRAGMA=87
|
||||
DEFINE=88
|
||||
DEFINE_CONTINUE=89
|
||||
UNDEF=90
|
||||
IFDEF=91
|
||||
IFNDEF=92
|
||||
IFIF=93
|
||||
ELIF=94
|
||||
IFELSE=95
|
||||
ENDIF=96
|
||||
ERROR=97
|
||||
NUMBER=98
|
||||
NUMFLOAT=99
|
||||
BINFLOAT=100
|
||||
DECFLOAT=101
|
||||
HEXFLOAT=102
|
||||
NUMINT=103
|
||||
BININTEGER=104
|
||||
DECINTEGER=105
|
||||
HEXINTEGER=106
|
||||
NAME=107
|
||||
STRING=108
|
||||
CHAR=109
|
||||
WS=110
|
||||
COMMENT_LINE=111
|
||||
COMMENT_BLOCK=112
|
||||
ASM_BYTE=113
|
||||
ASM_MNEMONIC=114
|
||||
ASM_IMM=115
|
||||
ASM_COLON=116
|
||||
ASM_COMMA=117
|
||||
ASM_PAR_BEGIN=118
|
||||
ASM_PAR_END=119
|
||||
ASM_BRACKET_BEGIN=120
|
||||
ASM_BRACKET_END=121
|
||||
ASM_DOT=122
|
||||
ASM_SHIFT_LEFT=123
|
||||
ASM_SHIFT_RIGHT=124
|
||||
ASM_PLUS=125
|
||||
ASM_MINUS=126
|
||||
ASM_LESS_THAN=127
|
||||
ASM_GREATER_THAN=128
|
||||
ASM_MULTIPLY=129
|
||||
ASM_DIVIDE=130
|
||||
ASM_CURLY_BEGIN=131
|
||||
ASM_CURLY_END=132
|
||||
ASM_NUMBER=133
|
||||
ASM_NUMFLOAT=134
|
||||
ASM_BINFLOAT=135
|
||||
ASM_DECFLOAT=136
|
||||
ASM_HEXFLOAT=137
|
||||
ASM_NUMINT=138
|
||||
ASM_BININTEGER=139
|
||||
ASM_DECINTEGER=140
|
||||
ASM_HEXINTEGER=141
|
||||
ASM_CHAR=142
|
||||
ASM_MULTI_REL=143
|
||||
ASM_MULTI_NAME=144
|
||||
ASM_NAME=145
|
||||
ASM_TAG=146
|
||||
ASM_WS=147
|
||||
ASM_COMMENT_LINE=148
|
||||
ASM_COMMENT_BLOCK=149
|
||||
IMPORT_SYSTEMFILE=150
|
||||
IMPORT_LOCALFILE=151
|
||||
IMPORT_WS=152
|
||||
IMPORT_COMMENT_LINE=153
|
||||
IMPORT_COMMENT_BLOCK=154
|
||||
';'=8
|
||||
'..'=11
|
||||
'...'=12
|
||||
@ -214,17 +213,17 @@ IMPORT_COMMENT_BLOCK=155
|
||||
'bytes'=79
|
||||
'cycles'=80
|
||||
'!'=81
|
||||
'#import'=86
|
||||
'#include'=87
|
||||
'#pragma'=88
|
||||
'#define'=89
|
||||
'#undef'=91
|
||||
'#ifdef'=92
|
||||
'#ifndef'=93
|
||||
'#if'=94
|
||||
'#elif'=95
|
||||
'#else'=96
|
||||
'#endif'=97
|
||||
'#error'=98
|
||||
'.byte'=114
|
||||
'#'=116
|
||||
'#import'=85
|
||||
'#include'=86
|
||||
'#pragma'=87
|
||||
'#define'=88
|
||||
'#undef'=90
|
||||
'#ifdef'=91
|
||||
'#ifndef'=92
|
||||
'#if'=93
|
||||
'#elif'=94
|
||||
'#else'=95
|
||||
'#endif'=96
|
||||
'#error'=97
|
||||
'.byte'=113
|
||||
'#'=115
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickCParser.g4 by ANTLR 4.9.1
|
||||
// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickCParser.g4 by ANTLR 4.9
|
||||
package dk.camelot64.kickc.parser;
|
||||
|
||||
|
||||
@ -277,18 +277,6 @@ public class KickCParserBaseListener implements KickCParserListener {
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitTypeSimple(KickCParser.TypeSimpleContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void enterTypeSignedSimple(KickCParser.TypeSignedSimpleContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation does nothing.</p>
|
||||
*/
|
||||
@Override public void exitTypeSignedSimple(KickCParser.TypeSignedSimpleContext ctx) { }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickCParser.g4 by ANTLR 4.9.1
|
||||
// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickCParser.g4 by ANTLR 4.9
|
||||
package dk.camelot64.kickc.parser;
|
||||
|
||||
|
||||
@ -167,13 +167,6 @@ public class KickCParserBaseVisitor<T> extends AbstractParseTreeVisitor<T> imple
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitTypeSimple(KickCParser.TypeSimpleContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitTypeSignedSimple(KickCParser.TypeSignedSimpleContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickCParser.g4 by ANTLR 4.9.1
|
||||
// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickCParser.g4 by ANTLR 4.9
|
||||
package dk.camelot64.kickc.parser;
|
||||
|
||||
|
||||
@ -255,18 +255,6 @@ public interface KickCParserListener extends ParseTreeListener {
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitTypeSimple(KickCParser.TypeSimpleContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by the {@code typeSignedSimple}
|
||||
* labeled alternative in {@link KickCParser#type}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void enterTypeSignedSimple(KickCParser.TypeSignedSimpleContext ctx);
|
||||
/**
|
||||
* Exit a parse tree produced by the {@code typeSignedSimple}
|
||||
* labeled alternative in {@link KickCParser#type}.
|
||||
* @param ctx the parse tree
|
||||
*/
|
||||
void exitTypeSignedSimple(KickCParser.TypeSignedSimpleContext ctx);
|
||||
/**
|
||||
* Enter a parse tree produced by the {@code typeStructDef}
|
||||
* labeled alternative in {@link KickCParser#type}.
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickCParser.g4 by ANTLR 4.9.1
|
||||
// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickCParser.g4 by ANTLR 4.9
|
||||
package dk.camelot64.kickc.parser;
|
||||
|
||||
|
||||
@ -157,13 +157,6 @@ public interface KickCParserVisitor<T> extends ParseTreeVisitor<T> {
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitTypeSimple(KickCParser.TypeSimpleContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by the {@code typeSignedSimple}
|
||||
* labeled alternative in {@link KickCParser#type}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitTypeSignedSimple(KickCParser.TypeSignedSimpleContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by the {@code typeStructDef}
|
||||
* labeled alternative in {@link KickCParser#type}.
|
||||
|
@ -26,6 +26,7 @@ import java.nio.file.Path;
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collector;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -1871,7 +1872,15 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
|
||||
|
||||
@Override
|
||||
public Object visitTypeSimple(KickCParser.TypeSimpleContext ctx) {
|
||||
final SymbolType typeSimple = SymbolType.get(ctx.getText());
|
||||
String typeName = "";
|
||||
for(TerminalNode simpleTypeNode : ctx.SIMPLETYPE()) {
|
||||
if(typeName.length()>0)
|
||||
typeName += " ";
|
||||
typeName += simpleTypeNode.getText();
|
||||
}
|
||||
final SymbolType typeSimple = SymbolType.get(typeName);
|
||||
if(typeSimple==null)
|
||||
throw new CompileError("Unknown type '" +typeName+"'" , new StatementSource(ctx));
|
||||
varDecl.setDeclType(typeSimple);
|
||||
return null;
|
||||
}
|
||||
@ -2150,24 +2159,6 @@ public class Pass0GenerateStatementSequence extends KickCParserBaseVisitor<Objec
|
||||
throw new CompileError("Unknown type " + ctx.getText(), new StatementSource(ctx));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object visitTypeSignedSimple(KickCParser.TypeSignedSimpleContext ctx) {
|
||||
String signedness = ctx.getChild(0).getText();
|
||||
String simpleTypeName;
|
||||
if(ctx.SIMPLETYPE() != null) {
|
||||
simpleTypeName = ctx.SIMPLETYPE().getText();
|
||||
} else {
|
||||
simpleTypeName = "int";
|
||||
}
|
||||
String fullName = signedness + " " + simpleTypeName;
|
||||
SymbolType symbolType = SymbolType.get(fullName);
|
||||
if(symbolType == null) {
|
||||
throw new CompileError("Unknown type " + fullName, new StatementSource(ctx));
|
||||
}
|
||||
varDecl.setDeclType(symbolType);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object visitTypeDef(KickCParser.TypeDefContext ctx) {
|
||||
Scope typedefScope = program.getScope().getTypeDefScope();
|
||||
|
@ -1778,7 +1778,7 @@ public class TestProgramsFast extends TestPrograms {
|
||||
|
||||
@Test
|
||||
public void testUnsignedVoidError() throws IOException {
|
||||
assertError("unsigned-void-error.c", "Unknown type unsigned void");
|
||||
assertError("unsigned-void-error.c", "Unknown type 'unsigned void'");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -30,17 +30,22 @@ void main() {
|
||||
idx = 40;
|
||||
// Test C types
|
||||
SCREEN[idx++] = typeid(char);
|
||||
SCREEN[idx++] = typeid(unsigned char);
|
||||
SCREEN[idx++] = typeid(signed char);
|
||||
SCREEN[idx++] = typeid(unsigned char);
|
||||
SCREEN[idx++] = typeid(short);
|
||||
SCREEN[idx++] = typeid(unsigned short);
|
||||
SCREEN[idx++] = typeid(signed short);
|
||||
SCREEN[idx++] = typeid(short int);
|
||||
SCREEN[idx++] = typeid(signed);
|
||||
SCREEN[idx++] = typeid(int);
|
||||
SCREEN[idx++] = typeid(unsigned int);
|
||||
SCREEN[idx++] = typeid(signed short);
|
||||
SCREEN[idx++] = typeid(signed short int);
|
||||
SCREEN[idx++] = typeid(signed int);
|
||||
SCREEN[idx++] = typeid(unsigned short);
|
||||
SCREEN[idx++] = typeid(unsigned short int);
|
||||
SCREEN[idx++] = typeid(unsigned int);
|
||||
SCREEN[idx++] = typeid(long);
|
||||
SCREEN[idx++] = typeid(unsigned long);
|
||||
SCREEN[idx++] = typeid(signed long);
|
||||
|
||||
SCREEN[idx++] = typeid(signed long int);
|
||||
SCREEN[idx++] = typeid(unsigned long);
|
||||
SCREEN[idx++] = typeid(unsigned long int);
|
||||
|
||||
}
|
||||
|
@ -86,37 +86,46 @@ main: {
|
||||
// Test C types
|
||||
lda #TYPEID_BYTE
|
||||
sta SCREEN+$28
|
||||
// SCREEN[idx++] = typeid(unsigned char)
|
||||
sta SCREEN+$29
|
||||
// SCREEN[idx++] = typeid(signed char)
|
||||
lda #TYPEID_SIGNED_BYTE
|
||||
sta SCREEN+$29
|
||||
// SCREEN[idx++] = typeid(unsigned char)
|
||||
lda #TYPEID_BYTE
|
||||
sta SCREEN+$2a
|
||||
// SCREEN[idx++] = typeid(short)
|
||||
lda #TYPEID_SIGNED_WORD
|
||||
sta SCREEN+$2b
|
||||
// SCREEN[idx++] = typeid(unsigned short)
|
||||
lda #TYPEID_WORD
|
||||
// SCREEN[idx++] = typeid(short int)
|
||||
sta SCREEN+$2c
|
||||
// SCREEN[idx++] = typeid(signed short)
|
||||
lda #TYPEID_SIGNED_WORD
|
||||
// SCREEN[idx++] = typeid(signed)
|
||||
sta SCREEN+$2d
|
||||
// SCREEN[idx++] = typeid(int)
|
||||
sta SCREEN+$2e
|
||||
// SCREEN[idx++] = typeid(unsigned int)
|
||||
lda #TYPEID_WORD
|
||||
// SCREEN[idx++] = typeid(signed short)
|
||||
sta SCREEN+$2f
|
||||
// SCREEN[idx++] = typeid(signed int)
|
||||
lda #TYPEID_SIGNED_WORD
|
||||
// SCREEN[idx++] = typeid(signed short int)
|
||||
sta SCREEN+$30
|
||||
// SCREEN[idx++] = typeid(signed int)
|
||||
sta SCREEN+$31
|
||||
// SCREEN[idx++] = typeid(unsigned short)
|
||||
lda #TYPEID_WORD
|
||||
sta SCREEN+$32
|
||||
// SCREEN[idx++] = typeid(unsigned short int)
|
||||
sta SCREEN+$33
|
||||
// SCREEN[idx++] = typeid(unsigned int)
|
||||
sta SCREEN+$34
|
||||
// SCREEN[idx++] = typeid(long)
|
||||
lda #TYPEID_SIGNED_DWORD
|
||||
sta SCREEN+$31
|
||||
sta SCREEN+$35
|
||||
// SCREEN[idx++] = typeid(signed long)
|
||||
sta SCREEN+$36
|
||||
// SCREEN[idx++] = typeid(signed long int)
|
||||
sta SCREEN+$37
|
||||
// SCREEN[idx++] = typeid(unsigned long)
|
||||
lda #TYPEID_DWORD
|
||||
sta SCREEN+$32
|
||||
// SCREEN[idx++] = typeid(signed long)
|
||||
lda #TYPEID_SIGNED_DWORD
|
||||
sta SCREEN+$33
|
||||
sta SCREEN+$38
|
||||
// SCREEN[idx++] = typeid(unsigned long int)
|
||||
sta SCREEN+$39
|
||||
// }
|
||||
rts
|
||||
}
|
||||
|
@ -19,18 +19,24 @@ main: scope:[main] from
|
||||
[15] *(main::SCREEN+$f) = TYPEID_POINTER_PROCEDURE
|
||||
[16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_BYTE
|
||||
[17] *(main::SCREEN+$28) = TYPEID_BYTE
|
||||
[18] *(main::SCREEN+$29) = TYPEID_BYTE
|
||||
[19] *(main::SCREEN+$2a) = TYPEID_SIGNED_BYTE
|
||||
[18] *(main::SCREEN+$29) = TYPEID_SIGNED_BYTE
|
||||
[19] *(main::SCREEN+$2a) = TYPEID_BYTE
|
||||
[20] *(main::SCREEN+$2b) = TYPEID_SIGNED_WORD
|
||||
[21] *(main::SCREEN+$2c) = TYPEID_WORD
|
||||
[21] *(main::SCREEN+$2c) = TYPEID_SIGNED_WORD
|
||||
[22] *(main::SCREEN+$2d) = TYPEID_SIGNED_WORD
|
||||
[23] *(main::SCREEN+$2e) = TYPEID_SIGNED_WORD
|
||||
[24] *(main::SCREEN+$2f) = TYPEID_WORD
|
||||
[24] *(main::SCREEN+$2f) = TYPEID_SIGNED_WORD
|
||||
[25] *(main::SCREEN+$30) = TYPEID_SIGNED_WORD
|
||||
[26] *(main::SCREEN+$31) = TYPEID_SIGNED_DWORD
|
||||
[27] *(main::SCREEN+$32) = TYPEID_DWORD
|
||||
[28] *(main::SCREEN+$33) = TYPEID_SIGNED_DWORD
|
||||
[26] *(main::SCREEN+$31) = TYPEID_SIGNED_WORD
|
||||
[27] *(main::SCREEN+$32) = TYPEID_WORD
|
||||
[28] *(main::SCREEN+$33) = TYPEID_WORD
|
||||
[29] *(main::SCREEN+$34) = TYPEID_WORD
|
||||
[30] *(main::SCREEN+$35) = TYPEID_SIGNED_DWORD
|
||||
[31] *(main::SCREEN+$36) = TYPEID_SIGNED_DWORD
|
||||
[32] *(main::SCREEN+$37) = TYPEID_SIGNED_DWORD
|
||||
[33] *(main::SCREEN+$38) = TYPEID_DWORD
|
||||
[34] *(main::SCREEN+$39) = TYPEID_DWORD
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main
|
||||
[29] return
|
||||
[35] return
|
||||
to:@return
|
||||
|
@ -41,28 +41,40 @@ main: scope:[main] from __start
|
||||
main::idx#18 = $28
|
||||
main::SCREEN[main::idx#18] = TYPEID_BYTE
|
||||
main::idx#19 = ++ main::idx#18
|
||||
main::SCREEN[main::idx#19] = TYPEID_BYTE
|
||||
main::SCREEN[main::idx#19] = TYPEID_SIGNED_BYTE
|
||||
main::idx#20 = ++ main::idx#19
|
||||
main::SCREEN[main::idx#20] = TYPEID_SIGNED_BYTE
|
||||
main::SCREEN[main::idx#20] = TYPEID_BYTE
|
||||
main::idx#21 = ++ main::idx#20
|
||||
main::SCREEN[main::idx#21] = TYPEID_SIGNED_WORD
|
||||
main::idx#22 = ++ main::idx#21
|
||||
main::SCREEN[main::idx#22] = TYPEID_WORD
|
||||
main::SCREEN[main::idx#22] = TYPEID_SIGNED_WORD
|
||||
main::idx#23 = ++ main::idx#22
|
||||
main::SCREEN[main::idx#23] = TYPEID_SIGNED_WORD
|
||||
main::idx#24 = ++ main::idx#23
|
||||
main::SCREEN[main::idx#24] = TYPEID_SIGNED_WORD
|
||||
main::idx#25 = ++ main::idx#24
|
||||
main::SCREEN[main::idx#25] = TYPEID_WORD
|
||||
main::SCREEN[main::idx#25] = TYPEID_SIGNED_WORD
|
||||
main::idx#26 = ++ main::idx#25
|
||||
main::SCREEN[main::idx#26] = TYPEID_SIGNED_WORD
|
||||
main::idx#27 = ++ main::idx#26
|
||||
main::SCREEN[main::idx#27] = TYPEID_SIGNED_DWORD
|
||||
main::SCREEN[main::idx#27] = TYPEID_SIGNED_WORD
|
||||
main::idx#28 = ++ main::idx#27
|
||||
main::SCREEN[main::idx#28] = TYPEID_DWORD
|
||||
main::SCREEN[main::idx#28] = TYPEID_WORD
|
||||
main::idx#29 = ++ main::idx#28
|
||||
main::SCREEN[main::idx#29] = TYPEID_SIGNED_DWORD
|
||||
main::SCREEN[main::idx#29] = TYPEID_WORD
|
||||
main::idx#30 = ++ main::idx#29
|
||||
main::SCREEN[main::idx#30] = TYPEID_WORD
|
||||
main::idx#31 = ++ main::idx#30
|
||||
main::SCREEN[main::idx#31] = TYPEID_SIGNED_DWORD
|
||||
main::idx#32 = ++ main::idx#31
|
||||
main::SCREEN[main::idx#32] = TYPEID_SIGNED_DWORD
|
||||
main::idx#33 = ++ main::idx#32
|
||||
main::SCREEN[main::idx#33] = TYPEID_SIGNED_DWORD
|
||||
main::idx#34 = ++ main::idx#33
|
||||
main::SCREEN[main::idx#34] = TYPEID_DWORD
|
||||
main::idx#35 = ++ main::idx#34
|
||||
main::SCREEN[main::idx#35] = TYPEID_DWORD
|
||||
main::idx#36 = ++ main::idx#35
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main
|
||||
return
|
||||
@ -125,6 +137,12 @@ byte main::idx#28
|
||||
byte main::idx#29
|
||||
byte main::idx#3
|
||||
byte main::idx#30
|
||||
byte main::idx#31
|
||||
byte main::idx#32
|
||||
byte main::idx#33
|
||||
byte main::idx#34
|
||||
byte main::idx#35
|
||||
byte main::idx#36
|
||||
byte main::idx#4
|
||||
byte main::idx#5
|
||||
byte main::idx#6
|
||||
@ -147,7 +165,7 @@ Successful SSA optimization Pass2ConstantIdentification
|
||||
Simplifying expression containing zero main::SCREEN in [1] main::SCREEN[main::idx#0] = TYPEID_VOID
|
||||
Successful SSA optimization PassNSimplifyExpressionWithZero
|
||||
Eliminating unused variable main::idx#17 and assignment [33] main::idx#17 = ++ main::idx#16
|
||||
Eliminating unused variable main::idx#30 and assignment [57] main::idx#30 = ++ main::idx#29
|
||||
Eliminating unused variable main::idx#36 and assignment [69] main::idx#36 = ++ main::idx#35
|
||||
Successful SSA optimization PassNEliminateUnusedVars
|
||||
Removing unused procedure __start
|
||||
Removing unused procedure block __start
|
||||
@ -221,24 +239,38 @@ Constant main::idx#11 = ++main::idx#10
|
||||
Constant main::idx#29 = ++main::idx#28
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Constant right-side identified [12] main::idx#12 = ++ main::idx#11
|
||||
Constant right-side identified [34] main::idx#30 = ++ main::idx#29
|
||||
Successful SSA optimization Pass2ConstantRValueConsolidation
|
||||
Constant main::idx#12 = ++main::idx#11
|
||||
Constant main::idx#30 = ++main::idx#29
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Constant right-side identified [13] main::idx#13 = ++ main::idx#12
|
||||
Constant right-side identified [34] main::idx#31 = ++ main::idx#30
|
||||
Successful SSA optimization Pass2ConstantRValueConsolidation
|
||||
Constant main::idx#13 = ++main::idx#12
|
||||
Constant main::idx#31 = ++main::idx#30
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Constant right-side identified [14] main::idx#14 = ++ main::idx#13
|
||||
Constant right-side identified [34] main::idx#32 = ++ main::idx#31
|
||||
Successful SSA optimization Pass2ConstantRValueConsolidation
|
||||
Constant main::idx#14 = ++main::idx#13
|
||||
Constant main::idx#32 = ++main::idx#31
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Constant right-side identified [15] main::idx#15 = ++ main::idx#14
|
||||
Constant right-side identified [34] main::idx#33 = ++ main::idx#32
|
||||
Successful SSA optimization Pass2ConstantRValueConsolidation
|
||||
Constant main::idx#15 = ++main::idx#14
|
||||
Constant main::idx#33 = ++main::idx#32
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Constant right-side identified [16] main::idx#16 = ++ main::idx#15
|
||||
Constant right-side identified [34] main::idx#34 = ++ main::idx#33
|
||||
Successful SSA optimization Pass2ConstantRValueConsolidation
|
||||
Constant main::idx#16 = ++main::idx#15
|
||||
Constant main::idx#34 = ++main::idx#33
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Constant right-side identified [34] main::idx#35 = ++ main::idx#34
|
||||
Successful SSA optimization Pass2ConstantRValueConsolidation
|
||||
Constant main::idx#35 = ++main::idx#34
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Inlining constant with different constant siblings main::idx#0
|
||||
Inlining constant with different constant siblings main::idx#18
|
||||
@ -265,15 +297,23 @@ Inlining constant with different constant siblings main::idx#28
|
||||
Inlining constant with different constant siblings main::idx#11
|
||||
Inlining constant with different constant siblings main::idx#29
|
||||
Inlining constant with different constant siblings main::idx#12
|
||||
Inlining constant with different constant siblings main::idx#30
|
||||
Inlining constant with different constant siblings main::idx#13
|
||||
Inlining constant with different constant siblings main::idx#31
|
||||
Inlining constant with different constant siblings main::idx#14
|
||||
Inlining constant with different constant siblings main::idx#32
|
||||
Inlining constant with different constant siblings main::idx#15
|
||||
Inlining constant with different constant siblings main::idx#33
|
||||
Inlining constant with different constant siblings main::idx#16
|
||||
Inlining constant with different constant siblings main::idx#34
|
||||
Inlining constant with different constant siblings main::idx#35
|
||||
Constant inlined main::idx#16 = ++++++++++++++++++++++++++++++++0
|
||||
Constant inlined main::idx#18 = $28
|
||||
Constant inlined main::idx#19 = ++$28
|
||||
Constant inlined main::idx#12 = ++++++++++++++++++++++++0
|
||||
Constant inlined main::idx#34 = ++++++++++++++++++++++++++++++++$28
|
||||
Constant inlined main::idx#13 = ++++++++++++++++++++++++++0
|
||||
Constant inlined main::idx#35 = ++++++++++++++++++++++++++++++++++$28
|
||||
Constant inlined main::idx#14 = ++++++++++++++++++++++++++++0
|
||||
Constant inlined main::idx#15 = ++++++++++++++++++++++++++++++0
|
||||
Constant inlined main::idx#20 = ++++$28
|
||||
@ -294,10 +334,14 @@ Constant inlined main::idx#4 = ++++++++0
|
||||
Constant inlined main::idx#5 = ++++++++++0
|
||||
Constant inlined main::idx#6 = ++++++++++++0
|
||||
Constant inlined main::idx#7 = ++++++++++++++0
|
||||
Constant inlined main::idx#30 = ++++++++++++++++++++++++$28
|
||||
Constant inlined main::idx#8 = ++++++++++++++++0
|
||||
Constant inlined main::idx#31 = ++++++++++++++++++++++++++$28
|
||||
Constant inlined main::idx#9 = ++++++++++++++++++0
|
||||
Constant inlined main::idx#10 = ++++++++++++++++++++0
|
||||
Constant inlined main::idx#32 = ++++++++++++++++++++++++++++$28
|
||||
Constant inlined main::idx#11 = ++++++++++++++++++++++0
|
||||
Constant inlined main::idx#33 = ++++++++++++++++++++++++++++++$28
|
||||
Successful SSA optimization Pass2ConstantInlining
|
||||
Consolidated array index constant in *(main::SCREEN+++0)
|
||||
Consolidated array index constant in *(main::SCREEN+++++0)
|
||||
@ -327,6 +371,12 @@ Consolidated array index constant in *(main::SCREEN+++++++++++++++++$28)
|
||||
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++$28)
|
||||
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++$28)
|
||||
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++$28)
|
||||
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++$28)
|
||||
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++++$28)
|
||||
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++++++$28)
|
||||
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++++++++$28)
|
||||
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++++++++++$28)
|
||||
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++++++++++++$28)
|
||||
Successful SSA optimization Pass2ConstantAdditionElimination
|
||||
Simplifying constant integer increment ++0
|
||||
Simplifying constant integer increment ++0
|
||||
@ -355,6 +405,12 @@ Simplifying constant integer increment ++$2e
|
||||
Simplifying constant integer increment ++$2f
|
||||
Simplifying constant integer increment ++$30
|
||||
Simplifying constant integer increment ++$31
|
||||
Simplifying constant integer increment ++$32
|
||||
Simplifying constant integer increment ++$33
|
||||
Simplifying constant integer increment ++$34
|
||||
Simplifying constant integer increment ++$35
|
||||
Simplifying constant integer increment ++$36
|
||||
Simplifying constant integer increment ++$37
|
||||
Successful SSA optimization Pass2ConstantSimplification
|
||||
Simplifying constant integer increment ++1
|
||||
Simplifying constant integer increment ++2
|
||||
@ -381,6 +437,12 @@ Simplifying constant integer increment ++$2f
|
||||
Simplifying constant integer increment ++$30
|
||||
Simplifying constant integer increment ++$31
|
||||
Simplifying constant integer increment ++$32
|
||||
Simplifying constant integer increment ++$33
|
||||
Simplifying constant integer increment ++$34
|
||||
Simplifying constant integer increment ++$35
|
||||
Simplifying constant integer increment ++$36
|
||||
Simplifying constant integer increment ++$37
|
||||
Simplifying constant integer increment ++$38
|
||||
Successful SSA optimization Pass2ConstantSimplification
|
||||
Finalized unsigned number type (byte) 0
|
||||
Finalized unsigned number type (byte) 1
|
||||
@ -427,20 +489,26 @@ main: scope:[main] from
|
||||
[15] *(main::SCREEN+$f) = TYPEID_POINTER_PROCEDURE
|
||||
[16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_BYTE
|
||||
[17] *(main::SCREEN+$28) = TYPEID_BYTE
|
||||
[18] *(main::SCREEN+$29) = TYPEID_BYTE
|
||||
[19] *(main::SCREEN+$2a) = TYPEID_SIGNED_BYTE
|
||||
[18] *(main::SCREEN+$29) = TYPEID_SIGNED_BYTE
|
||||
[19] *(main::SCREEN+$2a) = TYPEID_BYTE
|
||||
[20] *(main::SCREEN+$2b) = TYPEID_SIGNED_WORD
|
||||
[21] *(main::SCREEN+$2c) = TYPEID_WORD
|
||||
[21] *(main::SCREEN+$2c) = TYPEID_SIGNED_WORD
|
||||
[22] *(main::SCREEN+$2d) = TYPEID_SIGNED_WORD
|
||||
[23] *(main::SCREEN+$2e) = TYPEID_SIGNED_WORD
|
||||
[24] *(main::SCREEN+$2f) = TYPEID_WORD
|
||||
[24] *(main::SCREEN+$2f) = TYPEID_SIGNED_WORD
|
||||
[25] *(main::SCREEN+$30) = TYPEID_SIGNED_WORD
|
||||
[26] *(main::SCREEN+$31) = TYPEID_SIGNED_DWORD
|
||||
[27] *(main::SCREEN+$32) = TYPEID_DWORD
|
||||
[28] *(main::SCREEN+$33) = TYPEID_SIGNED_DWORD
|
||||
[26] *(main::SCREEN+$31) = TYPEID_SIGNED_WORD
|
||||
[27] *(main::SCREEN+$32) = TYPEID_WORD
|
||||
[28] *(main::SCREEN+$33) = TYPEID_WORD
|
||||
[29] *(main::SCREEN+$34) = TYPEID_WORD
|
||||
[30] *(main::SCREEN+$35) = TYPEID_SIGNED_DWORD
|
||||
[31] *(main::SCREEN+$36) = TYPEID_SIGNED_DWORD
|
||||
[32] *(main::SCREEN+$37) = TYPEID_SIGNED_DWORD
|
||||
[33] *(main::SCREEN+$38) = TYPEID_DWORD
|
||||
[34] *(main::SCREEN+$39) = TYPEID_DWORD
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main
|
||||
[29] return
|
||||
[35] return
|
||||
to:@return
|
||||
|
||||
|
||||
@ -469,24 +537,30 @@ Statement [14] *(main::SCREEN+$e) = TYPEID_POINTER_BOOL [ ] ( [ ] { } ) always
|
||||
Statement [15] *(main::SCREEN+$f) = TYPEID_POINTER_PROCEDURE [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_BYTE [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [17] *(main::SCREEN+$28) = TYPEID_BYTE [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [18] *(main::SCREEN+$29) = TYPEID_BYTE [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [19] *(main::SCREEN+$2a) = TYPEID_SIGNED_BYTE [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [18] *(main::SCREEN+$29) = TYPEID_SIGNED_BYTE [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [19] *(main::SCREEN+$2a) = TYPEID_BYTE [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [20] *(main::SCREEN+$2b) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [21] *(main::SCREEN+$2c) = TYPEID_WORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [21] *(main::SCREEN+$2c) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [22] *(main::SCREEN+$2d) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [23] *(main::SCREEN+$2e) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [24] *(main::SCREEN+$2f) = TYPEID_WORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [24] *(main::SCREEN+$2f) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [25] *(main::SCREEN+$30) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [26] *(main::SCREEN+$31) = TYPEID_SIGNED_DWORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [27] *(main::SCREEN+$32) = TYPEID_DWORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [28] *(main::SCREEN+$33) = TYPEID_SIGNED_DWORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [26] *(main::SCREEN+$31) = TYPEID_SIGNED_WORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [27] *(main::SCREEN+$32) = TYPEID_WORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [28] *(main::SCREEN+$33) = TYPEID_WORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [29] *(main::SCREEN+$34) = TYPEID_WORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [30] *(main::SCREEN+$35) = TYPEID_SIGNED_DWORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [31] *(main::SCREEN+$36) = TYPEID_SIGNED_DWORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [32] *(main::SCREEN+$37) = TYPEID_SIGNED_DWORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [33] *(main::SCREEN+$38) = TYPEID_DWORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
Statement [34] *(main::SCREEN+$39) = TYPEID_DWORD [ ] ( [ ] { } ) always clobbers reg byte a
|
||||
|
||||
REGISTER UPLIFT SCOPES
|
||||
Uplift Scope [main]
|
||||
Uplift Scope []
|
||||
|
||||
Uplifting [main] best 183 combination
|
||||
Uplifting [] best 183 combination
|
||||
Uplifting [main] best 219 combination
|
||||
Uplifting [] best 219 combination
|
||||
|
||||
ASSEMBLER BEFORE OPTIMIZATION
|
||||
// File Comments
|
||||
@ -581,17 +655,17 @@ main: {
|
||||
// Test C types
|
||||
lda #TYPEID_BYTE
|
||||
sta SCREEN+$28
|
||||
// [18] *(main::SCREEN+$29) = TYPEID_BYTE -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_BYTE
|
||||
sta SCREEN+$29
|
||||
// [19] *(main::SCREEN+$2a) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2
|
||||
// [18] *(main::SCREEN+$29) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_BYTE
|
||||
sta SCREEN+$29
|
||||
// [19] *(main::SCREEN+$2a) = TYPEID_BYTE -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_BYTE
|
||||
sta SCREEN+$2a
|
||||
// [20] *(main::SCREEN+$2b) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_WORD
|
||||
sta SCREEN+$2b
|
||||
// [21] *(main::SCREEN+$2c) = TYPEID_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_WORD
|
||||
// [21] *(main::SCREEN+$2c) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_WORD
|
||||
sta SCREEN+$2c
|
||||
// [22] *(main::SCREEN+$2d) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_WORD
|
||||
@ -599,25 +673,43 @@ main: {
|
||||
// [23] *(main::SCREEN+$2e) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_WORD
|
||||
sta SCREEN+$2e
|
||||
// [24] *(main::SCREEN+$2f) = TYPEID_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_WORD
|
||||
// [24] *(main::SCREEN+$2f) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_WORD
|
||||
sta SCREEN+$2f
|
||||
// [25] *(main::SCREEN+$30) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_WORD
|
||||
sta SCREEN+$30
|
||||
// [26] *(main::SCREEN+$31) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_DWORD
|
||||
// [26] *(main::SCREEN+$31) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_WORD
|
||||
sta SCREEN+$31
|
||||
// [27] *(main::SCREEN+$32) = TYPEID_DWORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_DWORD
|
||||
// [27] *(main::SCREEN+$32) = TYPEID_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_WORD
|
||||
sta SCREEN+$32
|
||||
// [28] *(main::SCREEN+$33) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_DWORD
|
||||
// [28] *(main::SCREEN+$33) = TYPEID_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_WORD
|
||||
sta SCREEN+$33
|
||||
// [29] *(main::SCREEN+$34) = TYPEID_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_WORD
|
||||
sta SCREEN+$34
|
||||
// [30] *(main::SCREEN+$35) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_DWORD
|
||||
sta SCREEN+$35
|
||||
// [31] *(main::SCREEN+$36) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_DWORD
|
||||
sta SCREEN+$36
|
||||
// [32] *(main::SCREEN+$37) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_DWORD
|
||||
sta SCREEN+$37
|
||||
// [33] *(main::SCREEN+$38) = TYPEID_DWORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_DWORD
|
||||
sta SCREEN+$38
|
||||
// [34] *(main::SCREEN+$39) = TYPEID_DWORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_DWORD
|
||||
sta SCREEN+$39
|
||||
jmp __breturn
|
||||
// main::@return
|
||||
__breturn:
|
||||
// [29] return
|
||||
// [35] return
|
||||
rts
|
||||
}
|
||||
// File Data
|
||||
@ -625,8 +717,17 @@ main: {
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp __breturn
|
||||
Succesful ASM optimization Pass5NextJumpElimination
|
||||
Removing instruction lda #TYPEID_BYTE
|
||||
Removing instruction lda #TYPEID_SIGNED_WORD
|
||||
Removing instruction lda #TYPEID_SIGNED_WORD
|
||||
Removing instruction lda #TYPEID_SIGNED_WORD
|
||||
Removing instruction lda #TYPEID_SIGNED_WORD
|
||||
Removing instruction lda #TYPEID_SIGNED_WORD
|
||||
Removing instruction lda #TYPEID_SIGNED_WORD
|
||||
Removing instruction lda #TYPEID_WORD
|
||||
Removing instruction lda #TYPEID_WORD
|
||||
Removing instruction lda #TYPEID_SIGNED_DWORD
|
||||
Removing instruction lda #TYPEID_SIGNED_DWORD
|
||||
Removing instruction lda #TYPEID_DWORD
|
||||
Succesful ASM optimization Pass5UnnecesaryLoadElimination
|
||||
Removing instruction __breturn:
|
||||
Succesful ASM optimization Pass5UnusedLabelElimination
|
||||
@ -656,7 +757,7 @@ byte main::idx
|
||||
|
||||
|
||||
FINAL ASSEMBLER
|
||||
Score: 176
|
||||
Score: 194
|
||||
|
||||
// File Comments
|
||||
// Test typeid() of the different types
|
||||
@ -768,51 +869,66 @@ main: {
|
||||
// Test C types
|
||||
lda #TYPEID_BYTE
|
||||
sta SCREEN+$28
|
||||
// SCREEN[idx++] = typeid(unsigned char)
|
||||
// [18] *(main::SCREEN+$29) = TYPEID_BYTE -- _deref_pbuc1=vbuc2
|
||||
sta SCREEN+$29
|
||||
// SCREEN[idx++] = typeid(signed char)
|
||||
// [19] *(main::SCREEN+$2a) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2
|
||||
// [18] *(main::SCREEN+$29) = TYPEID_SIGNED_BYTE -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_BYTE
|
||||
sta SCREEN+$29
|
||||
// SCREEN[idx++] = typeid(unsigned char)
|
||||
// [19] *(main::SCREEN+$2a) = TYPEID_BYTE -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_BYTE
|
||||
sta SCREEN+$2a
|
||||
// SCREEN[idx++] = typeid(short)
|
||||
// [20] *(main::SCREEN+$2b) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_WORD
|
||||
sta SCREEN+$2b
|
||||
// SCREEN[idx++] = typeid(unsigned short)
|
||||
// [21] *(main::SCREEN+$2c) = TYPEID_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_WORD
|
||||
// SCREEN[idx++] = typeid(short int)
|
||||
// [21] *(main::SCREEN+$2c) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2
|
||||
sta SCREEN+$2c
|
||||
// SCREEN[idx++] = typeid(signed short)
|
||||
// SCREEN[idx++] = typeid(signed)
|
||||
// [22] *(main::SCREEN+$2d) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_WORD
|
||||
sta SCREEN+$2d
|
||||
// SCREEN[idx++] = typeid(int)
|
||||
// [23] *(main::SCREEN+$2e) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2
|
||||
sta SCREEN+$2e
|
||||
// SCREEN[idx++] = typeid(unsigned int)
|
||||
// [24] *(main::SCREEN+$2f) = TYPEID_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_WORD
|
||||
// SCREEN[idx++] = typeid(signed short)
|
||||
// [24] *(main::SCREEN+$2f) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2
|
||||
sta SCREEN+$2f
|
||||
// SCREEN[idx++] = typeid(signed int)
|
||||
// SCREEN[idx++] = typeid(signed short int)
|
||||
// [25] *(main::SCREEN+$30) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_WORD
|
||||
sta SCREEN+$30
|
||||
// SCREEN[idx++] = typeid(long)
|
||||
// [26] *(main::SCREEN+$31) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_DWORD
|
||||
// SCREEN[idx++] = typeid(signed int)
|
||||
// [26] *(main::SCREEN+$31) = TYPEID_SIGNED_WORD -- _deref_pbuc1=vbuc2
|
||||
sta SCREEN+$31
|
||||
// SCREEN[idx++] = typeid(unsigned long)
|
||||
// [27] *(main::SCREEN+$32) = TYPEID_DWORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_DWORD
|
||||
// SCREEN[idx++] = typeid(unsigned short)
|
||||
// [27] *(main::SCREEN+$32) = TYPEID_WORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_WORD
|
||||
sta SCREEN+$32
|
||||
// SCREEN[idx++] = typeid(signed long)
|
||||
// [28] *(main::SCREEN+$33) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_DWORD
|
||||
// SCREEN[idx++] = typeid(unsigned short int)
|
||||
// [28] *(main::SCREEN+$33) = TYPEID_WORD -- _deref_pbuc1=vbuc2
|
||||
sta SCREEN+$33
|
||||
// SCREEN[idx++] = typeid(unsigned int)
|
||||
// [29] *(main::SCREEN+$34) = TYPEID_WORD -- _deref_pbuc1=vbuc2
|
||||
sta SCREEN+$34
|
||||
// SCREEN[idx++] = typeid(long)
|
||||
// [30] *(main::SCREEN+$35) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_SIGNED_DWORD
|
||||
sta SCREEN+$35
|
||||
// SCREEN[idx++] = typeid(signed long)
|
||||
// [31] *(main::SCREEN+$36) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2
|
||||
sta SCREEN+$36
|
||||
// SCREEN[idx++] = typeid(signed long int)
|
||||
// [32] *(main::SCREEN+$37) = TYPEID_SIGNED_DWORD -- _deref_pbuc1=vbuc2
|
||||
sta SCREEN+$37
|
||||
// SCREEN[idx++] = typeid(unsigned long)
|
||||
// [33] *(main::SCREEN+$38) = TYPEID_DWORD -- _deref_pbuc1=vbuc2
|
||||
lda #TYPEID_DWORD
|
||||
sta SCREEN+$38
|
||||
// SCREEN[idx++] = typeid(unsigned long int)
|
||||
// [34] *(main::SCREEN+$39) = TYPEID_DWORD -- _deref_pbuc1=vbuc2
|
||||
sta SCREEN+$39
|
||||
// main::@return
|
||||
// }
|
||||
// [29] return
|
||||
// [35] return
|
||||
rts
|
||||
}
|
||||
// File Data
|
||||
|
Loading…
x
Reference in New Issue
Block a user