Changed grammar and added code generator

* changed the grammar to ease code generation
* added a code generator and a standalone setup to generate SystemC code
using SC-Components lib
This commit is contained in:
2017-09-19 18:08:17 +02:00
parent 2d55eac2b9
commit cc2891cb8c
68 changed files with 20392 additions and 13870 deletions

View File

@ -38,6 +38,7 @@ public class RDLParser extends AbstractContentAssistParser {
put(grammarAccess.getPropertyDefinitionAccess().getAlternatives_3_2_1(), "rule__PropertyDefinition__Alternatives_3_2_1");
put(grammarAccess.getPropertyDefaultAccess().getAlternatives_2(), "rule__PropertyDefault__Alternatives_2");
put(grammarAccess.getComponentDefinitionAccess().getAlternatives_3(), "rule__ComponentDefinition__Alternatives_3");
put(grammarAccess.getInstantiationAccess().getAlternatives_0(), "rule__Instantiation__Alternatives_0");
put(grammarAccess.getRangeAccess().getAlternatives_1(), "rule__Range__Alternatives_1");
put(grammarAccess.getPropertyAssignmentAccess().getAlternatives(), "rule__PropertyAssignment__Alternatives");
put(grammarAccess.getExplicitPropertyAssignmentAccess().getAlternatives(), "rule__ExplicitPropertyAssignment__Alternatives");
@ -49,6 +50,7 @@ public class RDLParser extends AbstractContentAssistParser {
put(grammarAccess.getConcatElemAccess().getAlternatives(), "rule__ConcatElem__Alternatives");
put(grammarAccess.getPropertyRvalueConstantAccess().getAlternatives(), "rule__PropertyRvalueConstant__Alternatives");
put(grammarAccess.getEnumPropertyAccess().getAlternatives_0(), "rule__EnumProperty__Alternatives_0");
put(grammarAccess.getEnumInstanceTypeAccess().getAlternatives(), "rule__EnumInstanceType__Alternatives");
put(grammarAccess.getPropertyTypeNameAccess().getAlternatives(), "rule__PropertyTypeName__Alternatives");
put(grammarAccess.getPropertyComponentAccess().getAlternatives(), "rule__PropertyComponent__Alternatives");
put(grammarAccess.getComponentDefinitionTypeAccess().getAlternatives(), "rule__ComponentDefinitionType__Alternatives");
@ -56,6 +58,11 @@ public class RDLParser extends AbstractContentAssistParser {
put(grammarAccess.getPropertyAccess().getAlternatives(), "rule__Property__Alternatives");
put(grammarAccess.getRValueConstantAccess().getAlternatives(), "rule__RValueConstant__Alternatives");
put(grammarAccess.getPropertyModifierAccess().getAlternatives(), "rule__PropertyModifier__Alternatives");
put(grammarAccess.getRootAccess().getGroup_1(), "rule__Root__Group_1__0");
put(grammarAccess.getRootAccess().getGroup_2(), "rule__Root__Group_2__0");
put(grammarAccess.getRootAccess().getGroup_3(), "rule__Root__Group_3__0");
put(grammarAccess.getRootAccess().getGroup_4(), "rule__Root__Group_4__0");
put(grammarAccess.getRootAccess().getGroup_5(), "rule__Root__Group_5__0");
put(grammarAccess.getIncludeAccess().getGroup(), "rule__Include__Group__0");
put(grammarAccess.getPropertyDefinitionAccess().getGroup(), "rule__PropertyDefinition__Group__0");
put(grammarAccess.getPropertyDefinitionAccess().getGroup_3_0(), "rule__PropertyDefinition__Group_3_0__0");
@ -71,11 +78,15 @@ public class RDLParser extends AbstractContentAssistParser {
put(grammarAccess.getPropertyUsageAccess().getGroup(), "rule__PropertyUsage__Group__0");
put(grammarAccess.getPropertyUsageAccess().getGroup_3(), "rule__PropertyUsage__Group_3__0");
put(grammarAccess.getComponentDefinitionAccess().getGroup(), "rule__ComponentDefinition__Group__0");
put(grammarAccess.getNamedInstantiationAccess().getGroup(), "rule__NamedInstantiation__Group__0");
put(grammarAccess.getNamedInstantiationAccess().getGroup_2(), "rule__NamedInstantiation__Group_2__0");
put(grammarAccess.getNamedInstantiationAccess().getGroup_5(), "rule__NamedInstantiation__Group_5__0");
put(grammarAccess.getImmediateInstantiationAccess().getGroup(), "rule__ImmediateInstantiation__Group__0");
put(grammarAccess.getImmediateInstantiationAccess().getGroup_2(), "rule__ImmediateInstantiation__Group_2__0");
put(grammarAccess.getComponentDefinitionAccess().getGroup_3_0(), "rule__ComponentDefinition__Group_3_0__0");
put(grammarAccess.getComponentDefinitionAccess().getGroup_3_1(), "rule__ComponentDefinition__Group_3_1__0");
put(grammarAccess.getComponentDefinitionAccess().getGroup_3_2(), "rule__ComponentDefinition__Group_3_2__0");
put(grammarAccess.getComponentDefinitionAccess().getGroup_3_3(), "rule__ComponentDefinition__Group_3_3__0");
put(grammarAccess.getInstantiationAccess().getGroup(), "rule__Instantiation__Group__0");
put(grammarAccess.getInstantiationAccess().getGroup_0_0(), "rule__Instantiation__Group_0_0__0");
put(grammarAccess.getInstantiationAccess().getGroup_0_0_1(), "rule__Instantiation__Group_0_0_1__0");
put(grammarAccess.getInstantiationAccess().getGroup_0_1(), "rule__Instantiation__Group_0_1__0");
put(grammarAccess.getInstantiationAccess().getGroup_2(), "rule__Instantiation__Group_2__0");
put(grammarAccess.getComponentInstanceAccess().getGroup(), "rule__ComponentInstance__Group__0");
put(grammarAccess.getComponentInstanceAccess().getGroup_2(), "rule__ComponentInstance__Group_2__0");
put(grammarAccess.getComponentInstanceAccess().getGroup_3(), "rule__ComponentInstance__Group_3__0");
@ -107,11 +118,11 @@ public class RDLParser extends AbstractContentAssistParser {
put(grammarAccess.getEnumPropertyAccess().getGroup_0_0(), "rule__EnumProperty__Group_0_0__0");
put(grammarAccess.getEnumPropertyAccess().getGroup_0_1(), "rule__EnumProperty__Group_0_1__0");
put(grammarAccess.getRootAccess().getIncludesAssignment_0(), "rule__Root__IncludesAssignment_0");
put(grammarAccess.getRootAccess().getComponentDefinitionsAssignment_1(), "rule__Root__ComponentDefinitionsAssignment_1");
put(grammarAccess.getRootAccess().getEnumDefinitionsAssignment_2(), "rule__Root__EnumDefinitionsAssignment_2");
put(grammarAccess.getRootAccess().getNamedInstantiationsAssignment_3(), "rule__Root__NamedInstantiationsAssignment_3");
put(grammarAccess.getRootAccess().getPropertyAssignmentsAssignment_4(), "rule__Root__PropertyAssignmentsAssignment_4");
put(grammarAccess.getRootAccess().getPropertyDefinitionsAssignment_5(), "rule__Root__PropertyDefinitionsAssignment_5");
put(grammarAccess.getRootAccess().getComponentDefinitionsAssignment_1_0(), "rule__Root__ComponentDefinitionsAssignment_1_0");
put(grammarAccess.getRootAccess().getEnumDefinitionsAssignment_2_0(), "rule__Root__EnumDefinitionsAssignment_2_0");
put(grammarAccess.getRootAccess().getInstantiationsAssignment_3_0(), "rule__Root__InstantiationsAssignment_3_0");
put(grammarAccess.getRootAccess().getPropertyAssignmentsAssignment_4_0(), "rule__Root__PropertyAssignmentsAssignment_4_0");
put(grammarAccess.getRootAccess().getPropertyDefinitionsAssignment_5_0(), "rule__Root__PropertyDefinitionsAssignment_5_0");
put(grammarAccess.getIncludeAccess().getImportURIAssignment_1(), "rule__Include__ImportURIAssignment_1");
put(grammarAccess.getPropertyDefinitionAccess().getNameAssignment_1(), "rule__PropertyDefinition__NameAssignment_1");
put(grammarAccess.getPropertyDefinitionAccess().getTypeAssignment_3_0_2(), "rule__PropertyDefinition__TypeAssignment_3_0_2");
@ -137,28 +148,25 @@ public class RDLParser extends AbstractContentAssistParser {
put(grammarAccess.getPropertyUsageAccess().getComponentsAssignment_3_1(), "rule__PropertyUsage__ComponentsAssignment_3_1");
put(grammarAccess.getComponentDefinitionAccess().getTypeAssignment_0(), "rule__ComponentDefinition__TypeAssignment_0");
put(grammarAccess.getComponentDefinitionAccess().getNameAssignment_1(), "rule__ComponentDefinition__NameAssignment_1");
put(grammarAccess.getComponentDefinitionAccess().getComponentDefinitionsAssignment_3_0(), "rule__ComponentDefinition__ComponentDefinitionsAssignment_3_0");
put(grammarAccess.getComponentDefinitionAccess().getNamedInstantiationsAssignment_3_1(), "rule__ComponentDefinition__NamedInstantiationsAssignment_3_1");
put(grammarAccess.getComponentDefinitionAccess().getPropertyAssignmentsAssignment_3_2(), "rule__ComponentDefinition__PropertyAssignmentsAssignment_3_2");
put(grammarAccess.getComponentDefinitionAccess().getEnumDefinitionsAssignment_3_3(), "rule__ComponentDefinition__EnumDefinitionsAssignment_3_3");
put(grammarAccess.getComponentDefinitionAccess().getImmediateInstantiationAssignment_5(), "rule__ComponentDefinition__ImmediateInstantiationAssignment_5");
put(grammarAccess.getNamedInstantiationAccess().getExternalAssignment_0(), "rule__NamedInstantiation__ExternalAssignment_0");
put(grammarAccess.getNamedInstantiationAccess().getInternalAssignment_1(), "rule__NamedInstantiation__InternalAssignment_1");
put(grammarAccess.getNamedInstantiationAccess().getAliasAssignment_2_1(), "rule__NamedInstantiation__AliasAssignment_2_1");
put(grammarAccess.getNamedInstantiationAccess().getComponentAssignment_3(), "rule__NamedInstantiation__ComponentAssignment_3");
put(grammarAccess.getNamedInstantiationAccess().getComponentInstancesAssignment_4(), "rule__NamedInstantiation__ComponentInstancesAssignment_4");
put(grammarAccess.getNamedInstantiationAccess().getComponentInstancesAssignment_5_1(), "rule__NamedInstantiation__ComponentInstancesAssignment_5_1");
put(grammarAccess.getImmediateInstantiationAccess().getExternalAssignment_0(), "rule__ImmediateInstantiation__ExternalAssignment_0");
put(grammarAccess.getImmediateInstantiationAccess().getComponentInstancesAssignment_1(), "rule__ImmediateInstantiation__ComponentInstancesAssignment_1");
put(grammarAccess.getImmediateInstantiationAccess().getComponentInstancesAssignment_2_1(), "rule__ImmediateInstantiation__ComponentInstancesAssignment_2_1");
put(grammarAccess.getComponentDefinitionAccess().getComponentDefinitionsAssignment_3_0_0(), "rule__ComponentDefinition__ComponentDefinitionsAssignment_3_0_0");
put(grammarAccess.getComponentDefinitionAccess().getInstantiationsAssignment_3_1_0(), "rule__ComponentDefinition__InstantiationsAssignment_3_1_0");
put(grammarAccess.getComponentDefinitionAccess().getPropertyAssignmentsAssignment_3_2_0(), "rule__ComponentDefinition__PropertyAssignmentsAssignment_3_2_0");
put(grammarAccess.getComponentDefinitionAccess().getEnumDefinitionsAssignment_3_3_0(), "rule__ComponentDefinition__EnumDefinitionsAssignment_3_3_0");
put(grammarAccess.getInstantiationAccess().getInstanceTypeAssignment_0_0_0(), "rule__Instantiation__InstanceTypeAssignment_0_0_0");
put(grammarAccess.getInstantiationAccess().getAliasAssignment_0_0_1_1(), "rule__Instantiation__AliasAssignment_0_0_1_1");
put(grammarAccess.getInstantiationAccess().getComponentRefAssignment_0_0_2(), "rule__Instantiation__ComponentRefAssignment_0_0_2");
put(grammarAccess.getInstantiationAccess().getComponentAssignment_0_1_0(), "rule__Instantiation__ComponentAssignment_0_1_0");
put(grammarAccess.getInstantiationAccess().getInstanceTypeAssignment_0_1_1(), "rule__Instantiation__InstanceTypeAssignment_0_1_1");
put(grammarAccess.getInstantiationAccess().getComponentInstancesAssignment_1(), "rule__Instantiation__ComponentInstancesAssignment_1");
put(grammarAccess.getInstantiationAccess().getComponentInstancesAssignment_2_1(), "rule__Instantiation__ComponentInstancesAssignment_2_1");
put(grammarAccess.getComponentInstanceAccess().getNameAssignment_0(), "rule__ComponentInstance__NameAssignment_0");
put(grammarAccess.getComponentInstanceAccess().getRangeAssignment_1(), "rule__ComponentInstance__RangeAssignment_1");
put(grammarAccess.getComponentInstanceAccess().getResetAssignment_2_1(), "rule__ComponentInstance__ResetAssignment_2_1");
put(grammarAccess.getComponentInstanceAccess().getAddressAssignment_3_1(), "rule__ComponentInstance__AddressAssignment_3_1");
put(grammarAccess.getComponentInstanceAccess().getAddrIncAssignment_4_1(), "rule__ComponentInstance__AddrIncAssignment_4_1");
put(grammarAccess.getComponentInstanceAccess().getAddrModAssignment_5_1(), "rule__ComponentInstance__AddrModAssignment_5_1");
put(grammarAccess.getRangeAccess().getStartAssignment_1_0_0(), "rule__Range__StartAssignment_1_0_0");
put(grammarAccess.getRangeAccess().getEndAssignment_1_0_2(), "rule__Range__EndAssignment_1_0_2");
put(grammarAccess.getRangeAccess().getLeftAssignment_1_0_0(), "rule__Range__LeftAssignment_1_0_0");
put(grammarAccess.getRangeAccess().getRightAssignment_1_0_2(), "rule__Range__RightAssignment_1_0_2");
put(grammarAccess.getRangeAccess().getSizeAssignment_1_1(), "rule__Range__SizeAssignment_1_1");
put(grammarAccess.getExplicitPropertyAssignmentAccess().getModifierAssignment_0_0(), "rule__ExplicitPropertyAssignment__ModifierAssignment_0_0");
put(grammarAccess.getExplicitPropertyAssignmentAccess().getNameAssignment_0_1(), "rule__ExplicitPropertyAssignment__NameAssignment_0_1");
@ -198,6 +206,8 @@ public class RDLParser extends AbstractContentAssistParser {
put(grammarAccess.getEnumPropertyAccess().getValueAssignment_0_0_2(), "rule__EnumProperty__ValueAssignment_0_0_2");
put(grammarAccess.getEnumPropertyAccess().getNameAssignment_0_1_0(), "rule__EnumProperty__NameAssignment_0_1_0");
put(grammarAccess.getEnumPropertyAccess().getValueAssignment_0_1_2(), "rule__EnumProperty__ValueAssignment_0_1_2");
put(grammarAccess.getEnumInstanceTypeAccess().getEXTERNALAssignment_0(), "rule__EnumInstanceType__EXTERNALAssignment_0");
put(grammarAccess.getEnumInstanceTypeAccess().getINTERNALAssignment_1(), "rule__EnumInstanceType__INTERNALAssignment_1");
}
};
}

View File

@ -4,13 +4,13 @@
'->'=131
'.'=132
':'=130
';'=117
';'=113
'='=119
'@'=125
'UNDEFINED'=97
'['=128
']'=129
'`include'=113
'`include'=114
'accesswidth'=81
'activehigh'=60
'activelow'=61
@ -78,7 +78,7 @@
'overflow'=44
'posedge'=108
'precedence'=85
'property'=114
'property'=115
'r'=102
'rclr'=26
'ref'=19
@ -118,9 +118,9 @@
'woset'=28
'wr'=101
'xored'=42
'{'=115
'{'=116
'|'=122
'}'=116
'}'=117
RULE_ESCAPE_JSP=10
RULE_ESCAPE_ORDL=11
RULE_ID=5

View File

@ -2282,11 +2282,10 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = T__113;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:112:8: ( '`include' )
// InternalRDL.g:112:10: '`include'
// InternalRDL.g:112:8: ( ';' )
// InternalRDL.g:112:10: ';'
{
match("`include");
match(';');
}
@ -2303,10 +2302,10 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = T__114;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:113:8: ( 'property' )
// InternalRDL.g:113:10: 'property'
// InternalRDL.g:113:8: ( '`include' )
// InternalRDL.g:113:10: '`include'
{
match("property");
match("`include");
}
@ -2324,10 +2323,11 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = T__115;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:114:8: ( '{' )
// InternalRDL.g:114:10: '{'
// InternalRDL.g:114:8: ( 'property' )
// InternalRDL.g:114:10: 'property'
{
match('{');
match("property");
}
@ -2344,10 +2344,10 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = T__116;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:115:8: ( '}' )
// InternalRDL.g:115:10: '}'
// InternalRDL.g:115:8: ( '{' )
// InternalRDL.g:115:10: '{'
{
match('}');
match('{');
}
@ -2364,10 +2364,10 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = T__117;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:116:8: ( ';' )
// InternalRDL.g:116:10: ';'
// InternalRDL.g:116:8: ( '}' )
// InternalRDL.g:116:10: '}'
{
match(';');
match('}');
}
@ -2733,10 +2733,10 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_ID;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7642:9: ( ( '\\\\' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
// InternalRDL.g:7642:11: ( '\\\\' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
// InternalRDL.g:7882:9: ( ( '\\\\' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
// InternalRDL.g:7882:11: ( '\\\\' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
{
// InternalRDL.g:7642:11: ( '\\\\' )?
// InternalRDL.g:7882:11: ( '\\\\' )?
int alt1=2;
int LA1_0 = input.LA(1);
@ -2745,7 +2745,7 @@ public class InternalRDLLexer extends Lexer {
}
switch (alt1) {
case 1 :
// InternalRDL.g:7642:11: '\\\\'
// InternalRDL.g:7882:11: '\\\\'
{
match('\\');
@ -2763,7 +2763,7 @@ public class InternalRDLLexer extends Lexer {
recover(mse);
throw mse;}
// InternalRDL.g:7642:41: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
// InternalRDL.g:7882:41: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
loop2:
do {
int alt2=2;
@ -2812,10 +2812,10 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_WS;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7644:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
// InternalRDL.g:7644:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
// InternalRDL.g:7884:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
// InternalRDL.g:7884:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
{
// InternalRDL.g:7644:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
// InternalRDL.g:7884:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
int cnt3=0;
loop3:
do {
@ -2869,12 +2869,12 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_ML_COMMENT;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7646:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
// InternalRDL.g:7646:19: '/*' ( options {greedy=false; } : . )* '*/'
// InternalRDL.g:7886:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
// InternalRDL.g:7886:19: '/*' ( options {greedy=false; } : . )* '*/'
{
match("/*");
// InternalRDL.g:7646:24: ( options {greedy=false; } : . )*
// InternalRDL.g:7886:24: ( options {greedy=false; } : . )*
loop4:
do {
int alt4=2;
@ -2899,7 +2899,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt4) {
case 1 :
// InternalRDL.g:7646:52: .
// InternalRDL.g:7886:52: .
{
matchAny();
@ -2929,12 +2929,12 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_SL_COMMENT;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7648:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
// InternalRDL.g:7648:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
// InternalRDL.g:7888:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
// InternalRDL.g:7888:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
{
match("//");
// InternalRDL.g:7648:24: (~ ( ( '\\n' | '\\r' ) ) )*
// InternalRDL.g:7888:24: (~ ( ( '\\n' | '\\r' ) ) )*
loop5:
do {
int alt5=2;
@ -2947,7 +2947,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt5) {
case 1 :
// InternalRDL.g:7648:24: ~ ( ( '\\n' | '\\r' ) )
// InternalRDL.g:7888:24: ~ ( ( '\\n' | '\\r' ) )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
input.consume();
@ -2967,7 +2967,7 @@ public class InternalRDLLexer extends Lexer {
}
} while (true);
// InternalRDL.g:7648:40: ( ( '\\r' )? '\\n' )?
// InternalRDL.g:7888:40: ( ( '\\r' )? '\\n' )?
int alt7=2;
int LA7_0 = input.LA(1);
@ -2976,9 +2976,9 @@ public class InternalRDLLexer extends Lexer {
}
switch (alt7) {
case 1 :
// InternalRDL.g:7648:41: ( '\\r' )? '\\n'
// InternalRDL.g:7888:41: ( '\\r' )? '\\n'
{
// InternalRDL.g:7648:41: ( '\\r' )?
// InternalRDL.g:7888:41: ( '\\r' )?
int alt6=2;
int LA6_0 = input.LA(1);
@ -2987,7 +2987,7 @@ public class InternalRDLLexer extends Lexer {
}
switch (alt6) {
case 1 :
// InternalRDL.g:7648:41: '\\r'
// InternalRDL.g:7888:41: '\\r'
{
match('\r');
@ -3019,12 +3019,12 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_ESCAPE_JSP;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7650:17: ( '<%' ( options {greedy=false; } : . )* '%>' )
// InternalRDL.g:7650:19: '<%' ( options {greedy=false; } : . )* '%>'
// InternalRDL.g:7890:17: ( '<%' ( options {greedy=false; } : . )* '%>' )
// InternalRDL.g:7890:19: '<%' ( options {greedy=false; } : . )* '%>'
{
match("<%");
// InternalRDL.g:7650:24: ( options {greedy=false; } : . )*
// InternalRDL.g:7890:24: ( options {greedy=false; } : . )*
loop8:
do {
int alt8=2;
@ -3049,7 +3049,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt8) {
case 1 :
// InternalRDL.g:7650:52: .
// InternalRDL.g:7890:52: .
{
matchAny();
@ -3079,11 +3079,11 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_ESCAPE_ORDL;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7652:18: ( '(' ( options {greedy=false; } : . )* ')' )
// InternalRDL.g:7652:20: '(' ( options {greedy=false; } : . )* ')'
// InternalRDL.g:7892:18: ( '(' ( options {greedy=false; } : . )* ')' )
// InternalRDL.g:7892:20: '(' ( options {greedy=false; } : . )* ')'
{
match('(');
// InternalRDL.g:7652:24: ( options {greedy=false; } : . )*
// InternalRDL.g:7892:24: ( options {greedy=false; } : . )*
loop9:
do {
int alt9=2;
@ -3099,7 +3099,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt9) {
case 1 :
// InternalRDL.g:7652:52: .
// InternalRDL.g:7892:52: .
{
matchAny();
@ -3128,17 +3128,17 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_NUM;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7654:10: ( ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ ) )
// InternalRDL.g:7654:12: ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ )
// InternalRDL.g:7894:10: ( ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ ) )
// InternalRDL.g:7894:12: ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ )
{
// InternalRDL.g:7654:12: ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ )
// InternalRDL.g:7894:12: ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ )
int alt20=6;
alt20 = dfa20.predict(input);
switch (alt20) {
case 1 :
// InternalRDL.g:7654:13: ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+
// InternalRDL.g:7894:13: ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+
{
// InternalRDL.g:7654:13: ( '0' .. '9' )+
// InternalRDL.g:7894:13: ( '0' .. '9' )+
int cnt10=0;
loop10:
do {
@ -3152,7 +3152,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt10) {
case 1 :
// InternalRDL.g:7654:14: '0' .. '9'
// InternalRDL.g:7894:14: '0' .. '9'
{
matchRange('0','9');
@ -3170,7 +3170,7 @@ public class InternalRDLLexer extends Lexer {
match("'b");
// InternalRDL.g:7654:31: ( '0' | '1' | '_' )+
// InternalRDL.g:7894:31: ( '0' | '1' | '_' )+
int cnt11=0;
loop11:
do {
@ -3212,9 +3212,9 @@ public class InternalRDLLexer extends Lexer {
}
break;
case 2 :
// InternalRDL.g:7654:46: ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+
// InternalRDL.g:7894:46: ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+
{
// InternalRDL.g:7654:46: ( '0' .. '9' )+
// InternalRDL.g:7894:46: ( '0' .. '9' )+
int cnt12=0;
loop12:
do {
@ -3228,7 +3228,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt12) {
case 1 :
// InternalRDL.g:7654:47: '0' .. '9'
// InternalRDL.g:7894:47: '0' .. '9'
{
matchRange('0','9');
@ -3246,7 +3246,7 @@ public class InternalRDLLexer extends Lexer {
match("'o");
// InternalRDL.g:7654:64: ( '0' .. '7' | '_' )+
// InternalRDL.g:7894:64: ( '0' .. '7' | '_' )+
int cnt13=0;
loop13:
do {
@ -3288,9 +3288,9 @@ public class InternalRDLLexer extends Lexer {
}
break;
case 3 :
// InternalRDL.g:7654:80: ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
// InternalRDL.g:7894:80: ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
{
// InternalRDL.g:7654:80: ( '0' .. '9' )+
// InternalRDL.g:7894:80: ( '0' .. '9' )+
int cnt14=0;
loop14:
do {
@ -3304,7 +3304,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt14) {
case 1 :
// InternalRDL.g:7654:81: '0' .. '9'
// InternalRDL.g:7894:81: '0' .. '9'
{
matchRange('0','9');
@ -3322,7 +3322,7 @@ public class InternalRDLLexer extends Lexer {
match("'h");
// InternalRDL.g:7654:98: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
// InternalRDL.g:7894:98: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
int cnt15=0;
loop15:
do {
@ -3364,9 +3364,9 @@ public class InternalRDLLexer extends Lexer {
}
break;
case 4 :
// InternalRDL.g:7654:132: ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+
// InternalRDL.g:7894:132: ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+
{
// InternalRDL.g:7654:132: ( '0' .. '9' )+
// InternalRDL.g:7894:132: ( '0' .. '9' )+
int cnt16=0;
loop16:
do {
@ -3380,7 +3380,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt16) {
case 1 :
// InternalRDL.g:7654:133: '0' .. '9'
// InternalRDL.g:7894:133: '0' .. '9'
{
matchRange('0','9');
@ -3398,7 +3398,7 @@ public class InternalRDLLexer extends Lexer {
match("'d");
// InternalRDL.g:7654:150: ( '0' .. '9' | '_' )+
// InternalRDL.g:7894:150: ( '0' .. '9' | '_' )+
int cnt17=0;
loop17:
do {
@ -3440,11 +3440,11 @@ public class InternalRDLLexer extends Lexer {
}
break;
case 5 :
// InternalRDL.g:7654:166: '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
// InternalRDL.g:7894:166: '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
{
match("0x");
// InternalRDL.g:7654:171: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
// InternalRDL.g:7894:171: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+
int cnt18=0;
loop18:
do {
@ -3486,9 +3486,9 @@ public class InternalRDLLexer extends Lexer {
}
break;
case 6 :
// InternalRDL.g:7654:201: ( '0' .. '9' )+
// InternalRDL.g:7894:201: ( '0' .. '9' )+
{
// InternalRDL.g:7654:201: ( '0' .. '9' )+
// InternalRDL.g:7894:201: ( '0' .. '9' )+
int cnt19=0;
loop19:
do {
@ -3502,7 +3502,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt19) {
case 1 :
// InternalRDL.g:7654:202: '0' .. '9'
// InternalRDL.g:7894:202: '0' .. '9'
{
matchRange('0','9');
@ -3540,11 +3540,11 @@ public class InternalRDLLexer extends Lexer {
try {
int _type = RULE_STR;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalRDL.g:7656:10: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
// InternalRDL.g:7656:12: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
// InternalRDL.g:7896:10: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
// InternalRDL.g:7896:12: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
{
match('\"');
// InternalRDL.g:7656:16: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
// InternalRDL.g:7896:16: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
loop21:
do {
int alt21=3;
@ -3560,7 +3560,7 @@ public class InternalRDLLexer extends Lexer {
switch (alt21) {
case 1 :
// InternalRDL.g:7656:17: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
// InternalRDL.g:7896:17: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
{
match('\\');
if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
@ -3576,7 +3576,7 @@ public class InternalRDLLexer extends Lexer {
}
break;
case 2 :
// InternalRDL.g:7656:62: ~ ( ( '\\\\' | '\"' ) )
// InternalRDL.g:7896:62: ~ ( ( '\\\\' | '\"' ) )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
input.consume();
@ -4593,7 +4593,7 @@ public class InternalRDLLexer extends Lexer {
this.transition = DFA20_transition;
}
public String getDescription() {
return "7654:12: ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ )";
return "7894:12: ( ( '0' .. '9' )+ '\\'b' ( '0' | '1' | '_' )+ | ( '0' .. '9' )+ '\\'o' ( '0' .. '7' | '_' )+ | ( '0' .. '9' )+ '\\'h' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ | ( '0' .. '9' )+ '\\'d' ( '0' .. '9' | '_' )+ | '0x' ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )+ | ( '0' .. '9' )+ )";
}
}
static final String DFA22_eotS =
@ -4605,11 +4605,11 @@ public class InternalRDLLexer extends Lexer {
static final String DFA22_maxS =
"\1\175\1\171\1\165\1\162\1\163\1\172\1\165\1\157\1\172\1\167\1\156\1\166\1\157\1\160\1\170\2\163\1\156\1\171\1\162\1\116\21\uffff\1\57\4\uffff\1\162\1\156\1\172\1\141\1\156\1\164\1\155\1\172\1\170\1\156\1\164\1\147\1\151\1\144\1\154\1\142\1\144\1\171\1\164\1\163\1\166\1\154\1\172\1\uffff\1\145\2\154\1\163\1\156\1\163\2\172\1\uffff\1\172\1\154\1\164\2\145\1\162\2\165\1\157\1\162\1\165\2\164\1\142\1\166\1\142\1\163\1\144\1\162\1\165\1\160\1\157\1\163\1\104\2\uffff\1\151\1\143\1\156\1\147\1\145\1\157\1\143\1\uffff\1\162\1\143\1\165\1\142\1\145\1\uffff\1\164\1\145\1\163\1\154\1\150\1\145\1\144\1\162\1\172\1\147\1\151\1\145\1\156\1\151\1\145\2\172\1\145\1\164\1\144\1\162\1\uffff\1\154\1\163\1\154\1\143\1\162\1\141\1\164\1\154\1\145\1\172\2\uffff\1\145\1\154\1\156\1\141\1\uffff\1\164\2\162\1\144\1\162\1\145\1\156\1\160\1\151\1\143\1\145\1\157\1\142\1\155\1\145\1\164\1\60\1\145\1\60\1\153\4\145\1\143\1\160\1\145\1\105\1\156\1\153\1\141\1\154\1\172\1\144\1\143\1\145\1\172\1\162\1\145\2\172\1\144\1\164\2\145\1\156\1\147\1\155\1\uffff\1\156\1\163\1\164\1\144\1\143\1\166\1\163\2\151\1\154\2\uffff\1\164\1\172\1\163\1\172\1\144\1\145\1\141\2\172\1\165\1\164\1\162\1\164\1\uffff\1\164\1\162\1\141\1\163\2\172\1\162\2\172\1\146\1\144\1\164\1\157\1\146\1\153\1\170\1\144\1\154\1\172\1\162\1\154\1\172\1\154\2\172\1\162\1\163\2\172\2\145\1\144\1\106\1\147\1\171\1\154\1\145\1\172\1\uffff\2\172\1\144\1\uffff\1\141\1\162\2\uffff\1\147\1\151\1\141\2\144\1\145\1\141\1\163\1\155\1\172\1\145\2\172\1\145\1\163\1\154\1\144\1\151\1\172\1\uffff\1\145\1\uffff\2\172\1\154\1\uffff\1\151\2\141\1\150\1\uffff\1\154\1\157\1\145\4\172\1\142\1\153\1\141\1\156\2\uffff\1\156\1\151\1\141\2\uffff\1\154\1\172\1\145\1\143\1\156\1\137\1\172\1\164\2\145\1\uffff\1\156\1\145\1\uffff\1\172\2\uffff\1\146\1\150\2\uffff\1\144\1\162\1\147\1\111\3\172\1\160\3\uffff\1\172\1\164\1\172\1\145\1\143\1\156\1\147\1\151\1\172\1\160\1\163\1\145\1\uffff\1\162\2\uffff\1\154\1\167\1\145\1\164\1\147\1\151\1\uffff\1\164\1\162\1\151\2\uffff\1\151\1\144\1\154\1\164\1\162\1\164\1\155\1\163\4\uffff\1\154\1\172\1\163\2\141\1\144\1\154\1\157\1\uffff\1\162\1\164\1\145\1\162\1\uffff\1\142\2\172\1\141\1\145\1\uffff\1\154\1\157\1\145\1\164\1\145\1\116\1\uffff\1\151\1\uffff\1\151\1\uffff\1\165\1\170\1\uffff\1\145\1\uffff\1\172\1\153\1\172\1\145\1\141\1\uffff\1\172\1\151\1\156\1\172\1\151\1\157\1\151\1\172\1\150\1\156\1\147\1\172\1\145\1\144\1\147\1\164\2\165\1\145\1\172\1\160\1\164\1\145\1\uffff\1\153\1\142\1\154\1\164\1\165\1\167\2\172\1\156\1\145\1\165\2\uffff\1\154\1\156\1\157\1\154\1\156\1\171\1\172\1\105\1\164\1\144\1\154\1\164\1\172\1\uffff\1\171\1\uffff\1\172\1\156\1\uffff\1\156\1\164\1\uffff\1\147\1\167\1\144\1\uffff\2\172\1\156\1\172\1\uffff\1\163\1\164\1\156\1\150\1\145\1\162\1\163\1\uffff\1\141\3\172\1\154\1\172\1\150\1\145\1\172\2\uffff\1\164\2\163\1\172\1\144\1\167\1\144\1\143\1\172\1\uffff\1\104\1\172\1\164\1\163\1\142\1\uffff\1\172\1\uffff\1\172\1\147\1\172\1\150\1\172\1\164\2\uffff\1\141\1\uffff\1\145\1\150\3\172\1\141\1\150\1\162\3\uffff\1\145\1\uffff\2\172\1\uffff\1\172\1\145\1\172\1\uffff\1\151\2\172\1\145\1\uffff\1\172\1\uffff\1\150\1\145\1\165\2\uffff\1\172\1\uffff\1\172\1\uffff\1\150\1\154\1\164\1\172\3\uffff\1\164\1\157\1\145\1\172\3\uffff\1\164\1\uffff\1\141\2\uffff\1\172\1\uffff\2\172\1\163\2\uffff\3\172\1\uffff\1\145\1\154\1\172\1\uffff\1\172\1\156\3\uffff\1\172\3\uffff\1\172\1\144\2\uffff\1\172\2\uffff\1\172\2\uffff";
static final String DFA22_acceptS =
"\25\uffff\1\146\1\150\1\151\1\152\1\154\1\157\1\161\1\162\1\163\1\164\1\165\1\166\1\167\1\170\1\171\1\174\1\175\1\uffff\1\u0080\1\u0081\1\u0082\1\u0083\27\uffff\1\133\10\uffff\1\134\30\uffff\1\176\1\177\7\uffff\1\107\5\uffff\1\135\25\uffff\1\131\12\uffff\1\22\1\132\4\uffff\1\110\60\uffff\1\12\12\uffff\1\5\1\10\15\uffff\1\23\46\uffff\1\24\3\uffff\1\55\2\uffff\1\13\1\125\23\uffff\1\16\1\uffff\1\17\3\uffff\1\14\4\uffff\1\66\13\uffff\1\124\1\34\3\uffff\1\65\1\36\12\uffff\1\172\2\uffff\1\54\1\uffff\1\53\1\116\2\uffff\1\127\1\153\10\uffff\1\25\1\30\1\31\14\uffff\1\160\1\uffff\1\35\1\56\6\uffff\1\44\3\uffff\1\7\1\130\10\uffff\1\20\1\21\1\26\1\27\10\uffff\1\37\4\uffff\1\115\5\uffff\1\144\6\uffff\1\1\1\uffff\1\32\1\uffff\1\11\2\uffff\1\52\1\uffff\1\2\5\uffff\1\51\27\uffff\1\121\13\uffff\1\113\1\117\15\uffff\1\142\1\uffff\1\3\2\uffff\1\4\2\uffff\1\15\3\uffff\1\6\4\uffff\1\47\7\uffff\1\155\11\uffff\1\40\1\136\11\uffff\1\141\5\uffff\1\73\1\uffff\1\143\6\uffff\1\103\1\137\1\uffff\1\50\10\uffff\1\100\1\120\1\122\1\uffff\1\101\2\uffff\1\41\3\uffff\1\173\4\uffff\1\147\1\uffff\1\33\3\uffff\1\145\1\46\1\uffff\1\102\1\uffff\1\62\4\uffff\1\140\1\70\1\72\4\uffff\1\67\1\71\1\156\1\uffff\1\43\1\uffff\1\64\1\75\1\uffff\1\126\3\uffff\1\111\1\61\3\uffff\1\104\3\uffff\1\123\2\uffff\1\112\1\105\1\63\1\uffff\1\106\1\114\1\60\2\uffff\1\77\1\57\1\uffff\1\42\1\74\1\uffff\1\45\1\76";
"\25\uffff\1\146\1\147\1\151\1\152\1\154\1\157\1\161\1\162\1\163\1\164\1\165\1\166\1\167\1\170\1\171\1\174\1\175\1\uffff\1\u0080\1\u0081\1\u0082\1\u0083\27\uffff\1\133\10\uffff\1\134\30\uffff\1\176\1\177\7\uffff\1\107\5\uffff\1\135\25\uffff\1\131\12\uffff\1\22\1\132\4\uffff\1\110\60\uffff\1\12\12\uffff\1\5\1\10\15\uffff\1\23\46\uffff\1\24\3\uffff\1\55\2\uffff\1\13\1\125\23\uffff\1\16\1\uffff\1\17\3\uffff\1\14\4\uffff\1\66\13\uffff\1\124\1\34\3\uffff\1\65\1\36\12\uffff\1\172\2\uffff\1\54\1\uffff\1\53\1\116\2\uffff\1\127\1\153\10\uffff\1\25\1\30\1\31\14\uffff\1\160\1\uffff\1\35\1\56\6\uffff\1\44\3\uffff\1\7\1\130\10\uffff\1\20\1\21\1\26\1\27\10\uffff\1\37\4\uffff\1\115\5\uffff\1\144\6\uffff\1\1\1\uffff\1\32\1\uffff\1\11\2\uffff\1\52\1\uffff\1\2\5\uffff\1\51\27\uffff\1\121\13\uffff\1\113\1\117\15\uffff\1\142\1\uffff\1\3\2\uffff\1\4\2\uffff\1\15\3\uffff\1\6\4\uffff\1\47\7\uffff\1\155\11\uffff\1\40\1\136\11\uffff\1\141\5\uffff\1\73\1\uffff\1\143\6\uffff\1\103\1\137\1\uffff\1\50\10\uffff\1\100\1\120\1\122\1\uffff\1\101\2\uffff\1\41\3\uffff\1\173\4\uffff\1\150\1\uffff\1\33\3\uffff\1\145\1\46\1\uffff\1\102\1\uffff\1\62\4\uffff\1\140\1\70\1\72\4\uffff\1\67\1\71\1\156\1\uffff\1\43\1\uffff\1\64\1\75\1\uffff\1\126\3\uffff\1\111\1\61\3\uffff\1\104\3\uffff\1\123\2\uffff\1\112\1\105\1\63\1\uffff\1\106\1\114\1\60\2\uffff\1\77\1\57\1\uffff\1\42\1\74\1\uffff\1\45\1\76";
static final String DFA22_specialS =
"\u0284\uffff}>";
static final String[] DFA22_transitionS = {
"\2\45\2\uffff\1\45\22\uffff\1\45\1\uffff\1\52\2\uffff\1\36\2\uffff\1\50\2\uffff\1\35\1\33\1\42\1\43\1\46\12\51\1\41\1\30\1\47\1\31\2\uffff\1\34\24\44\1\24\5\44\1\37\1\44\1\40\1\uffff\1\44\1\25\1\4\1\3\1\15\1\7\1\16\1\6\1\44\1\11\1\12\2\44\1\17\1\20\1\2\1\13\1\23\1\44\1\5\1\1\1\22\1\21\1\44\1\10\1\14\2\44\1\26\1\32\1\27",
"\2\45\2\uffff\1\45\22\uffff\1\45\1\uffff\1\52\2\uffff\1\36\2\uffff\1\50\2\uffff\1\35\1\33\1\42\1\43\1\46\12\51\1\41\1\25\1\47\1\31\2\uffff\1\34\24\44\1\24\5\44\1\37\1\44\1\40\1\uffff\1\44\1\26\1\4\1\3\1\15\1\7\1\16\1\6\1\44\1\11\1\12\2\44\1\17\1\20\1\2\1\13\1\23\1\44\1\5\1\1\1\22\1\21\1\44\1\10\1\14\2\44\1\27\1\32\1\30",
"\1\60\6\uffff\1\56\1\54\12\uffff\1\53\2\uffff\1\55\1\uffff\1\57",
"\1\62\3\uffff\1\63\11\uffff\1\64\5\uffff\1\61",
"\1\66\5\uffff\1\65\2\uffff\1\67",