Factorization of Link type grammar rule. Regenerated code.

This commit is contained in:
Arnaud Dieumegard
2019-01-17 11:04:12 +01:00
parent fd7c2de530
commit a3370dc0c7
16 changed files with 2202 additions and 888 deletions

View File

@@ -564,12 +564,16 @@ rulePatternLink returns [EObject current=null]
}
)
)
otherlv_1='--{'
{
newLeafNode(otherlv_1, grammarAccess.getPatternLinkAccess().getHyphenMinusHyphenMinusLeftCurlyBracketKeyword_1());
}
(
(
{
newCompositeNode(grammarAccess.getPatternLinkAccess().getLinkTypeLinkTypeEnumRuleCall_1_0());
newCompositeNode(grammarAccess.getPatternLinkAccess().getLinkTypeLinkTypeEnumRuleCall_2_0());
}
lv_linkType_1_0=ruleLinkType
lv_linkType_2_0=ruleLinkType
{
if ($current==null) {
$current = createModelElementForParent(grammarAccess.getPatternLinkRule());
@@ -577,12 +581,16 @@ rulePatternLink returns [EObject current=null]
set(
$current,
"linkType",
lv_linkType_1_0,
lv_linkType_2_0,
"com.irtsaintexupery.xtext.pseim.Pattern.LinkType");
afterParserOrEnumRuleCall();
}
)
)
otherlv_3='}->'
{
newLeafNode(otherlv_3, grammarAccess.getPatternLinkAccess().getRightCurlyBracketHyphenMinusGreaterThanSignKeyword_3());
}
(
(
{
@@ -591,7 +599,7 @@ rulePatternLink returns [EObject current=null]
}
}
{
newCompositeNode(grammarAccess.getPatternLinkAccess().getDstPatternPortCrossReference_2_0());
newCompositeNode(grammarAccess.getPatternLinkAccess().getDstPatternPortCrossReference_4_0());
}
ruleQualifiedID
{
@@ -695,7 +703,7 @@ ruleLinkType returns [Enumerator current=null]
}:
(
(
enumLiteral_0='-{Transpose}->'
enumLiteral_0='Transpose'
{
$current = grammarAccess.getLinkTypeAccess().getTRANSPOSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_0, grammarAccess.getLinkTypeAccess().getTRANSPOSEEnumLiteralDeclaration_0());
@@ -703,7 +711,7 @@ ruleLinkType returns [Enumerator current=null]
)
|
(
enumLiteral_1='-{Identity}->'
enumLiteral_1='Identity'
{
$current = grammarAccess.getLinkTypeAccess().getIDENTITYEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_1, grammarAccess.getLinkTypeAccess().getIDENTITYEnumLiteralDeclaration_1());
@@ -711,7 +719,7 @@ ruleLinkType returns [Enumerator current=null]
)
|
(
enumLiteral_2='-{First}->'
enumLiteral_2='First'
{
$current = grammarAccess.getLinkTypeAccess().getFIRSTEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_2, grammarAccess.getLinkTypeAccess().getFIRSTEnumLiteralDeclaration_2());
@@ -719,7 +727,7 @@ ruleLinkType returns [Enumerator current=null]
)
|
(
enumLiteral_3='-{Rotate}->'
enumLiteral_3='Rotate'
{
$current = grammarAccess.getLinkTypeAccess().getROTATEEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_3, grammarAccess.getLinkTypeAccess().getROTATEEnumLiteralDeclaration_3());
@@ -727,7 +735,7 @@ ruleLinkType returns [Enumerator current=null]
)
|
(
enumLiteral_4='-{ShiftC}->'
enumLiteral_4='ShiftC'
{
$current = grammarAccess.getLinkTypeAccess().getSHIFTCEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_4, grammarAccess.getLinkTypeAccess().getSHIFTCEnumLiteralDeclaration_4());
@@ -735,7 +743,7 @@ ruleLinkType returns [Enumerator current=null]
)
|
(
enumLiteral_5='-{ShiftP}->'
enumLiteral_5='ShiftP'
{
$current = grammarAccess.getLinkTypeAccess().getSHIFTPEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_5, grammarAccess.getLinkTypeAccess().getSHIFTPEnumLiteralDeclaration_5());
@@ -743,7 +751,7 @@ ruleLinkType returns [Enumerator current=null]
)
|
(
enumLiteral_6='-{FlattenC}->'
enumLiteral_6='FlattenC'
{
$current = grammarAccess.getLinkTypeAccess().getFLATTENCEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_6, grammarAccess.getLinkTypeAccess().getFLATTENCEnumLiteralDeclaration_6());
@@ -751,7 +759,7 @@ ruleLinkType returns [Enumerator current=null]
)
|
(
enumLiteral_7='-{ForkC}->'
enumLiteral_7='ForkC'
{
$current = grammarAccess.getLinkTypeAccess().getFORKCEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_7, grammarAccess.getLinkTypeAccess().getFORKCEnumLiteralDeclaration_7());
@@ -759,7 +767,7 @@ ruleLinkType returns [Enumerator current=null]
)
|
(
enumLiteral_8='-{ForkP}->'
enumLiteral_8='ForkP'
{
$current = grammarAccess.getLinkTypeAccess().getFORKPEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_8, grammarAccess.getLinkTypeAccess().getFORKPEnumLiteralDeclaration_8());
@@ -767,7 +775,7 @@ ruleLinkType returns [Enumerator current=null]
)
|
(
enumLiteral_9='-{JoinC}->'
enumLiteral_9='JoinC'
{
$current = grammarAccess.getLinkTypeAccess().getJOINCEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_9, grammarAccess.getLinkTypeAccess().getJOINCEnumLiteralDeclaration_9());
@@ -775,7 +783,7 @@ ruleLinkType returns [Enumerator current=null]
)
|
(
enumLiteral_10='-{JoinP}->'
enumLiteral_10='JoinP'
{
$current = grammarAccess.getLinkTypeAccess().getJOINPEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_10, grammarAccess.getLinkTypeAccess().getJOINPEnumLiteralDeclaration_10());
@@ -783,7 +791,7 @@ ruleLinkType returns [Enumerator current=null]
)
|
(
enumLiteral_11='-{Last}->'
enumLiteral_11='Last'
{
$current = grammarAccess.getLinkTypeAccess().getLASTEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_11, grammarAccess.getLinkTypeAccess().getLASTEnumLiteralDeclaration_11());

View File

@@ -1,29 +1,31 @@
'('=12
')'=14
','=13
'-{First}->'=27
'-{FlattenC}->'=31
'-{ForkC}->'=32
'-{ForkP}->'=33
'-{Identity}->'=26
'-{JoinC}->'=34
'-{JoinP}->'=35
'-{Last}->'=36
'-{Rotate}->'=28
'-{ShiftC}->'=29
'-{ShiftP}->'=30
'-{Transpose}->'=25
'.'=20
'--{'=20
'.'=22
'First'=29
'FlattenC'=33
'ForkC'=34
'ForkP'=35
'Identity'=28
'JoinC'=36
'JoinP'=37
'Last'=38
'Rotate'=30
'ShiftC'=31
'ShiftP'=32
'Transpose'=27
'['=18
']'=19
'component'=17
'in'=22
'inout'=24
'out'=23
'in'=24
'inout'=26
'out'=25
'pattern'=11
'unspec'=21
'unspec'=23
'{'=15
'}'=16
'}->'=21
RULE_ANY_OTHER=10
RULE_ID=4
RULE_INT=5
@@ -57,3 +59,5 @@ T__33=33
T__34=34
T__35=35
T__36=36
T__37=37
T__38=38

View File

@@ -16,7 +16,9 @@ public class InternalPatternLexer extends Lexer {
public static final int RULE_SL_COMMENT=8;
public static final int T__19=19;
public static final int T__15=15;
public static final int T__37=37;
public static final int T__16=16;
public static final int T__38=38;
public static final int T__17=17;
public static final int T__18=18;
public static final int T__11=11;
@@ -247,10 +249,11 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__20;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:20:7: ( '.' )
// InternalPattern.g:20:9: '.'
// InternalPattern.g:20:7: ( '--{' )
// InternalPattern.g:20:9: '--{'
{
match('.');
match("--{");
}
@@ -267,10 +270,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__21;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:21:7: ( 'unspec' )
// InternalPattern.g:21:9: 'unspec'
// InternalPattern.g:21:7: ( '}->' )
// InternalPattern.g:21:9: '}->'
{
match("unspec");
match("}->");
}
@@ -288,11 +291,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__22;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:22:7: ( 'in' )
// InternalPattern.g:22:9: 'in'
// InternalPattern.g:22:7: ( '.' )
// InternalPattern.g:22:9: '.'
{
match("in");
match('.');
}
@@ -309,10 +311,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__23;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:23:7: ( 'out' )
// InternalPattern.g:23:9: 'out'
// InternalPattern.g:23:7: ( 'unspec' )
// InternalPattern.g:23:9: 'unspec'
{
match("out");
match("unspec");
}
@@ -330,10 +332,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__24;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:24:7: ( 'inout' )
// InternalPattern.g:24:9: 'inout'
// InternalPattern.g:24:7: ( 'in' )
// InternalPattern.g:24:9: 'in'
{
match("inout");
match("in");
}
@@ -351,10 +353,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__25;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:25:7: ( '-{Transpose}->' )
// InternalPattern.g:25:9: '-{Transpose}->'
// InternalPattern.g:25:7: ( 'out' )
// InternalPattern.g:25:9: 'out'
{
match("-{Transpose}->");
match("out");
}
@@ -372,10 +374,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__26;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:26:7: ( '-{Identity}->' )
// InternalPattern.g:26:9: '-{Identity}->'
// InternalPattern.g:26:7: ( 'inout' )
// InternalPattern.g:26:9: 'inout'
{
match("-{Identity}->");
match("inout");
}
@@ -393,10 +395,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__27;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:27:7: ( '-{First}->' )
// InternalPattern.g:27:9: '-{First}->'
// InternalPattern.g:27:7: ( 'Transpose' )
// InternalPattern.g:27:9: 'Transpose'
{
match("-{First}->");
match("Transpose");
}
@@ -414,10 +416,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__28;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:28:7: ( '-{Rotate}->' )
// InternalPattern.g:28:9: '-{Rotate}->'
// InternalPattern.g:28:7: ( 'Identity' )
// InternalPattern.g:28:9: 'Identity'
{
match("-{Rotate}->");
match("Identity");
}
@@ -435,10 +437,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__29;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:29:7: ( '-{ShiftC}->' )
// InternalPattern.g:29:9: '-{ShiftC}->'
// InternalPattern.g:29:7: ( 'First' )
// InternalPattern.g:29:9: 'First'
{
match("-{ShiftC}->");
match("First");
}
@@ -456,10 +458,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__30;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:30:7: ( '-{ShiftP}->' )
// InternalPattern.g:30:9: '-{ShiftP}->'
// InternalPattern.g:30:7: ( 'Rotate' )
// InternalPattern.g:30:9: 'Rotate'
{
match("-{ShiftP}->");
match("Rotate");
}
@@ -477,10 +479,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__31;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:31:7: ( '-{FlattenC}->' )
// InternalPattern.g:31:9: '-{FlattenC}->'
// InternalPattern.g:31:7: ( 'ShiftC' )
// InternalPattern.g:31:9: 'ShiftC'
{
match("-{FlattenC}->");
match("ShiftC");
}
@@ -498,10 +500,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__32;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:32:7: ( '-{ForkC}->' )
// InternalPattern.g:32:9: '-{ForkC}->'
// InternalPattern.g:32:7: ( 'ShiftP' )
// InternalPattern.g:32:9: 'ShiftP'
{
match("-{ForkC}->");
match("ShiftP");
}
@@ -519,10 +521,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__33;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:33:7: ( '-{ForkP}->' )
// InternalPattern.g:33:9: '-{ForkP}->'
// InternalPattern.g:33:7: ( 'FlattenC' )
// InternalPattern.g:33:9: 'FlattenC'
{
match("-{ForkP}->");
match("FlattenC");
}
@@ -540,10 +542,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__34;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:34:7: ( '-{JoinC}->' )
// InternalPattern.g:34:9: '-{JoinC}->'
// InternalPattern.g:34:7: ( 'ForkC' )
// InternalPattern.g:34:9: 'ForkC'
{
match("-{JoinC}->");
match("ForkC");
}
@@ -561,10 +563,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__35;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:35:7: ( '-{JoinP}->' )
// InternalPattern.g:35:9: '-{JoinP}->'
// InternalPattern.g:35:7: ( 'ForkP' )
// InternalPattern.g:35:9: 'ForkP'
{
match("-{JoinP}->");
match("ForkP");
}
@@ -582,10 +584,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = T__36;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:36:7: ( '-{Last}->' )
// InternalPattern.g:36:9: '-{Last}->'
// InternalPattern.g:36:7: ( 'JoinC' )
// InternalPattern.g:36:9: 'JoinC'
{
match("-{Last}->");
match("JoinC");
}
@@ -598,15 +600,57 @@ public class InternalPatternLexer extends Lexer {
}
// $ANTLR end "T__36"
// $ANTLR start "T__37"
public final void mT__37() throws RecognitionException {
try {
int _type = T__37;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:37:7: ( 'JoinP' )
// InternalPattern.g:37:9: 'JoinP'
{
match("JoinP");
}
state.type = _type;
state.channel = _channel;
}
finally {
}
}
// $ANTLR end "T__37"
// $ANTLR start "T__38"
public final void mT__38() throws RecognitionException {
try {
int _type = T__38;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:38:7: ( 'Last' )
// InternalPattern.g:38:9: 'Last'
{
match("Last");
}
state.type = _type;
state.channel = _channel;
}
finally {
}
}
// $ANTLR end "T__38"
// $ANTLR start "RULE_ID"
public final void mRULE_ID() throws RecognitionException {
try {
int _type = RULE_ID;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:795:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
// InternalPattern.g:795:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
// InternalPattern.g:803:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
// InternalPattern.g:803:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
{
// InternalPattern.g:795:11: ( '^' )?
// InternalPattern.g:803:11: ( '^' )?
int alt1=2;
int LA1_0 = input.LA(1);
@@ -615,7 +659,7 @@ public class InternalPatternLexer extends Lexer {
}
switch (alt1) {
case 1 :
// InternalPattern.g:795:11: '^'
// InternalPattern.g:803:11: '^'
{
match('^');
@@ -633,7 +677,7 @@ public class InternalPatternLexer extends Lexer {
recover(mse);
throw mse;}
// InternalPattern.g:795:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
// InternalPattern.g:803:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
loop2:
do {
int alt2=2;
@@ -682,10 +726,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = RULE_INT;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:797:10: ( ( '0' .. '9' )+ )
// InternalPattern.g:797:12: ( '0' .. '9' )+
// InternalPattern.g:805:10: ( ( '0' .. '9' )+ )
// InternalPattern.g:805:12: ( '0' .. '9' )+
{
// InternalPattern.g:797:12: ( '0' .. '9' )+
// InternalPattern.g:805:12: ( '0' .. '9' )+
int cnt3=0;
loop3:
do {
@@ -699,7 +743,7 @@ public class InternalPatternLexer extends Lexer {
switch (alt3) {
case 1 :
// InternalPattern.g:797:13: '0' .. '9'
// InternalPattern.g:805:13: '0' .. '9'
{
matchRange('0','9');
@@ -731,10 +775,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = RULE_STRING;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:799:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
// InternalPattern.g:799:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
// InternalPattern.g:807:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
// InternalPattern.g:807:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
{
// InternalPattern.g:799:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
// InternalPattern.g:807:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
int alt6=2;
int LA6_0 = input.LA(1);
@@ -752,10 +796,10 @@ public class InternalPatternLexer extends Lexer {
}
switch (alt6) {
case 1 :
// InternalPattern.g:799:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
// InternalPattern.g:807:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
{
match('\"');
// InternalPattern.g:799:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
// InternalPattern.g:807:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
loop4:
do {
int alt4=3;
@@ -771,7 +815,7 @@ public class InternalPatternLexer extends Lexer {
switch (alt4) {
case 1 :
// InternalPattern.g:799:21: '\\\\' .
// InternalPattern.g:807:21: '\\\\' .
{
match('\\');
matchAny();
@@ -779,7 +823,7 @@ public class InternalPatternLexer extends Lexer {
}
break;
case 2 :
// InternalPattern.g:799:28: ~ ( ( '\\\\' | '\"' ) )
// InternalPattern.g:807:28: ~ ( ( '\\\\' | '\"' ) )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
input.consume();
@@ -804,10 +848,10 @@ public class InternalPatternLexer extends Lexer {
}
break;
case 2 :
// InternalPattern.g:799:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
// InternalPattern.g:807:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
{
match('\'');
// InternalPattern.g:799:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
// InternalPattern.g:807:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
loop5:
do {
int alt5=3;
@@ -823,7 +867,7 @@ public class InternalPatternLexer extends Lexer {
switch (alt5) {
case 1 :
// InternalPattern.g:799:54: '\\\\' .
// InternalPattern.g:807:54: '\\\\' .
{
match('\\');
matchAny();
@@ -831,7 +875,7 @@ public class InternalPatternLexer extends Lexer {
}
break;
case 2 :
// InternalPattern.g:799:61: ~ ( ( '\\\\' | '\\'' ) )
// InternalPattern.g:807:61: ~ ( ( '\\\\' | '\\'' ) )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
input.consume();
@@ -874,12 +918,12 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = RULE_ML_COMMENT;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:801:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
// InternalPattern.g:801:19: '/*' ( options {greedy=false; } : . )* '*/'
// InternalPattern.g:809:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
// InternalPattern.g:809:19: '/*' ( options {greedy=false; } : . )* '*/'
{
match("/*");
// InternalPattern.g:801:24: ( options {greedy=false; } : . )*
// InternalPattern.g:809:24: ( options {greedy=false; } : . )*
loop7:
do {
int alt7=2;
@@ -904,7 +948,7 @@ public class InternalPatternLexer extends Lexer {
switch (alt7) {
case 1 :
// InternalPattern.g:801:52: .
// InternalPattern.g:809:52: .
{
matchAny();
@@ -934,12 +978,12 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = RULE_SL_COMMENT;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:803:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
// InternalPattern.g:803:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
// InternalPattern.g:811:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
// InternalPattern.g:811:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
{
match("//");
// InternalPattern.g:803:24: (~ ( ( '\\n' | '\\r' ) ) )*
// InternalPattern.g:811:24: (~ ( ( '\\n' | '\\r' ) ) )*
loop8:
do {
int alt8=2;
@@ -952,7 +996,7 @@ public class InternalPatternLexer extends Lexer {
switch (alt8) {
case 1 :
// InternalPattern.g:803:24: ~ ( ( '\\n' | '\\r' ) )
// InternalPattern.g:811: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();
@@ -972,7 +1016,7 @@ public class InternalPatternLexer extends Lexer {
}
} while (true);
// InternalPattern.g:803:40: ( ( '\\r' )? '\\n' )?
// InternalPattern.g:811:40: ( ( '\\r' )? '\\n' )?
int alt10=2;
int LA10_0 = input.LA(1);
@@ -981,9 +1025,9 @@ public class InternalPatternLexer extends Lexer {
}
switch (alt10) {
case 1 :
// InternalPattern.g:803:41: ( '\\r' )? '\\n'
// InternalPattern.g:811:41: ( '\\r' )? '\\n'
{
// InternalPattern.g:803:41: ( '\\r' )?
// InternalPattern.g:811:41: ( '\\r' )?
int alt9=2;
int LA9_0 = input.LA(1);
@@ -992,7 +1036,7 @@ public class InternalPatternLexer extends Lexer {
}
switch (alt9) {
case 1 :
// InternalPattern.g:803:41: '\\r'
// InternalPattern.g:811:41: '\\r'
{
match('\r');
@@ -1024,10 +1068,10 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = RULE_WS;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:805:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
// InternalPattern.g:805:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
// InternalPattern.g:813:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
// InternalPattern.g:813:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
{
// InternalPattern.g:805:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
// InternalPattern.g:813:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
int cnt11=0;
loop11:
do {
@@ -1081,8 +1125,8 @@ public class InternalPatternLexer extends Lexer {
try {
int _type = RULE_ANY_OTHER;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalPattern.g:807:16: ( . )
// InternalPattern.g:807:18: .
// InternalPattern.g:815:16: ( . )
// InternalPattern.g:815:18: .
{
matchAny();
@@ -1097,8 +1141,8 @@ public class InternalPatternLexer extends Lexer {
// $ANTLR end "RULE_ANY_OTHER"
public void mTokens() throws RecognitionException {
// InternalPattern.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
int alt12=33;
// InternalPattern.g:1:8: ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
int alt12=35;
alt12 = dfa12.predict(input);
switch (alt12) {
case 1 :
@@ -1284,49 +1328,63 @@ public class InternalPatternLexer extends Lexer {
}
break;
case 27 :
// InternalPattern.g:1:166: RULE_ID
// InternalPattern.g:1:166: T__37
{
mT__37();
}
break;
case 28 :
// InternalPattern.g:1:172: T__38
{
mT__38();
}
break;
case 29 :
// InternalPattern.g:1:178: RULE_ID
{
mRULE_ID();
}
break;
case 28 :
// InternalPattern.g:1:174: RULE_INT
case 30 :
// InternalPattern.g:1:186: RULE_INT
{
mRULE_INT();
}
break;
case 29 :
// InternalPattern.g:1:183: RULE_STRING
case 31 :
// InternalPattern.g:1:195: RULE_STRING
{
mRULE_STRING();
}
break;
case 30 :
// InternalPattern.g:1:195: RULE_ML_COMMENT
case 32 :
// InternalPattern.g:1:207: RULE_ML_COMMENT
{
mRULE_ML_COMMENT();
}
break;
case 31 :
// InternalPattern.g:1:211: RULE_SL_COMMENT
case 33 :
// InternalPattern.g:1:223: RULE_SL_COMMENT
{
mRULE_SL_COMMENT();
}
break;
case 32 :
// InternalPattern.g:1:227: RULE_WS
case 34 :
// InternalPattern.g:1:239: RULE_WS
{
mRULE_WS();
}
break;
case 33 :
// InternalPattern.g:1:235: RULE_ANY_OTHER
case 35 :
// InternalPattern.g:1:247: RULE_ANY_OTHER
{
mRULE_ANY_OTHER();
@@ -1340,111 +1398,156 @@ public class InternalPatternLexer extends Lexer {
protected DFA12 dfa12 = new DFA12(this);
static final String DFA12_eotS =
"\1\uffff\1\30\5\uffff\1\30\3\uffff\3\30\2\26\2\uffff\3\26\2\uffff\1\30\6\uffff\1\30\3\uffff\1\30\1\57\1\30\6\uffff\4\30\1\uffff\1\74\7\uffff\4\30\6\uffff\3\30\1\114\3\uffff\2\30\1\122\4\uffff\1\130\1\30\7\uffff\1\30\2\uffff\1\135\1\uffff";
"\1\uffff\1\37\4\uffff\1\45\1\37\2\uffff\1\35\1\uffff\12\37\1\35\2\uffff\3\35\2\uffff\1\37\7\uffff\1\37\4\uffff\1\37\1\100\12\37\5\uffff\4\37\1\uffff\1\117\15\37\1\uffff\10\37\1\147\3\37\1\153\2\37\1\156\1\37\1\160\1\161\2\37\1\165\1\166\1\uffff\2\37\1\171\1\uffff\2\37\1\uffff\1\37\2\uffff\1\175\1\176\1\177\2\uffff\1\u0080\1\37\1\uffff\3\37\4\uffff\2\37\1\u0087\1\u0088\1\u0089\1\u008a\4\uffff";
static final String DFA12_eofS =
"\136\uffff";
"\u008b\uffff";
static final String DFA12_minS =
"\1\0\1\141\5\uffff\1\157\3\uffff\2\156\1\165\1\173\1\101\2\uffff\2\0\1\52\2\uffff\1\164\6\uffff\1\155\3\uffff\1\163\1\60\1\164\1\106\5\uffff\1\164\2\160\1\165\1\uffff\1\60\2\uffff\1\151\1\uffff\1\150\1\157\1\uffff\1\145\1\157\1\145\1\164\3\uffff\1\162\2\151\1\162\1\156\1\143\1\60\1\153\1\146\2\156\1\145\1\60\1\uffff\1\103\1\164\1\103\1\60\1\156\3\uffff\1\103\3\uffff\1\164\2\uffff\1\60\1\uffff";
"\1\0\1\141\4\uffff\1\55\1\157\2\uffff\1\55\1\uffff\2\156\1\165\1\162\1\144\1\151\1\157\1\150\1\157\1\141\1\101\2\uffff\2\0\1\52\2\uffff\1\164\7\uffff\1\155\4\uffff\1\163\1\60\1\164\1\141\1\145\1\162\1\141\1\162\1\164\2\151\1\163\5\uffff\1\164\2\160\1\165\1\uffff\1\60\2\156\1\163\1\164\1\153\1\141\1\146\1\156\1\164\1\145\1\157\1\145\1\164\1\uffff\1\163\3\164\1\103\2\164\1\103\1\60\1\162\1\156\1\143\1\60\1\160\1\151\1\60\1\145\2\60\1\145\1\103\2\60\1\uffff\1\156\1\145\1\60\1\uffff\1\157\1\164\1\uffff\1\156\2\uffff\3\60\2\uffff\1\60\1\156\1\uffff\1\163\1\171\1\103\4\uffff\1\164\1\145\4\60\4\uffff";
static final String DFA12_maxS =
"\1\uffff\1\141\5\uffff\1\157\3\uffff\2\156\1\165\1\173\1\172\2\uffff\2\uffff\1\57\2\uffff\1\164\6\uffff\1\155\3\uffff\1\163\1\172\1\164\1\124\5\uffff\1\164\2\160\1\165\1\uffff\1\172\2\uffff\1\157\1\uffff\1\150\1\157\1\uffff\1\145\1\157\1\145\1\164\3\uffff\1\162\2\151\1\162\1\156\1\143\1\172\1\153\1\146\2\156\1\145\1\172\1\uffff\1\120\1\164\1\120\1\172\1\156\3\uffff\1\120\3\uffff\1\164\2\uffff\1\172\1\uffff";
"\1\uffff\1\141\4\uffff\1\55\1\157\2\uffff\1\55\1\uffff\2\156\1\165\1\162\1\144\2\157\1\150\1\157\1\141\1\172\2\uffff\2\uffff\1\57\2\uffff\1\164\7\uffff\1\155\4\uffff\1\163\1\172\1\164\1\141\1\145\1\162\1\141\1\162\1\164\2\151\1\163\5\uffff\1\164\2\160\1\165\1\uffff\1\172\2\156\1\163\1\164\1\153\1\141\1\146\1\156\1\164\1\145\1\157\1\145\1\164\1\uffff\1\163\3\164\1\120\2\164\1\120\1\172\1\162\1\156\1\143\1\172\1\160\1\151\1\172\1\145\2\172\1\145\1\120\2\172\1\uffff\1\156\1\145\1\172\1\uffff\1\157\1\164\1\uffff\1\156\2\uffff\3\172\2\uffff\1\172\1\156\1\uffff\1\163\1\171\1\103\4\uffff\1\164\1\145\4\172\4\uffff";
static final String DFA12_acceptS =
"\2\uffff\1\2\1\3\1\4\1\5\1\6\1\uffff\1\10\1\11\1\12\5\uffff\1\33\1\34\3\uffff\1\40\1\41\1\uffff\1\33\1\2\1\3\1\4\1\5\1\6\1\uffff\1\10\1\11\1\12\4\uffff\1\34\1\35\1\36\1\37\1\40\4\uffff\1\14\1\uffff\1\17\1\20\1\uffff\1\22\2\uffff\1\32\4\uffff\1\15\1\21\1\25\15\uffff\1\16\5\uffff\1\13\1\26\1\27\1\uffff\1\30\1\31\1\1\1\uffff\1\23\1\24\1\uffff\1\7";
"\2\uffff\1\2\1\3\1\4\1\5\2\uffff\1\10\1\11\1\uffff\1\14\13\uffff\1\35\1\36\3\uffff\1\42\1\43\1\uffff\1\35\1\2\1\3\1\4\1\5\1\13\1\6\1\uffff\1\10\1\11\1\12\1\14\14\uffff\1\36\1\37\1\40\1\41\1\42\4\uffff\1\16\16\uffff\1\17\27\uffff\1\34\3\uffff\1\20\2\uffff\1\23\1\uffff\1\30\1\31\3\uffff\1\32\1\33\2\uffff\1\15\3\uffff\1\24\1\25\1\26\1\1\6\uffff\1\22\1\27\1\7\1\21";
static final String DFA12_specialS =
"\1\1\21\uffff\1\2\1\0\112\uffff}>";
"\1\2\30\uffff\1\1\1\0\160\uffff}>";
static final String[] DFA12_transitionS = {
"\11\26\2\25\2\26\1\25\22\26\1\25\1\26\1\22\4\26\1\23\1\2\1\4\2\26\1\3\1\16\1\12\1\24\12\21\7\26\32\20\1\10\1\26\1\11\1\17\1\20\1\26\2\20\1\7\5\20\1\14\5\20\1\15\1\1\4\20\1\13\5\20\1\5\1\26\1\6\uff82\26",
"\1\27",
"",
"",
"",
"",
"",
"\11\35\2\34\2\35\1\34\22\35\1\34\1\35\1\31\4\35\1\32\1\2\1\4\2\35\1\3\1\12\1\13\1\33\12\30\7\35\5\27\1\21\2\27\1\20\1\24\1\27\1\25\5\27\1\22\1\23\1\17\6\27\1\10\1\35\1\11\1\26\1\27\1\35\2\27\1\7\5\27\1\15\5\27\1\16\1\1\4\27\1\14\5\27\1\5\1\35\1\6\uff82\35",
"\1\36",
"",
"",
"",
"\1\42",
"\1\43",
"",
"\1\44",
"\1\45",
"\32\30\4\uffff\1\30\1\uffff\32\30",
"\1\46",
"",
"",
"\0\47",
"\0\47",
"\1\50\4\uffff\1\51",
"",
"\1\51",
"",
"\1\53",
"",
"",
"",
"",
"",
"",
"\1\54",
"",
"",
"",
"\1\55",
"\12\30\7\uffff\32\30\4\uffff\1\30\1\uffff\16\30\1\56\13\30",
"\1\60",
"\1\63\2\uffff\1\62\1\66\1\uffff\1\67\5\uffff\1\64\1\65\1\61",
"\1\56",
"\1\57",
"\1\60\2\uffff\1\61\2\uffff\1\62",
"\1\63",
"\1\64",
"\1\65",
"\1\66",
"\32\37\4\uffff\1\37\1\uffff\32\37",
"",
"",
"\0\70",
"\0\70",
"\1\71\4\uffff\1\72",
"",
"",
"\1\74",
"",
"",
"",
"",
"",
"\1\70",
"\1\71",
"\1\72",
"\1\73",
"",
"\12\30\7\uffff\32\30\4\uffff\1\30\1\uffff\32\30",
"",
"",
"\1\75\2\uffff\1\76\2\uffff\1\77",
"\1\75",
"",
"\1\100",
"",
"",
"",
"\1\76",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\16\37\1\77\13\37",
"\1\101",
"",
"\1\102",
"\1\103",
"\1\104",
"\1\105",
"",
"",
"",
"\1\106",
"\1\107",
"\1\110",
"\1\111",
"\1\112",
"",
"",
"",
"",
"",
"\1\113",
"\12\30\7\uffff\32\30\4\uffff\1\30\1\uffff\32\30",
"\1\114",
"\1\115",
"\1\116",
"\1\117",
"",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"\1\120",
"\1\121",
"\12\30\7\uffff\32\30\4\uffff\1\30\1\uffff\32\30",
"",
"\1\123\14\uffff\1\124",
"\1\122",
"\1\123",
"\1\124",
"\1\125",
"\1\126\14\uffff\1\127",
"\12\30\7\uffff\32\30\4\uffff\1\30\1\uffff\32\30",
"\1\126",
"\1\127",
"\1\130",
"\1\131",
"",
"",
"",
"\1\132\14\uffff\1\133",
"",
"",
"",
"\1\132",
"\1\133",
"\1\134",
"",
"\1\135",
"\1\136",
"\1\137",
"\1\140",
"\1\141\14\uffff\1\142",
"\1\143",
"\1\144",
"\1\145\14\uffff\1\146",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"\1\150",
"\1\151",
"\1\152",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"\1\154",
"\1\155",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"\1\157",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"\1\162",
"\1\163\14\uffff\1\164",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"",
"\1\167",
"\1\170",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"",
"\1\172",
"\1\173",
"",
"\1\174",
"",
"",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"",
"",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"\1\u0081",
"",
"\1\u0082",
"\1\u0083",
"\1\u0084",
"",
"",
"",
"",
"\1\u0085",
"\1\u0086",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"\12\37\7\uffff\32\37\4\uffff\1\37\1\uffff\32\37",
"",
"",
"",
"\12\30\7\uffff\32\30\4\uffff\1\30\1\uffff\32\30",
""
};
@@ -1478,23 +1581,33 @@ public class InternalPatternLexer extends Lexer {
this.transition = DFA12_transition;
}
public String getDescription() {
return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
return "1:1: Tokens : ( T__11 | T__12 | T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
IntStream input = _input;
int _s = s;
switch ( s ) {
case 0 :
int LA12_19 = input.LA(1);
int LA12_26 = input.LA(1);
s = -1;
if ( ((LA12_19>='\u0000' && LA12_19<='\uFFFF')) ) {s = 39;}
if ( ((LA12_26>='\u0000' && LA12_26<='\uFFFF')) ) {s = 56;}
else s = 22;
else s = 29;
if ( s>=0 ) return s;
break;
case 1 :
int LA12_25 = input.LA(1);
s = -1;
if ( ((LA12_25>='\u0000' && LA12_25<='\uFFFF')) ) {s = 56;}
else s = 29;
if ( s>=0 ) return s;
break;
case 2 :
int LA12_0 = input.LA(1);
s = -1;
@@ -1516,41 +1629,45 @@ public class InternalPatternLexer extends Lexer {
else if ( (LA12_0==']') ) {s = 9;}
else if ( (LA12_0=='.') ) {s = 10;}
else if ( (LA12_0=='-') ) {s = 10;}
else if ( (LA12_0=='u') ) {s = 11;}
else if ( (LA12_0=='.') ) {s = 11;}
else if ( (LA12_0=='i') ) {s = 12;}
else if ( (LA12_0=='u') ) {s = 12;}
else if ( (LA12_0=='o') ) {s = 13;}
else if ( (LA12_0=='i') ) {s = 13;}
else if ( (LA12_0=='-') ) {s = 14;}
else if ( (LA12_0=='o') ) {s = 14;}
else if ( (LA12_0=='^') ) {s = 15;}
else if ( (LA12_0=='T') ) {s = 15;}
else if ( ((LA12_0>='A' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='a' && LA12_0<='b')||(LA12_0>='d' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='n')||(LA12_0>='q' && LA12_0<='t')||(LA12_0>='v' && LA12_0<='z')) ) {s = 16;}
else if ( (LA12_0=='I') ) {s = 16;}
else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 17;}
else if ( (LA12_0=='F') ) {s = 17;}
else if ( (LA12_0=='\"') ) {s = 18;}
else if ( (LA12_0=='R') ) {s = 18;}
else if ( (LA12_0=='\'') ) {s = 19;}
else if ( (LA12_0=='S') ) {s = 19;}
else if ( (LA12_0=='/') ) {s = 20;}
else if ( (LA12_0=='J') ) {s = 20;}
else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 21;}
else if ( (LA12_0=='L') ) {s = 21;}
else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='*' && LA12_0<='+')||(LA12_0>=':' && LA12_0<='@')||LA12_0=='\\'||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 22;}
else if ( (LA12_0=='^') ) {s = 22;}
if ( s>=0 ) return s;
break;
case 2 :
int LA12_18 = input.LA(1);
else if ( ((LA12_0>='A' && LA12_0<='E')||(LA12_0>='G' && LA12_0<='H')||LA12_0=='K'||(LA12_0>='M' && LA12_0<='Q')||(LA12_0>='U' && LA12_0<='Z')||LA12_0=='_'||(LA12_0>='a' && LA12_0<='b')||(LA12_0>='d' && LA12_0<='h')||(LA12_0>='j' && LA12_0<='n')||(LA12_0>='q' && LA12_0<='t')||(LA12_0>='v' && LA12_0<='z')) ) {s = 23;}
s = -1;
if ( ((LA12_18>='\u0000' && LA12_18<='\uFFFF')) ) {s = 39;}
else if ( ((LA12_0>='0' && LA12_0<='9')) ) {s = 24;}
else s = 22;
else if ( (LA12_0=='\"') ) {s = 25;}
else if ( (LA12_0=='\'') ) {s = 26;}
else if ( (LA12_0=='/') ) {s = 27;}
else if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {s = 28;}
else if ( ((LA12_0>='\u0000' && LA12_0<='\b')||(LA12_0>='\u000B' && LA12_0<='\f')||(LA12_0>='\u000E' && LA12_0<='\u001F')||LA12_0=='!'||(LA12_0>='#' && LA12_0<='&')||(LA12_0>='*' && LA12_0<='+')||(LA12_0>=':' && LA12_0<='@')||LA12_0=='\\'||LA12_0=='`'||LA12_0=='|'||(LA12_0>='~' && LA12_0<='\uFFFF')) ) {s = 29;}
if ( s>=0 ) return s;
break;

View File

@@ -22,13 +22,15 @@ import java.util.ArrayList;
@SuppressWarnings("all")
public class InternalPatternParser extends AbstractInternalAntlrParser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'pattern'", "'('", "','", "')'", "'{'", "'}'", "'component'", "'['", "']'", "'.'", "'unspec'", "'in'", "'out'", "'inout'", "'-{Transpose}->'", "'-{Identity}->'", "'-{First}->'", "'-{Rotate}->'", "'-{ShiftC}->'", "'-{ShiftP}->'", "'-{FlattenC}->'", "'-{ForkC}->'", "'-{ForkP}->'", "'-{JoinC}->'", "'-{JoinP}->'", "'-{Last}->'"
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'pattern'", "'('", "','", "')'", "'{'", "'}'", "'component'", "'['", "']'", "'--{'", "'}->'", "'.'", "'unspec'", "'in'", "'out'", "'inout'", "'Transpose'", "'Identity'", "'First'", "'Rotate'", "'ShiftC'", "'ShiftP'", "'FlattenC'", "'ForkC'", "'ForkP'", "'JoinC'", "'JoinP'", "'Last'"
};
public static final int RULE_STRING=6;
public static final int RULE_SL_COMMENT=8;
public static final int T__19=19;
public static final int T__15=15;
public static final int T__37=37;
public static final int T__16=16;
public static final int T__38=38;
public static final int T__17=17;
public static final int T__18=18;
public static final int T__11=11;
@@ -665,7 +667,7 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
int alt8=2;
int LA8_0 = input.LA(1);
if ( ((LA8_0>=21 && LA8_0<=24)) ) {
if ( ((LA8_0>=23 && LA8_0<=26)) ) {
alt8=1;
}
switch (alt8) {
@@ -1288,22 +1290,24 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
// $ANTLR start "rulePatternLink"
// InternalPattern.g:543:1: rulePatternLink returns [EObject current=null] : ( ( ( ruleQualifiedID ) ) ( (lv_linkType_1_0= ruleLinkType ) ) ( ( ruleQualifiedID ) ) ) ;
// InternalPattern.g:543:1: rulePatternLink returns [EObject current=null] : ( ( ( ruleQualifiedID ) ) otherlv_1= '--{' ( (lv_linkType_2_0= ruleLinkType ) ) otherlv_3= '}->' ( ( ruleQualifiedID ) ) ) ;
public final EObject rulePatternLink() throws RecognitionException {
EObject current = null;
Enumerator lv_linkType_1_0 = null;
Token otherlv_1=null;
Token otherlv_3=null;
Enumerator lv_linkType_2_0 = null;
enterRule();
try {
// InternalPattern.g:549:2: ( ( ( ( ruleQualifiedID ) ) ( (lv_linkType_1_0= ruleLinkType ) ) ( ( ruleQualifiedID ) ) ) )
// InternalPattern.g:550:2: ( ( ( ruleQualifiedID ) ) ( (lv_linkType_1_0= ruleLinkType ) ) ( ( ruleQualifiedID ) ) )
// InternalPattern.g:549:2: ( ( ( ( ruleQualifiedID ) ) otherlv_1= '--{' ( (lv_linkType_2_0= ruleLinkType ) ) otherlv_3= '}->' ( ( ruleQualifiedID ) ) ) )
// InternalPattern.g:550:2: ( ( ( ruleQualifiedID ) ) otherlv_1= '--{' ( (lv_linkType_2_0= ruleLinkType ) ) otherlv_3= '}->' ( ( ruleQualifiedID ) ) )
{
// InternalPattern.g:550:2: ( ( ( ruleQualifiedID ) ) ( (lv_linkType_1_0= ruleLinkType ) ) ( ( ruleQualifiedID ) ) )
// InternalPattern.g:551:3: ( ( ruleQualifiedID ) ) ( (lv_linkType_1_0= ruleLinkType ) ) ( ( ruleQualifiedID ) )
// InternalPattern.g:550:2: ( ( ( ruleQualifiedID ) ) otherlv_1= '--{' ( (lv_linkType_2_0= ruleLinkType ) ) otherlv_3= '}->' ( ( ruleQualifiedID ) ) )
// InternalPattern.g:551:3: ( ( ruleQualifiedID ) ) otherlv_1= '--{' ( (lv_linkType_2_0= ruleLinkType ) ) otherlv_3= '}->' ( ( ruleQualifiedID ) )
{
// InternalPattern.g:551:3: ( ( ruleQualifiedID ) )
// InternalPattern.g:552:4: ( ruleQualifiedID )
@@ -1333,17 +1337,21 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
// InternalPattern.g:567:3: ( (lv_linkType_1_0= ruleLinkType ) )
// InternalPattern.g:568:4: (lv_linkType_1_0= ruleLinkType )
otherlv_1=(Token)match(input,20,FOLLOW_16);
newLeafNode(otherlv_1, grammarAccess.getPatternLinkAccess().getHyphenMinusHyphenMinusLeftCurlyBracketKeyword_1());
// InternalPattern.g:571:3: ( (lv_linkType_2_0= ruleLinkType ) )
// InternalPattern.g:572:4: (lv_linkType_2_0= ruleLinkType )
{
// InternalPattern.g:568:4: (lv_linkType_1_0= ruleLinkType )
// InternalPattern.g:569:5: lv_linkType_1_0= ruleLinkType
// InternalPattern.g:572:4: (lv_linkType_2_0= ruleLinkType )
// InternalPattern.g:573:5: lv_linkType_2_0= ruleLinkType
{
newCompositeNode(grammarAccess.getPatternLinkAccess().getLinkTypeLinkTypeEnumRuleCall_1_0());
newCompositeNode(grammarAccess.getPatternLinkAccess().getLinkTypeLinkTypeEnumRuleCall_2_0());
pushFollow(FOLLOW_16);
lv_linkType_1_0=ruleLinkType();
pushFollow(FOLLOW_17);
lv_linkType_2_0=ruleLinkType();
state._fsp--;
@@ -1354,7 +1362,7 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
set(
current,
"linkType",
lv_linkType_1_0,
lv_linkType_2_0,
"com.irtsaintexupery.xtext.pseim.Pattern.LinkType");
afterParserOrEnumRuleCall();
@@ -1364,11 +1372,15 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
// InternalPattern.g:586:3: ( ( ruleQualifiedID ) )
// InternalPattern.g:587:4: ( ruleQualifiedID )
otherlv_3=(Token)match(input,21,FOLLOW_18);
newLeafNode(otherlv_3, grammarAccess.getPatternLinkAccess().getRightCurlyBracketHyphenMinusGreaterThanSignKeyword_3());
// InternalPattern.g:594:3: ( ( ruleQualifiedID ) )
// InternalPattern.g:595:4: ( ruleQualifiedID )
{
// InternalPattern.g:587:4: ( ruleQualifiedID )
// InternalPattern.g:588:5: ruleQualifiedID
// InternalPattern.g:595:4: ( ruleQualifiedID )
// InternalPattern.g:596:5: ruleQualifiedID
{
if (current==null) {
@@ -1376,7 +1388,7 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
newCompositeNode(grammarAccess.getPatternLinkAccess().getDstPatternPortCrossReference_2_0());
newCompositeNode(grammarAccess.getPatternLinkAccess().getDstPatternPortCrossReference_4_0());
pushFollow(FOLLOW_2);
ruleQualifiedID();
@@ -1415,7 +1427,7 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
// $ANTLR start "entryRuleQualifiedID"
// InternalPattern.g:606:1: entryRuleQualifiedID returns [String current=null] : iv_ruleQualifiedID= ruleQualifiedID EOF ;
// InternalPattern.g:614:1: entryRuleQualifiedID returns [String current=null] : iv_ruleQualifiedID= ruleQualifiedID EOF ;
public final String entryRuleQualifiedID() throws RecognitionException {
String current = null;
@@ -1423,8 +1435,8 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
try {
// InternalPattern.g:606:51: (iv_ruleQualifiedID= ruleQualifiedID EOF )
// InternalPattern.g:607:2: iv_ruleQualifiedID= ruleQualifiedID EOF
// InternalPattern.g:614:51: (iv_ruleQualifiedID= ruleQualifiedID EOF )
// InternalPattern.g:615:2: iv_ruleQualifiedID= ruleQualifiedID EOF
{
newCompositeNode(grammarAccess.getQualifiedIDRule());
pushFollow(FOLLOW_1);
@@ -1451,7 +1463,7 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
// $ANTLR start "ruleQualifiedID"
// InternalPattern.g:613:1: ruleQualifiedID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) ;
// InternalPattern.g:621:1: ruleQualifiedID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) ;
public final AntlrDatatypeRuleToken ruleQualifiedID() throws RecognitionException {
AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
@@ -1463,40 +1475,40 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
enterRule();
try {
// InternalPattern.g:619:2: ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) )
// InternalPattern.g:620:2: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
// InternalPattern.g:627:2: ( (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* ) )
// InternalPattern.g:628:2: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
{
// InternalPattern.g:620:2: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
// InternalPattern.g:621:3: this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )*
// InternalPattern.g:628:2: (this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )* )
// InternalPattern.g:629:3: this_ID_0= RULE_ID (kw= '.' this_ID_2= RULE_ID )*
{
this_ID_0=(Token)match(input,RULE_ID,FOLLOW_17);
this_ID_0=(Token)match(input,RULE_ID,FOLLOW_19);
current.merge(this_ID_0);
newLeafNode(this_ID_0, grammarAccess.getQualifiedIDAccess().getIDTerminalRuleCall_0());
// InternalPattern.g:628:3: (kw= '.' this_ID_2= RULE_ID )*
// InternalPattern.g:636:3: (kw= '.' this_ID_2= RULE_ID )*
loop13:
do {
int alt13=2;
int LA13_0 = input.LA(1);
if ( (LA13_0==20) ) {
if ( (LA13_0==22) ) {
alt13=1;
}
switch (alt13) {
case 1 :
// InternalPattern.g:629:4: kw= '.' this_ID_2= RULE_ID
// InternalPattern.g:637:4: kw= '.' this_ID_2= RULE_ID
{
kw=(Token)match(input,20,FOLLOW_3);
kw=(Token)match(input,22,FOLLOW_3);
current.merge(kw);
newLeafNode(kw, grammarAccess.getQualifiedIDAccess().getFullStopKeyword_1_0());
this_ID_2=(Token)match(input,RULE_ID,FOLLOW_17);
this_ID_2=(Token)match(input,RULE_ID,FOLLOW_19);
current.merge(this_ID_2);
@@ -1535,7 +1547,7 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
// $ANTLR start "rulePatternPortDirection"
// InternalPattern.g:646:1: rulePatternPortDirection returns [Enumerator current=null] : ( (enumLiteral_0= 'unspec' ) | (enumLiteral_1= 'in' ) | (enumLiteral_2= 'out' ) | (enumLiteral_3= 'inout' ) ) ;
// InternalPattern.g:654:1: rulePatternPortDirection returns [Enumerator current=null] : ( (enumLiteral_0= 'unspec' ) | (enumLiteral_1= 'in' ) | (enumLiteral_2= 'out' ) | (enumLiteral_3= 'inout' ) ) ;
public final Enumerator rulePatternPortDirection() throws RecognitionException {
Enumerator current = null;
@@ -1548,28 +1560,28 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
enterRule();
try {
// InternalPattern.g:652:2: ( ( (enumLiteral_0= 'unspec' ) | (enumLiteral_1= 'in' ) | (enumLiteral_2= 'out' ) | (enumLiteral_3= 'inout' ) ) )
// InternalPattern.g:653:2: ( (enumLiteral_0= 'unspec' ) | (enumLiteral_1= 'in' ) | (enumLiteral_2= 'out' ) | (enumLiteral_3= 'inout' ) )
// InternalPattern.g:660:2: ( ( (enumLiteral_0= 'unspec' ) | (enumLiteral_1= 'in' ) | (enumLiteral_2= 'out' ) | (enumLiteral_3= 'inout' ) ) )
// InternalPattern.g:661:2: ( (enumLiteral_0= 'unspec' ) | (enumLiteral_1= 'in' ) | (enumLiteral_2= 'out' ) | (enumLiteral_3= 'inout' ) )
{
// InternalPattern.g:653:2: ( (enumLiteral_0= 'unspec' ) | (enumLiteral_1= 'in' ) | (enumLiteral_2= 'out' ) | (enumLiteral_3= 'inout' ) )
// InternalPattern.g:661:2: ( (enumLiteral_0= 'unspec' ) | (enumLiteral_1= 'in' ) | (enumLiteral_2= 'out' ) | (enumLiteral_3= 'inout' ) )
int alt14=4;
switch ( input.LA(1) ) {
case 21:
case 23:
{
alt14=1;
}
break;
case 22:
case 24:
{
alt14=2;
}
break;
case 23:
case 25:
{
alt14=3;
}
break;
case 24:
case 26:
{
alt14=4;
}
@@ -1583,12 +1595,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
switch (alt14) {
case 1 :
// InternalPattern.g:654:3: (enumLiteral_0= 'unspec' )
// InternalPattern.g:662:3: (enumLiteral_0= 'unspec' )
{
// InternalPattern.g:654:3: (enumLiteral_0= 'unspec' )
// InternalPattern.g:655:4: enumLiteral_0= 'unspec'
// InternalPattern.g:662:3: (enumLiteral_0= 'unspec' )
// InternalPattern.g:663:4: enumLiteral_0= 'unspec'
{
enumLiteral_0=(Token)match(input,21,FOLLOW_2);
enumLiteral_0=(Token)match(input,23,FOLLOW_2);
current = grammarAccess.getPatternPortDirectionAccess().getUNSPECIFIEDEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_0, grammarAccess.getPatternPortDirectionAccess().getUNSPECIFIEDEnumLiteralDeclaration_0());
@@ -1600,12 +1612,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
break;
case 2 :
// InternalPattern.g:662:3: (enumLiteral_1= 'in' )
// InternalPattern.g:670:3: (enumLiteral_1= 'in' )
{
// InternalPattern.g:662:3: (enumLiteral_1= 'in' )
// InternalPattern.g:663:4: enumLiteral_1= 'in'
// InternalPattern.g:670:3: (enumLiteral_1= 'in' )
// InternalPattern.g:671:4: enumLiteral_1= 'in'
{
enumLiteral_1=(Token)match(input,22,FOLLOW_2);
enumLiteral_1=(Token)match(input,24,FOLLOW_2);
current = grammarAccess.getPatternPortDirectionAccess().getINEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_1, grammarAccess.getPatternPortDirectionAccess().getINEnumLiteralDeclaration_1());
@@ -1617,12 +1629,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
break;
case 3 :
// InternalPattern.g:670:3: (enumLiteral_2= 'out' )
// InternalPattern.g:678:3: (enumLiteral_2= 'out' )
{
// InternalPattern.g:670:3: (enumLiteral_2= 'out' )
// InternalPattern.g:671:4: enumLiteral_2= 'out'
// InternalPattern.g:678:3: (enumLiteral_2= 'out' )
// InternalPattern.g:679:4: enumLiteral_2= 'out'
{
enumLiteral_2=(Token)match(input,23,FOLLOW_2);
enumLiteral_2=(Token)match(input,25,FOLLOW_2);
current = grammarAccess.getPatternPortDirectionAccess().getOUTEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_2, grammarAccess.getPatternPortDirectionAccess().getOUTEnumLiteralDeclaration_2());
@@ -1634,12 +1646,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
break;
case 4 :
// InternalPattern.g:678:3: (enumLiteral_3= 'inout' )
// InternalPattern.g:686:3: (enumLiteral_3= 'inout' )
{
// InternalPattern.g:678:3: (enumLiteral_3= 'inout' )
// InternalPattern.g:679:4: enumLiteral_3= 'inout'
// InternalPattern.g:686:3: (enumLiteral_3= 'inout' )
// InternalPattern.g:687:4: enumLiteral_3= 'inout'
{
enumLiteral_3=(Token)match(input,24,FOLLOW_2);
enumLiteral_3=(Token)match(input,26,FOLLOW_2);
current = grammarAccess.getPatternPortDirectionAccess().getINOUTEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_3, grammarAccess.getPatternPortDirectionAccess().getINOUTEnumLiteralDeclaration_3());
@@ -1673,7 +1685,7 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
// $ANTLR start "ruleLinkType"
// InternalPattern.g:689:1: ruleLinkType returns [Enumerator current=null] : ( (enumLiteral_0= '-{Transpose}->' ) | (enumLiteral_1= '-{Identity}->' ) | (enumLiteral_2= '-{First}->' ) | (enumLiteral_3= '-{Rotate}->' ) | (enumLiteral_4= '-{ShiftC}->' ) | (enumLiteral_5= '-{ShiftP}->' ) | (enumLiteral_6= '-{FlattenC}->' ) | (enumLiteral_7= '-{ForkC}->' ) | (enumLiteral_8= '-{ForkP}->' ) | (enumLiteral_9= '-{JoinC}->' ) | (enumLiteral_10= '-{JoinP}->' ) | (enumLiteral_11= '-{Last}->' ) ) ;
// InternalPattern.g:697:1: ruleLinkType returns [Enumerator current=null] : ( (enumLiteral_0= 'Transpose' ) | (enumLiteral_1= 'Identity' ) | (enumLiteral_2= 'First' ) | (enumLiteral_3= 'Rotate' ) | (enumLiteral_4= 'ShiftC' ) | (enumLiteral_5= 'ShiftP' ) | (enumLiteral_6= 'FlattenC' ) | (enumLiteral_7= 'ForkC' ) | (enumLiteral_8= 'ForkP' ) | (enumLiteral_9= 'JoinC' ) | (enumLiteral_10= 'JoinP' ) | (enumLiteral_11= 'Last' ) ) ;
public final Enumerator ruleLinkType() throws RecognitionException {
Enumerator current = null;
@@ -1694,68 +1706,68 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
enterRule();
try {
// InternalPattern.g:695:2: ( ( (enumLiteral_0= '-{Transpose}->' ) | (enumLiteral_1= '-{Identity}->' ) | (enumLiteral_2= '-{First}->' ) | (enumLiteral_3= '-{Rotate}->' ) | (enumLiteral_4= '-{ShiftC}->' ) | (enumLiteral_5= '-{ShiftP}->' ) | (enumLiteral_6= '-{FlattenC}->' ) | (enumLiteral_7= '-{ForkC}->' ) | (enumLiteral_8= '-{ForkP}->' ) | (enumLiteral_9= '-{JoinC}->' ) | (enumLiteral_10= '-{JoinP}->' ) | (enumLiteral_11= '-{Last}->' ) ) )
// InternalPattern.g:696:2: ( (enumLiteral_0= '-{Transpose}->' ) | (enumLiteral_1= '-{Identity}->' ) | (enumLiteral_2= '-{First}->' ) | (enumLiteral_3= '-{Rotate}->' ) | (enumLiteral_4= '-{ShiftC}->' ) | (enumLiteral_5= '-{ShiftP}->' ) | (enumLiteral_6= '-{FlattenC}->' ) | (enumLiteral_7= '-{ForkC}->' ) | (enumLiteral_8= '-{ForkP}->' ) | (enumLiteral_9= '-{JoinC}->' ) | (enumLiteral_10= '-{JoinP}->' ) | (enumLiteral_11= '-{Last}->' ) )
// InternalPattern.g:703:2: ( ( (enumLiteral_0= 'Transpose' ) | (enumLiteral_1= 'Identity' ) | (enumLiteral_2= 'First' ) | (enumLiteral_3= 'Rotate' ) | (enumLiteral_4= 'ShiftC' ) | (enumLiteral_5= 'ShiftP' ) | (enumLiteral_6= 'FlattenC' ) | (enumLiteral_7= 'ForkC' ) | (enumLiteral_8= 'ForkP' ) | (enumLiteral_9= 'JoinC' ) | (enumLiteral_10= 'JoinP' ) | (enumLiteral_11= 'Last' ) ) )
// InternalPattern.g:704:2: ( (enumLiteral_0= 'Transpose' ) | (enumLiteral_1= 'Identity' ) | (enumLiteral_2= 'First' ) | (enumLiteral_3= 'Rotate' ) | (enumLiteral_4= 'ShiftC' ) | (enumLiteral_5= 'ShiftP' ) | (enumLiteral_6= 'FlattenC' ) | (enumLiteral_7= 'ForkC' ) | (enumLiteral_8= 'ForkP' ) | (enumLiteral_9= 'JoinC' ) | (enumLiteral_10= 'JoinP' ) | (enumLiteral_11= 'Last' ) )
{
// InternalPattern.g:696:2: ( (enumLiteral_0= '-{Transpose}->' ) | (enumLiteral_1= '-{Identity}->' ) | (enumLiteral_2= '-{First}->' ) | (enumLiteral_3= '-{Rotate}->' ) | (enumLiteral_4= '-{ShiftC}->' ) | (enumLiteral_5= '-{ShiftP}->' ) | (enumLiteral_6= '-{FlattenC}->' ) | (enumLiteral_7= '-{ForkC}->' ) | (enumLiteral_8= '-{ForkP}->' ) | (enumLiteral_9= '-{JoinC}->' ) | (enumLiteral_10= '-{JoinP}->' ) | (enumLiteral_11= '-{Last}->' ) )
// InternalPattern.g:704:2: ( (enumLiteral_0= 'Transpose' ) | (enumLiteral_1= 'Identity' ) | (enumLiteral_2= 'First' ) | (enumLiteral_3= 'Rotate' ) | (enumLiteral_4= 'ShiftC' ) | (enumLiteral_5= 'ShiftP' ) | (enumLiteral_6= 'FlattenC' ) | (enumLiteral_7= 'ForkC' ) | (enumLiteral_8= 'ForkP' ) | (enumLiteral_9= 'JoinC' ) | (enumLiteral_10= 'JoinP' ) | (enumLiteral_11= 'Last' ) )
int alt15=12;
switch ( input.LA(1) ) {
case 25:
case 27:
{
alt15=1;
}
break;
case 26:
case 28:
{
alt15=2;
}
break;
case 27:
case 29:
{
alt15=3;
}
break;
case 28:
case 30:
{
alt15=4;
}
break;
case 29:
case 31:
{
alt15=5;
}
break;
case 30:
case 32:
{
alt15=6;
}
break;
case 31:
case 33:
{
alt15=7;
}
break;
case 32:
case 34:
{
alt15=8;
}
break;
case 33:
case 35:
{
alt15=9;
}
break;
case 34:
case 36:
{
alt15=10;
}
break;
case 35:
case 37:
{
alt15=11;
}
break;
case 36:
case 38:
{
alt15=12;
}
@@ -1769,12 +1781,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
switch (alt15) {
case 1 :
// InternalPattern.g:697:3: (enumLiteral_0= '-{Transpose}->' )
// InternalPattern.g:705:3: (enumLiteral_0= 'Transpose' )
{
// InternalPattern.g:697:3: (enumLiteral_0= '-{Transpose}->' )
// InternalPattern.g:698:4: enumLiteral_0= '-{Transpose}->'
// InternalPattern.g:705:3: (enumLiteral_0= 'Transpose' )
// InternalPattern.g:706:4: enumLiteral_0= 'Transpose'
{
enumLiteral_0=(Token)match(input,25,FOLLOW_2);
enumLiteral_0=(Token)match(input,27,FOLLOW_2);
current = grammarAccess.getLinkTypeAccess().getTRANSPOSEEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_0, grammarAccess.getLinkTypeAccess().getTRANSPOSEEnumLiteralDeclaration_0());
@@ -1786,12 +1798,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
break;
case 2 :
// InternalPattern.g:705:3: (enumLiteral_1= '-{Identity}->' )
// InternalPattern.g:713:3: (enumLiteral_1= 'Identity' )
{
// InternalPattern.g:705:3: (enumLiteral_1= '-{Identity}->' )
// InternalPattern.g:706:4: enumLiteral_1= '-{Identity}->'
// InternalPattern.g:713:3: (enumLiteral_1= 'Identity' )
// InternalPattern.g:714:4: enumLiteral_1= 'Identity'
{
enumLiteral_1=(Token)match(input,26,FOLLOW_2);
enumLiteral_1=(Token)match(input,28,FOLLOW_2);
current = grammarAccess.getLinkTypeAccess().getIDENTITYEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_1, grammarAccess.getLinkTypeAccess().getIDENTITYEnumLiteralDeclaration_1());
@@ -1803,12 +1815,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
break;
case 3 :
// InternalPattern.g:713:3: (enumLiteral_2= '-{First}->' )
// InternalPattern.g:721:3: (enumLiteral_2= 'First' )
{
// InternalPattern.g:713:3: (enumLiteral_2= '-{First}->' )
// InternalPattern.g:714:4: enumLiteral_2= '-{First}->'
// InternalPattern.g:721:3: (enumLiteral_2= 'First' )
// InternalPattern.g:722:4: enumLiteral_2= 'First'
{
enumLiteral_2=(Token)match(input,27,FOLLOW_2);
enumLiteral_2=(Token)match(input,29,FOLLOW_2);
current = grammarAccess.getLinkTypeAccess().getFIRSTEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_2, grammarAccess.getLinkTypeAccess().getFIRSTEnumLiteralDeclaration_2());
@@ -1820,12 +1832,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
break;
case 4 :
// InternalPattern.g:721:3: (enumLiteral_3= '-{Rotate}->' )
// InternalPattern.g:729:3: (enumLiteral_3= 'Rotate' )
{
// InternalPattern.g:721:3: (enumLiteral_3= '-{Rotate}->' )
// InternalPattern.g:722:4: enumLiteral_3= '-{Rotate}->'
// InternalPattern.g:729:3: (enumLiteral_3= 'Rotate' )
// InternalPattern.g:730:4: enumLiteral_3= 'Rotate'
{
enumLiteral_3=(Token)match(input,28,FOLLOW_2);
enumLiteral_3=(Token)match(input,30,FOLLOW_2);
current = grammarAccess.getLinkTypeAccess().getROTATEEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_3, grammarAccess.getLinkTypeAccess().getROTATEEnumLiteralDeclaration_3());
@@ -1837,12 +1849,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
break;
case 5 :
// InternalPattern.g:729:3: (enumLiteral_4= '-{ShiftC}->' )
// InternalPattern.g:737:3: (enumLiteral_4= 'ShiftC' )
{
// InternalPattern.g:729:3: (enumLiteral_4= '-{ShiftC}->' )
// InternalPattern.g:730:4: enumLiteral_4= '-{ShiftC}->'
// InternalPattern.g:737:3: (enumLiteral_4= 'ShiftC' )
// InternalPattern.g:738:4: enumLiteral_4= 'ShiftC'
{
enumLiteral_4=(Token)match(input,29,FOLLOW_2);
enumLiteral_4=(Token)match(input,31,FOLLOW_2);
current = grammarAccess.getLinkTypeAccess().getSHIFTCEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_4, grammarAccess.getLinkTypeAccess().getSHIFTCEnumLiteralDeclaration_4());
@@ -1854,12 +1866,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
break;
case 6 :
// InternalPattern.g:737:3: (enumLiteral_5= '-{ShiftP}->' )
// InternalPattern.g:745:3: (enumLiteral_5= 'ShiftP' )
{
// InternalPattern.g:737:3: (enumLiteral_5= '-{ShiftP}->' )
// InternalPattern.g:738:4: enumLiteral_5= '-{ShiftP}->'
// InternalPattern.g:745:3: (enumLiteral_5= 'ShiftP' )
// InternalPattern.g:746:4: enumLiteral_5= 'ShiftP'
{
enumLiteral_5=(Token)match(input,30,FOLLOW_2);
enumLiteral_5=(Token)match(input,32,FOLLOW_2);
current = grammarAccess.getLinkTypeAccess().getSHIFTPEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_5, grammarAccess.getLinkTypeAccess().getSHIFTPEnumLiteralDeclaration_5());
@@ -1871,12 +1883,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
break;
case 7 :
// InternalPattern.g:745:3: (enumLiteral_6= '-{FlattenC}->' )
// InternalPattern.g:753:3: (enumLiteral_6= 'FlattenC' )
{
// InternalPattern.g:745:3: (enumLiteral_6= '-{FlattenC}->' )
// InternalPattern.g:746:4: enumLiteral_6= '-{FlattenC}->'
// InternalPattern.g:753:3: (enumLiteral_6= 'FlattenC' )
// InternalPattern.g:754:4: enumLiteral_6= 'FlattenC'
{
enumLiteral_6=(Token)match(input,31,FOLLOW_2);
enumLiteral_6=(Token)match(input,33,FOLLOW_2);
current = grammarAccess.getLinkTypeAccess().getFLATTENCEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_6, grammarAccess.getLinkTypeAccess().getFLATTENCEnumLiteralDeclaration_6());
@@ -1888,12 +1900,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
break;
case 8 :
// InternalPattern.g:753:3: (enumLiteral_7= '-{ForkC}->' )
// InternalPattern.g:761:3: (enumLiteral_7= 'ForkC' )
{
// InternalPattern.g:753:3: (enumLiteral_7= '-{ForkC}->' )
// InternalPattern.g:754:4: enumLiteral_7= '-{ForkC}->'
// InternalPattern.g:761:3: (enumLiteral_7= 'ForkC' )
// InternalPattern.g:762:4: enumLiteral_7= 'ForkC'
{
enumLiteral_7=(Token)match(input,32,FOLLOW_2);
enumLiteral_7=(Token)match(input,34,FOLLOW_2);
current = grammarAccess.getLinkTypeAccess().getFORKCEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_7, grammarAccess.getLinkTypeAccess().getFORKCEnumLiteralDeclaration_7());
@@ -1905,12 +1917,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
break;
case 9 :
// InternalPattern.g:761:3: (enumLiteral_8= '-{ForkP}->' )
// InternalPattern.g:769:3: (enumLiteral_8= 'ForkP' )
{
// InternalPattern.g:761:3: (enumLiteral_8= '-{ForkP}->' )
// InternalPattern.g:762:4: enumLiteral_8= '-{ForkP}->'
// InternalPattern.g:769:3: (enumLiteral_8= 'ForkP' )
// InternalPattern.g:770:4: enumLiteral_8= 'ForkP'
{
enumLiteral_8=(Token)match(input,33,FOLLOW_2);
enumLiteral_8=(Token)match(input,35,FOLLOW_2);
current = grammarAccess.getLinkTypeAccess().getFORKPEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_8, grammarAccess.getLinkTypeAccess().getFORKPEnumLiteralDeclaration_8());
@@ -1922,12 +1934,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
break;
case 10 :
// InternalPattern.g:769:3: (enumLiteral_9= '-{JoinC}->' )
// InternalPattern.g:777:3: (enumLiteral_9= 'JoinC' )
{
// InternalPattern.g:769:3: (enumLiteral_9= '-{JoinC}->' )
// InternalPattern.g:770:4: enumLiteral_9= '-{JoinC}->'
// InternalPattern.g:777:3: (enumLiteral_9= 'JoinC' )
// InternalPattern.g:778:4: enumLiteral_9= 'JoinC'
{
enumLiteral_9=(Token)match(input,34,FOLLOW_2);
enumLiteral_9=(Token)match(input,36,FOLLOW_2);
current = grammarAccess.getLinkTypeAccess().getJOINCEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_9, grammarAccess.getLinkTypeAccess().getJOINCEnumLiteralDeclaration_9());
@@ -1939,12 +1951,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
break;
case 11 :
// InternalPattern.g:777:3: (enumLiteral_10= '-{JoinP}->' )
// InternalPattern.g:785:3: (enumLiteral_10= 'JoinP' )
{
// InternalPattern.g:777:3: (enumLiteral_10= '-{JoinP}->' )
// InternalPattern.g:778:4: enumLiteral_10= '-{JoinP}->'
// InternalPattern.g:785:3: (enumLiteral_10= 'JoinP' )
// InternalPattern.g:786:4: enumLiteral_10= 'JoinP'
{
enumLiteral_10=(Token)match(input,35,FOLLOW_2);
enumLiteral_10=(Token)match(input,37,FOLLOW_2);
current = grammarAccess.getLinkTypeAccess().getJOINPEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_10, grammarAccess.getLinkTypeAccess().getJOINPEnumLiteralDeclaration_10());
@@ -1956,12 +1968,12 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
}
break;
case 12 :
// InternalPattern.g:785:3: (enumLiteral_11= '-{Last}->' )
// InternalPattern.g:793:3: (enumLiteral_11= 'Last' )
{
// InternalPattern.g:785:3: (enumLiteral_11= '-{Last}->' )
// InternalPattern.g:786:4: enumLiteral_11= '-{Last}->'
// InternalPattern.g:793:3: (enumLiteral_11= 'Last' )
// InternalPattern.g:794:4: enumLiteral_11= 'Last'
{
enumLiteral_11=(Token)match(input,36,FOLLOW_2);
enumLiteral_11=(Token)match(input,38,FOLLOW_2);
current = grammarAccess.getLinkTypeAccess().getLASTEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
newLeafNode(enumLiteral_11, grammarAccess.getLinkTypeAccess().getLASTEnumLiteralDeclaration_11());
@@ -2009,11 +2021,13 @@ public class InternalPatternParser extends AbstractInternalAntlrParser {
public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000041000L});
public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000000030L});
public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000080000L});
public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000001E04000L});
public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000001E00000L});
public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000007804000L});
public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000007800000L});
public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000040002L});
public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000001FFE000000L});
public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000020010L});
public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000100002L});
public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000100000L});
public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000007FF8000000L});
public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000000020010L});
public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000400002L});
}

View File

@@ -111,8 +111,8 @@ public class PatternSemanticSequencer extends AbstractDelegatingSemanticSequence
}
SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
feeder.accept(grammarAccess.getPatternLinkAccess().getSrcPatternPortQualifiedIDParserRuleCall_0_0_1(), semanticObject.eGet(SeimPackage.Literals.LINK__SRC, false));
feeder.accept(grammarAccess.getPatternLinkAccess().getLinkTypeLinkTypeEnumRuleCall_1_0(), semanticObject.getLinkType());
feeder.accept(grammarAccess.getPatternLinkAccess().getDstPatternPortQualifiedIDParserRuleCall_2_0_1(), semanticObject.eGet(SeimPackage.Literals.LINK__DST, false));
feeder.accept(grammarAccess.getPatternLinkAccess().getLinkTypeLinkTypeEnumRuleCall_2_0(), semanticObject.getLinkType());
feeder.accept(grammarAccess.getPatternLinkAccess().getDstPatternPortQualifiedIDParserRuleCall_4_0_1(), semanticObject.eGet(SeimPackage.Literals.LINK__DST, false));
feeder.finish();
}

View File

@@ -334,17 +334,19 @@ public class PatternGrammarAccess extends AbstractGrammarElementFinder {
private final Assignment cSrcAssignment_0 = (Assignment)cGroup.eContents().get(0);
private final CrossReference cSrcPatternPortCrossReference_0_0 = (CrossReference)cSrcAssignment_0.eContents().get(0);
private final RuleCall cSrcPatternPortQualifiedIDParserRuleCall_0_0_1 = (RuleCall)cSrcPatternPortCrossReference_0_0.eContents().get(1);
private final Assignment cLinkTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
private final RuleCall cLinkTypeLinkTypeEnumRuleCall_1_0 = (RuleCall)cLinkTypeAssignment_1.eContents().get(0);
private final Assignment cDstAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final CrossReference cDstPatternPortCrossReference_2_0 = (CrossReference)cDstAssignment_2.eContents().get(0);
private final RuleCall cDstPatternPortQualifiedIDParserRuleCall_2_0_1 = (RuleCall)cDstPatternPortCrossReference_2_0.eContents().get(1);
private final Keyword cHyphenMinusHyphenMinusLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Assignment cLinkTypeAssignment_2 = (Assignment)cGroup.eContents().get(2);
private final RuleCall cLinkTypeLinkTypeEnumRuleCall_2_0 = (RuleCall)cLinkTypeAssignment_2.eContents().get(0);
private final Keyword cRightCurlyBracketHyphenMinusGreaterThanSignKeyword_3 = (Keyword)cGroup.eContents().get(3);
private final Assignment cDstAssignment_4 = (Assignment)cGroup.eContents().get(4);
private final CrossReference cDstPatternPortCrossReference_4_0 = (CrossReference)cDstAssignment_4.eContents().get(0);
private final RuleCall cDstPatternPortQualifiedIDParserRuleCall_4_0_1 = (RuleCall)cDstPatternPortCrossReference_4_0.eContents().get(1);
//PatternLink:
// src=[PatternPort|QualifiedID] linkType=LinkType dst=[PatternPort|QualifiedID];
// src=[PatternPort|QualifiedID] '--{' linkType=LinkType '}->' dst=[PatternPort|QualifiedID];
@Override public ParserRule getRule() { return rule; }
//src=[PatternPort|QualifiedID] linkType=LinkType dst=[PatternPort|QualifiedID]
//src=[PatternPort|QualifiedID] '--{' linkType=LinkType '}->' dst=[PatternPort|QualifiedID]
public Group getGroup() { return cGroup; }
//src=[PatternPort|QualifiedID]
@@ -356,20 +358,26 @@ public class PatternGrammarAccess extends AbstractGrammarElementFinder {
//QualifiedID
public RuleCall getSrcPatternPortQualifiedIDParserRuleCall_0_0_1() { return cSrcPatternPortQualifiedIDParserRuleCall_0_0_1; }
//'--{'
public Keyword getHyphenMinusHyphenMinusLeftCurlyBracketKeyword_1() { return cHyphenMinusHyphenMinusLeftCurlyBracketKeyword_1; }
//linkType=LinkType
public Assignment getLinkTypeAssignment_1() { return cLinkTypeAssignment_1; }
public Assignment getLinkTypeAssignment_2() { return cLinkTypeAssignment_2; }
//LinkType
public RuleCall getLinkTypeLinkTypeEnumRuleCall_1_0() { return cLinkTypeLinkTypeEnumRuleCall_1_0; }
public RuleCall getLinkTypeLinkTypeEnumRuleCall_2_0() { return cLinkTypeLinkTypeEnumRuleCall_2_0; }
//'}->'
public Keyword getRightCurlyBracketHyphenMinusGreaterThanSignKeyword_3() { return cRightCurlyBracketHyphenMinusGreaterThanSignKeyword_3; }
//dst=[PatternPort|QualifiedID]
public Assignment getDstAssignment_2() { return cDstAssignment_2; }
public Assignment getDstAssignment_4() { return cDstAssignment_4; }
//[PatternPort|QualifiedID]
public CrossReference getDstPatternPortCrossReference_2_0() { return cDstPatternPortCrossReference_2_0; }
public CrossReference getDstPatternPortCrossReference_4_0() { return cDstPatternPortCrossReference_4_0; }
//QualifiedID
public RuleCall getDstPatternPortQualifiedIDParserRuleCall_2_0_1() { return cDstPatternPortQualifiedIDParserRuleCall_2_0_1; }
public RuleCall getDstPatternPortQualifiedIDParserRuleCall_4_0_1() { return cDstPatternPortQualifiedIDParserRuleCall_4_0_1; }
}
public class QualifiedIDElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "com.irtsaintexupery.xtext.pseim.Pattern.QualifiedID");
@@ -471,86 +479,85 @@ public class PatternGrammarAccess extends AbstractGrammarElementFinder {
private final Keyword cLASTLastKeyword_11_0 = (Keyword)cLASTEnumLiteralDeclaration_11.eContents().get(0);
//enum LinkType:
// TRANSPOSE='-{Transpose}->' | IDENTITY='-{Identity}->' | FIRST='-{First}->' | ROTATE='-{Rotate}->'
// | SHIFTC='-{ShiftC}->' | SHIFTP='-{ShiftP}->' | FLATTENC='-{FlattenC}->' | FORKC='-{ForkC}->' | FORKP='-{ForkP}->'
// | JOINC='-{JoinC}->' | JOINP='-{JoinP}->' | LAST='-{Last}->';
// TRANSPOSE='Transpose' | IDENTITY='Identity' | FIRST='First' | ROTATE='Rotate'
// | SHIFTC='ShiftC' | SHIFTP='ShiftP' | FLATTENC='FlattenC' | FORKC='ForkC' | FORKP='ForkP'
// | JOINC='JoinC' | JOINP='JoinP' | LAST='Last';
public EnumRule getRule() { return rule; }
//TRANSPOSE='-{Transpose}->' | IDENTITY='-{Identity}->' | FIRST='-{First}->' | ROTATE='-{Rotate}->' | SHIFTC='-{ShiftC}->'
//| SHIFTP='-{ShiftP}->' | FLATTENC='-{FlattenC}->' | FORKC='-{ForkC}->' | FORKP='-{ForkP}->' | JOINC='-{JoinC}->' |
//JOINP='-{JoinP}->' | LAST='-{Last}->'
//TRANSPOSE='Transpose' | IDENTITY='Identity' | FIRST='First' | ROTATE='Rotate' | SHIFTC='ShiftC' | SHIFTP='ShiftP' |
//FLATTENC='FlattenC' | FORKC='ForkC' | FORKP='ForkP' | JOINC='JoinC' | JOINP='JoinP' | LAST='Last'
public Alternatives getAlternatives() { return cAlternatives; }
//TRANSPOSE='-{Transpose}->'
//TRANSPOSE='Transpose'
public EnumLiteralDeclaration getTRANSPOSEEnumLiteralDeclaration_0() { return cTRANSPOSEEnumLiteralDeclaration_0; }
//'-{Transpose}->'
//'Transpose'
public Keyword getTRANSPOSETransposeKeyword_0_0() { return cTRANSPOSETransposeKeyword_0_0; }
//IDENTITY='-{Identity}->'
//IDENTITY='Identity'
public EnumLiteralDeclaration getIDENTITYEnumLiteralDeclaration_1() { return cIDENTITYEnumLiteralDeclaration_1; }
//'-{Identity}->'
//'Identity'
public Keyword getIDENTITYIdentityKeyword_1_0() { return cIDENTITYIdentityKeyword_1_0; }
//FIRST='-{First}->'
//FIRST='First'
public EnumLiteralDeclaration getFIRSTEnumLiteralDeclaration_2() { return cFIRSTEnumLiteralDeclaration_2; }
//'-{First}->'
//'First'
public Keyword getFIRSTFirstKeyword_2_0() { return cFIRSTFirstKeyword_2_0; }
//ROTATE='-{Rotate}->'
//ROTATE='Rotate'
public EnumLiteralDeclaration getROTATEEnumLiteralDeclaration_3() { return cROTATEEnumLiteralDeclaration_3; }
//'-{Rotate}->'
//'Rotate'
public Keyword getROTATERotateKeyword_3_0() { return cROTATERotateKeyword_3_0; }
//SHIFTC='-{ShiftC}->'
//SHIFTC='ShiftC'
public EnumLiteralDeclaration getSHIFTCEnumLiteralDeclaration_4() { return cSHIFTCEnumLiteralDeclaration_4; }
//'-{ShiftC}->'
//'ShiftC'
public Keyword getSHIFTCShiftCKeyword_4_0() { return cSHIFTCShiftCKeyword_4_0; }
//SHIFTP='-{ShiftP}->'
//SHIFTP='ShiftP'
public EnumLiteralDeclaration getSHIFTPEnumLiteralDeclaration_5() { return cSHIFTPEnumLiteralDeclaration_5; }
//'-{ShiftP}->'
//'ShiftP'
public Keyword getSHIFTPShiftPKeyword_5_0() { return cSHIFTPShiftPKeyword_5_0; }
//FLATTENC='-{FlattenC}->'
//FLATTENC='FlattenC'
public EnumLiteralDeclaration getFLATTENCEnumLiteralDeclaration_6() { return cFLATTENCEnumLiteralDeclaration_6; }
//'-{FlattenC}->'
//'FlattenC'
public Keyword getFLATTENCFlattenCKeyword_6_0() { return cFLATTENCFlattenCKeyword_6_0; }
//FORKC='-{ForkC}->'
//FORKC='ForkC'
public EnumLiteralDeclaration getFORKCEnumLiteralDeclaration_7() { return cFORKCEnumLiteralDeclaration_7; }
//'-{ForkC}->'
//'ForkC'
public Keyword getFORKCForkCKeyword_7_0() { return cFORKCForkCKeyword_7_0; }
//FORKP='-{ForkP}->'
//FORKP='ForkP'
public EnumLiteralDeclaration getFORKPEnumLiteralDeclaration_8() { return cFORKPEnumLiteralDeclaration_8; }
//'-{ForkP}->'
//'ForkP'
public Keyword getFORKPForkPKeyword_8_0() { return cFORKPForkPKeyword_8_0; }
//JOINC='-{JoinC}->'
//JOINC='JoinC'
public EnumLiteralDeclaration getJOINCEnumLiteralDeclaration_9() { return cJOINCEnumLiteralDeclaration_9; }
//'-{JoinC}->'
//'JoinC'
public Keyword getJOINCJoinCKeyword_9_0() { return cJOINCJoinCKeyword_9_0; }
//JOINP='-{JoinP}->'
//JOINP='JoinP'
public EnumLiteralDeclaration getJOINPEnumLiteralDeclaration_10() { return cJOINPEnumLiteralDeclaration_10; }
//'-{JoinP}->'
//'JoinP'
public Keyword getJOINPJoinPKeyword_10_0() { return cJOINPJoinPKeyword_10_0; }
//LAST='-{Last}->'
//LAST='Last'
public EnumLiteralDeclaration getLASTEnumLiteralDeclaration_11() { return cLASTEnumLiteralDeclaration_11; }
//'-{Last}->'
//'Last'
public Keyword getLASTLastKeyword_11_0() { return cLASTLastKeyword_11_0; }
}
public class PortDirectionElements extends AbstractEnumRuleElementFinder {
@@ -709,7 +716,7 @@ public class PatternGrammarAccess extends AbstractGrammarElementFinder {
}
//PatternLink:
// src=[PatternPort|QualifiedID] linkType=LinkType dst=[PatternPort|QualifiedID];
// src=[PatternPort|QualifiedID] '--{' linkType=LinkType '}->' dst=[PatternPort|QualifiedID];
public PatternLinkElements getPatternLinkAccess() {
return pPatternLink;
}
@@ -719,9 +726,9 @@ public class PatternGrammarAccess extends AbstractGrammarElementFinder {
}
//enum LinkType:
// TRANSPOSE='-{Transpose}->' | IDENTITY='-{Identity}->' | FIRST='-{First}->' | ROTATE='-{Rotate}->'
// | SHIFTC='-{ShiftC}->' | SHIFTP='-{ShiftP}->' | FLATTENC='-{FlattenC}->' | FORKC='-{ForkC}->' | FORKP='-{ForkP}->'
// | JOINC='-{JoinC}->' | JOINP='-{JoinP}->' | LAST='-{Last}->';
// TRANSPOSE='Transpose' | IDENTITY='Identity' | FIRST='First' | ROTATE='Rotate'
// | SHIFTC='ShiftC' | SHIFTP='ShiftP' | FLATTENC='FlattenC' | FORKC='ForkC' | FORKP='ForkP'
// | JOINC='JoinC' | JOINP='JoinP' | LAST='Last';
public LinkTypeElements getLinkTypeAccess() {
return eLinkType;
}

View File

@@ -34,13 +34,13 @@ CardinalityElement returns CardinalityElement:
;
PatternLink returns PatternLink:
src=[PatternPort|QualifiedID] linkType=LinkType dst=[PatternPort|QualifiedID]
src=[PatternPort|QualifiedID] '--{' linkType=LinkType '}->' dst=[PatternPort|QualifiedID]
;
enum LinkType returns LinkType:
TRANSPOSE = '-{Transpose}->' | IDENTITY = '-{Identity}->' | FIRST = '-{First}->' | ROTATE = '-{Rotate}->'
| SHIFTC = '-{ShiftC}->' | SHIFTP = '-{ShiftP}->' | FLATTENC = '-{FlattenC}->' | FORKC = '-{ForkC}->' | FORKP = '-{ForkP}->'
| JOINC = '-{JoinC}->' | JOINP = '-{JoinP}->' | LAST = '-{Last}->'
TRANSPOSE = 'Transpose' | IDENTITY = 'Identity' | FIRST = 'First' | ROTATE = 'Rotate'
| SHIFTC = 'ShiftC' | SHIFTP = 'ShiftP' | FLATTENC = 'FlattenC' | FORKC = 'ForkC' | FORKP = 'ForkP'
| JOINC = 'JoinC' | JOINP = 'JoinP' | LAST = 'Last'
;
enum PortDirection returns seim::PortDirection:

View File

@@ -3,6 +3,8 @@
*/
package com.irtsaintexupery.xtext.pseim.validation
import com.irtsaintexupery.pseim.pseim.Pattern
import org.eclipse.xtext.validation.Check
/**
* This class contains custom validation rules.
@@ -22,4 +24,17 @@ class PatternValidator extends AbstractPatternValidator {
// }
// }
@Check
def checkPattern(Pattern p) {
// Static checking
// Check if there exists a solution for the set of constraints induced by the pattern model (all links + constraints)
// Warning: Two variables are necessarily identical -> Potential error as there is redundancy in the variables
// -> Maybe it is not an error as in creates different interfaces for the pattern
// Global arithmetic constraints may be added to the pattern language (no need for now)
// TODO Dynamic synthesis (in the Mapping MM validator)
// A synthesis tool synthesizes a solution for the mapping
// If there is no solution, then the mapping is not correct
// In both cases, we need a bridge between our model and a solver
}
}