diff --git a/Parser/Grammar/ErrorReporting.cs b/Parser/Grammar/ErrorReporting.cs index e1ee2d970..5e5da0952 100644 --- a/Parser/Grammar/ErrorReporting.cs +++ b/Parser/Grammar/ErrorReporting.cs @@ -22,21 +22,4 @@ public override void EmitErrorMessage(string msg) ParserErrors.Add(msg); } } - - partial class SpecFlowLangLexer - { - public readonly List LexerErrors = new List(); - - //public override void DisplayRecognitionError(string[] tokenNames, Antlr.Runtime.RecognitionException e) - //{ - // this.EmitErrorMessage( - // string.Format("({0},{1}): lexer error: {2}", e.Line, e.CharPositionInLine, this.GetErrorMessage(e, tokenNames))); - //} - - //public override void EmitErrorMessage(string msg) - //{ - // Debug.WriteLine(msg); - // //LexerErrors.Add(msg); - //} - } } diff --git a/Parser/Grammar/LexerTransformation.xslt b/Parser/Grammar/LexerTransformation.xslt new file mode 100644 index 000000000..ad59e6cf0 --- /dev/null +++ b/Parser/Grammar/LexerTransformation.xslt @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + lexer grammar SpecFlowLangLexer_; + + options { + language = CSharp2; + filter=true; + superClass = SpecFlowLangLexer; + } + + @lexer::namespace { TechTalk.SpecFlow.Parser.Grammar } + + fragment WSCHAR : (' '|'\t'); + fragment NONWCHR : (' '|'\t'|'\r'|'\n'|'#'|'@'); + fragment NEWLINECHR : ('\r'|'\n'); + fragment NONNLCHR : ('\u0000'..'\t')|('\u000B'..'\f')|('\u000E'..'\uFFFF'); + + + T_FEATURE : + + ; + T_BACKGROUND : + + ; + T_SCENARIO : + + ; + T_SCENARIO_OUTLINE : + + ; + T_EXAMPLES : + + ; + T_GIVEN : + + + ; + T_WHEN : + + + ; + T_THEN : + + + ; + T_AND : + + + ; + T_BUT : + + + ; + + MLTEXT : '"""'; + CELLSEP : '|'; + AT : '@'; + COMMENT : WSCHAR* '#' NONNLCHR* { $channel = Token.HIDDEN_CHANNEL; }; + WS : WSCHAR+; + NEWLINE : '\r\n' | '\n'; + WORDCHAR : (('\u0000'..'\b') + | ('\u000B'..'\f') + | ('\u000E'..'\u001F') + | ('!'..'"') + | ('$'..'?') + | ('A'..'\uFFFF'))+ ; + + + + + + + + + | + + ' + + + ' + + + diff --git a/Parser/Grammar/SpecFlowLangLexer.cs b/Parser/Grammar/SpecFlowLangLexer.cs index 2bf0be769..2e6872b1c 100644 --- a/Parser/Grammar/SpecFlowLangLexer.cs +++ b/Parser/Grammar/SpecFlowLangLexer.cs @@ -1,1837 +1,36 @@ -// $ANTLR 3.1.2 SpecFlowLangLexer.g 2009-11-05 16:13:46 - -// The variable 'variable' is assigned but its value is never used. -#pragma warning disable 168, 219 -// Unreachable code detected. -#pragma warning disable 162 -namespace TechTalk.SpecFlow.Parser.Grammar -{ - using System; +using System.Collections.Generic; +using System.Linq; using Antlr.Runtime; -using IList = System.Collections.IList; -using ArrayList = System.Collections.ArrayList; -using Stack = Antlr.Runtime.Collections.StackList; - -using IDictionary = System.Collections.IDictionary; -using Hashtable = System.Collections.Hashtable; - -public partial class SpecFlowLangLexer : Lexer { - public const int NEWLINECHR = 6; - public const int T_BACKGROUND = 9; - public const int T_THEN = 15; - public const int T_SCENARIO_OUTLINE = 11; - public const int MLTEXT = 18; - public const int WSCHAR = 4; - public const int NONNLCHR = 7; - public const int EOF = -1; - public const int T_AND = 16; - public const int T_GIVEN = 13; - public const int AT = 20; - public const int WORDCHAR = 24; - public const int T_BUT = 17; - public const int WS = 22; - public const int NEWLINE = 23; - public const int T_WHEN = 14; - public const int T_FEATURE = 8; - public const int T_EXAMPLES = 12; - public const int NONWCHR = 5; - public const int T_SCENARIO = 10; - public const int COMMENT = 21; - public const int CELLSEP = 19; - - // delegates - // delegators - - public SpecFlowLangLexer() - { - InitializeCyclicDFAs(); - } - public SpecFlowLangLexer(ICharStream input) - : this(input, null) { - } - public SpecFlowLangLexer(ICharStream input, RecognizerSharedState state) - : base(input, state) { - InitializeCyclicDFAs(); - - } - - override public string GrammarFileName - { - get { return "SpecFlowLangLexer.g";} - } - - override public IToken NextToken() - { - while (true) - { - if ( input.LA(1) == (int)CharStreamConstants.EOF ) - { - return Token.EOF_TOKEN; - } - - state.token = null; - state.channel = Token.DEFAULT_CHANNEL; - state.tokenStartCharIndex = input.Index(); - state.tokenStartCharPositionInLine = input.CharPositionInLine; - state.tokenStartLine = input.Line; - state.text = null; - try - { - int m = input.Mark(); - state.backtracking = 1; - state.failed = false; - mTokens(); - state.backtracking = 0; - if ( state.failed ) - { - input.Rewind(m); - input.Consume(); - } - else - { - Emit(); - return state.token; - } - } - catch (RecognitionException re) - { - // shouldn't happen in backtracking mode, but... - ReportError(re); - Recover(re); - } - } - } - - override public void Memoize(IIntStream input, int ruleIndex, int ruleStartIndex) - { - if ( state.backtracking > 1 ) - base.Memoize(input, ruleIndex, ruleStartIndex); - } - - override public bool AlreadyParsedRule(IIntStream input, int ruleIndex) - { - if ( state.backtracking>1 ) - return base.AlreadyParsedRule(input, ruleIndex); - return false; - }// $ANTLR start "WSCHAR" - public void mWSCHAR() // throws RecognitionException [2] - { - try - { - // SpecFlowLangLexer.g:10:21: ( ( ' ' | '\\t' ) ) - // SpecFlowLangLexer.g:10:23: ( ' ' | '\\t' ) - { - if ( input.LA(1) == '\t' || input.LA(1) == ' ' ) - { - input.Consume(); - state.failed = false; - } - else - { - if ( state.backtracking > 0 ) {state.failed = true; return ;} - MismatchedSetException mse = new MismatchedSetException(null,input); - Recover(mse); - throw mse;} - - - } - - } - finally - { - } - } - // $ANTLR end "WSCHAR" - - // $ANTLR start "NONWCHR" - public void mNONWCHR() // throws RecognitionException [2] - { - try - { - // SpecFlowLangLexer.g:11:21: ( ( ' ' | '\\t' | '\\r' | '\\n' | '#' | '@' ) ) - // SpecFlowLangLexer.g:11:23: ( ' ' | '\\t' | '\\r' | '\\n' | '#' | '@' ) - { - if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n') || input.LA(1) == '\r' || input.LA(1) == ' ' || input.LA(1) == '#' || input.LA(1) == '@' ) - { - input.Consume(); - state.failed = false; - } - else - { - if ( state.backtracking > 0 ) {state.failed = true; return ;} - MismatchedSetException mse = new MismatchedSetException(null,input); - Recover(mse); - throw mse;} - - - } - - } - finally - { - } - } - // $ANTLR end "NONWCHR" - - // $ANTLR start "NEWLINECHR" - public void mNEWLINECHR() // throws RecognitionException [2] - { - try - { - // SpecFlowLangLexer.g:12:21: ( ( '\\r' | '\\n' ) ) - // SpecFlowLangLexer.g:12:23: ( '\\r' | '\\n' ) - { - if ( input.LA(1) == '\n' || input.LA(1) == '\r' ) - { - input.Consume(); - state.failed = false; - } - else - { - if ( state.backtracking > 0 ) {state.failed = true; return ;} - MismatchedSetException mse = new MismatchedSetException(null,input); - Recover(mse); - throw mse;} - - - } - - } - finally - { - } - } - // $ANTLR end "NEWLINECHR" - - // $ANTLR start "NONNLCHR" - public void mNONNLCHR() // throws RecognitionException [2] - { - try - { - // SpecFlowLangLexer.g:13:21: ( ( '\\u0000' .. '\\t' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\uFFFF' ) ) - int alt1 = 3; - int LA1_0 = input.LA(1); - - if ( ((LA1_0 >= '\u0000' && LA1_0 <= '\t')) ) - { - alt1 = 1; - } - else if ( ((LA1_0 >= '\u000B' && LA1_0 <= '\f')) ) - { - alt1 = 2; - } - else if ( ((LA1_0 >= '\u000E' && LA1_0 <= '\uFFFF')) ) - { - alt1 = 3; - } - else - { - if ( state.backtracking > 0 ) {state.failed = true; return ;} - NoViableAltException nvae_d1s0 = - new NoViableAltException("", 1, 0, input); - - throw nvae_d1s0; - } - switch (alt1) - { - case 1 : - // SpecFlowLangLexer.g:13:23: ( '\\u0000' .. '\\t' ) - { - // SpecFlowLangLexer.g:13:23: ( '\\u0000' .. '\\t' ) - // SpecFlowLangLexer.g:13:24: '\\u0000' .. '\\t' - { - MatchRange('\u0000','\t'); if (state.failed) return ; - - } - - - } - break; - case 2 : - // SpecFlowLangLexer.g:13:40: ( '\\u000B' .. '\\f' ) - { - // SpecFlowLangLexer.g:13:40: ( '\\u000B' .. '\\f' ) - // SpecFlowLangLexer.g:13:41: '\\u000B' .. '\\f' - { - MatchRange('\u000B','\f'); if (state.failed) return ; - - } - - - } - break; - case 3 : - // SpecFlowLangLexer.g:13:57: ( '\\u000E' .. '\\uFFFF' ) - { - // SpecFlowLangLexer.g:13:57: ( '\\u000E' .. '\\uFFFF' ) - // SpecFlowLangLexer.g:13:58: '\\u000E' .. '\\uFFFF' - { - MatchRange('\u000E','\uFFFF'); if (state.failed) return ; - - } - - - } - break; - - } - } - finally - { - } - } - // $ANTLR end "NONNLCHR" - - // $ANTLR start "T_FEATURE" - public void mT_FEATURE() // throws RecognitionException [2] - { - try - { - int _type = T_FEATURE; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:16:11: ( 'Feature:' ) - // SpecFlowLangLexer.g:16:13: 'Feature:' - { - Match("Feature:"); if (state.failed) return ; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "T_FEATURE" - - // $ANTLR start "T_BACKGROUND" - public void mT_BACKGROUND() // throws RecognitionException [2] - { - try - { - int _type = T_BACKGROUND; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:17:14: ( 'Background:' ) - // SpecFlowLangLexer.g:17:16: 'Background:' - { - Match("Background:"); if (state.failed) return ; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "T_BACKGROUND" - - // $ANTLR start "T_SCENARIO" - public void mT_SCENARIO() // throws RecognitionException [2] - { - try - { - int _type = T_SCENARIO; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:18:12: ( 'Scenario:' ) - // SpecFlowLangLexer.g:18:14: 'Scenario:' - { - Match("Scenario:"); if (state.failed) return ; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "T_SCENARIO" - - // $ANTLR start "T_SCENARIO_OUTLINE" - public void mT_SCENARIO_OUTLINE() // throws RecognitionException [2] - { - try - { - int _type = T_SCENARIO_OUTLINE; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:19:20: ( 'Scenario Outline:' ) - // SpecFlowLangLexer.g:19:22: 'Scenario Outline:' - { - Match("Scenario Outline:"); if (state.failed) return ; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "T_SCENARIO_OUTLINE" - - // $ANTLR start "T_EXAMPLES" - public void mT_EXAMPLES() // throws RecognitionException [2] - { - try - { - int _type = T_EXAMPLES; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:20:12: ( 'Examples:' | 'Scenarios:' ) - int alt2 = 2; - int LA2_0 = input.LA(1); - - if ( (LA2_0 == 'E') ) - { - alt2 = 1; - } - else if ( (LA2_0 == 'S') ) - { - alt2 = 2; - } - else - { - if ( state.backtracking > 0 ) {state.failed = true; return ;} - NoViableAltException nvae_d2s0 = - new NoViableAltException("", 2, 0, input); - - throw nvae_d2s0; - } - switch (alt2) - { - case 1 : - // SpecFlowLangLexer.g:20:14: 'Examples:' - { - Match("Examples:"); if (state.failed) return ; - - - } - break; - case 2 : - // SpecFlowLangLexer.g:20:26: 'Scenarios:' - { - Match("Scenarios:"); if (state.failed) return ; - - - } - break; - - } - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "T_EXAMPLES" - - // $ANTLR start "T_GIVEN" - public void mT_GIVEN() // throws RecognitionException [2] - { - try - { - int _type = T_GIVEN; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:21:9: ( 'Given' ) - // SpecFlowLangLexer.g:21:11: 'Given' - { - Match("Given"); if (state.failed) return ; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "T_GIVEN" - - // $ANTLR start "T_WHEN" - public void mT_WHEN() // throws RecognitionException [2] - { - try - { - int _type = T_WHEN; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:22:8: ( 'When' ) - // SpecFlowLangLexer.g:22:10: 'When' - { - Match("When"); if (state.failed) return ; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "T_WHEN" - - // $ANTLR start "T_THEN" - public void mT_THEN() // throws RecognitionException [2] - { - try - { - int _type = T_THEN; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:23:8: ( 'Then' ) - // SpecFlowLangLexer.g:23:10: 'Then' - { - Match("Then"); if (state.failed) return ; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "T_THEN" - - // $ANTLR start "T_AND" - public void mT_AND() // throws RecognitionException [2] - { - try - { - int _type = T_AND; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:24:7: ( 'And' ) - // SpecFlowLangLexer.g:24:9: 'And' - { - Match("And"); if (state.failed) return ; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "T_AND" - - // $ANTLR start "T_BUT" - public void mT_BUT() // throws RecognitionException [2] - { - try - { - int _type = T_BUT; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:25:7: ( 'But' ) - // SpecFlowLangLexer.g:25:9: 'But' - { - Match("But"); if (state.failed) return ; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "T_BUT" - - // $ANTLR start "MLTEXT" - public void mMLTEXT() // throws RecognitionException [2] - { - try - { - int _type = MLTEXT; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:27:9: ( '\"\"\"' ) - // SpecFlowLangLexer.g:27:11: '\"\"\"' - { - Match("\"\"\""); if (state.failed) return ; - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "MLTEXT" - - // $ANTLR start "CELLSEP" - public void mCELLSEP() // throws RecognitionException [2] - { - try - { - int _type = CELLSEP; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:28:10: ( '|' ) - // SpecFlowLangLexer.g:28:12: '|' - { - Match('|'); if (state.failed) return ; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "CELLSEP" - - // $ANTLR start "AT" - public void mAT() // throws RecognitionException [2] - { - try - { - int _type = AT; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:29:13: ( '@' ) - // SpecFlowLangLexer.g:29:15: '@' - { - Match('@'); if (state.failed) return ; - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "AT" - - // $ANTLR start "COMMENT" - public void mCOMMENT() // throws RecognitionException [2] - { - try - { - int _type = COMMENT; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:30:13: ( ( WSCHAR )* '#' ( NONNLCHR )* ) - // SpecFlowLangLexer.g:30:15: ( WSCHAR )* '#' ( NONNLCHR )* - { - // SpecFlowLangLexer.g:30:15: ( WSCHAR )* - do - { - int alt3 = 2; - int LA3_0 = input.LA(1); - - if ( (LA3_0 == '\t' || LA3_0 == ' ') ) - { - alt3 = 1; - } - - - switch (alt3) - { - case 1 : - // SpecFlowLangLexer.g:30:15: WSCHAR - { - mWSCHAR(); if (state.failed) return ; - - } - break; - - default: - goto loop3; - } - } while (true); - - loop3: - ; // Stops C# compiler whining that label 'loop3' has no statements - - Match('#'); if (state.failed) return ; - // SpecFlowLangLexer.g:30:27: ( NONNLCHR )* - do - { - int alt4 = 2; - int LA4_0 = input.LA(1); - - if ( ((LA4_0 >= '\u0000' && LA4_0 <= '\t') || (LA4_0 >= '\u000B' && LA4_0 <= '\f') || (LA4_0 >= '\u000E' && LA4_0 <= '\uFFFF')) ) - { - alt4 = 1; - } - - - switch (alt4) - { - case 1 : - // SpecFlowLangLexer.g:30:27: NONNLCHR - { - mNONNLCHR(); if (state.failed) return ; - - } - break; - - default: - goto loop4; - } - } while (true); - - loop4: - ; // Stops C# compiler whining that label 'loop4' has no statements - - if ( (state.backtracking == 1) ) - { - _channel = Token.HIDDEN_CHANNEL; - } - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "COMMENT" - - // $ANTLR start "WS" - public void mWS() // throws RecognitionException [2] - { - try - { - int _type = WS; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:31:13: ( ( WSCHAR )+ ) - // SpecFlowLangLexer.g:31:15: ( WSCHAR )+ - { - // SpecFlowLangLexer.g:31:15: ( WSCHAR )+ - int cnt5 = 0; - do - { - int alt5 = 2; - int LA5_0 = input.LA(1); - - if ( (LA5_0 == '\t' || LA5_0 == ' ') ) - { - alt5 = 1; - } - - - switch (alt5) - { - case 1 : - // SpecFlowLangLexer.g:31:15: WSCHAR - { - mWSCHAR(); if (state.failed) return ; - - } - break; - - default: - if ( cnt5 >= 1 ) goto loop5; - if ( state.backtracking > 0 ) {state.failed = true; return ;} - EarlyExitException eee5 = - new EarlyExitException(5, input); - throw eee5; - } - cnt5++; - } while (true); - - loop5: - ; // Stops C# compiler whinging that label 'loop5' has no statements - - - } - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "WS" - - // $ANTLR start "NEWLINE" - public void mNEWLINE() // throws RecognitionException [2] - { - try - { - int _type = NEWLINE; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:32:13: ( '\\r\\n' | '\\n' ) - int alt6 = 2; - int LA6_0 = input.LA(1); - - if ( (LA6_0 == '\r') ) - { - alt6 = 1; - } - else if ( (LA6_0 == '\n') ) - { - alt6 = 2; - } - else - { - if ( state.backtracking > 0 ) {state.failed = true; return ;} - NoViableAltException nvae_d6s0 = - new NoViableAltException("", 6, 0, input); - - throw nvae_d6s0; - } - switch (alt6) - { - case 1 : - // SpecFlowLangLexer.g:32:15: '\\r\\n' - { - Match("\r\n"); if (state.failed) return ; - - - } - break; - case 2 : - // SpecFlowLangLexer.g:32:24: '\\n' - { - Match('\n'); if (state.failed) return ; - - } - break; - - } - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "NEWLINE" - - // $ANTLR start "WORDCHAR" - public void mWORDCHAR() // throws RecognitionException [2] - { - try - { - int _type = WORDCHAR; - int _channel = DEFAULT_TOKEN_CHANNEL; - // SpecFlowLangLexer.g:33:13: ( ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ ) - // SpecFlowLangLexer.g:33:15: ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ - { - // SpecFlowLangLexer.g:33:15: ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ - int cnt7 = 0; - do - { - int alt7 = 7; - int LA7_0 = input.LA(1); - - if ( ((LA7_0 >= '\u0000' && LA7_0 <= '\b')) ) - { - alt7 = 1; - } - else if ( ((LA7_0 >= '\u000B' && LA7_0 <= '\f')) ) - { - alt7 = 2; - } - else if ( ((LA7_0 >= '\u000E' && LA7_0 <= '\u001F')) ) - { - alt7 = 3; - } - else if ( ((LA7_0 >= '!' && LA7_0 <= '\"')) ) - { - alt7 = 4; - } - else if ( ((LA7_0 >= '$' && LA7_0 <= '?')) ) - { - alt7 = 5; - } - else if ( ((LA7_0 >= 'A' && LA7_0 <= '\uFFFF')) ) - { - alt7 = 6; - } - - - switch (alt7) - { - case 1 : - // SpecFlowLangLexer.g:33:16: ( '\\u0000' .. '\\b' ) - { - // SpecFlowLangLexer.g:33:16: ( '\\u0000' .. '\\b' ) - // SpecFlowLangLexer.g:33:17: '\\u0000' .. '\\b' - { - MatchRange('\u0000','\b'); if (state.failed) return ; - - } - - - } - break; - case 2 : - // SpecFlowLangLexer.g:34:7: ( '\\u000B' .. '\\f' ) - { - // SpecFlowLangLexer.g:34:7: ( '\\u000B' .. '\\f' ) - // SpecFlowLangLexer.g:34:8: '\\u000B' .. '\\f' - { - MatchRange('\u000B','\f'); if (state.failed) return ; - - } - - - } - break; - case 3 : - // SpecFlowLangLexer.g:35:7: ( '\\u000E' .. '\\u001F' ) - { - // SpecFlowLangLexer.g:35:7: ( '\\u000E' .. '\\u001F' ) - // SpecFlowLangLexer.g:35:8: '\\u000E' .. '\\u001F' - { - MatchRange('\u000E','\u001F'); if (state.failed) return ; - - } - - - } - break; - case 4 : - // SpecFlowLangLexer.g:36:7: ( '!' .. '\"' ) - { - // SpecFlowLangLexer.g:36:7: ( '!' .. '\"' ) - // SpecFlowLangLexer.g:36:8: '!' .. '\"' - { - MatchRange('!','\"'); if (state.failed) return ; - - } - - - } - break; - case 5 : - // SpecFlowLangLexer.g:37:7: ( '$' .. '?' ) - { - // SpecFlowLangLexer.g:37:7: ( '$' .. '?' ) - // SpecFlowLangLexer.g:37:8: '$' .. '?' - { - MatchRange('$','?'); if (state.failed) return ; - - } - - - } - break; - case 6 : - // SpecFlowLangLexer.g:38:7: ( 'A' .. '\\uFFFF' ) - { - // SpecFlowLangLexer.g:38:7: ( 'A' .. '\\uFFFF' ) - // SpecFlowLangLexer.g:38:8: 'A' .. '\\uFFFF' - { - MatchRange('A','\uFFFF'); if (state.failed) return ; - - } - - - } - break; - - default: - if ( cnt7 >= 1 ) goto loop7; - if ( state.backtracking > 0 ) {state.failed = true; return ;} - EarlyExitException eee7 = - new EarlyExitException(7, input); - throw eee7; - } - cnt7++; - } while (true); - - loop7: - ; // Stops C# compiler whinging that label 'loop7' has no statements - - - } - - state.type = _type; - state.channel = _channel; - } - finally - { - } - } - // $ANTLR end "WORDCHAR" - - override public void mTokens() // throws RecognitionException +namespace TechTalk.SpecFlow.Parser.Grammar +{ + public abstract class SpecFlowLangLexer : Lexer { - // SpecFlowLangLexer.g:1:39: ( T_FEATURE | T_BACKGROUND | T_SCENARIO | T_SCENARIO_OUTLINE | T_EXAMPLES | T_GIVEN | T_WHEN | T_THEN | T_AND | T_BUT | MLTEXT | CELLSEP | AT | COMMENT | WS | NEWLINE | WORDCHAR ) - int alt8 = 17; - alt8 = dfa8.Predict(input); - switch (alt8) - { - case 1 : - // SpecFlowLangLexer.g:1:41: T_FEATURE - { - mT_FEATURE(); if (state.failed) return ; - - } - break; - case 2 : - // SpecFlowLangLexer.g:1:51: T_BACKGROUND - { - mT_BACKGROUND(); if (state.failed) return ; - - } - break; - case 3 : - // SpecFlowLangLexer.g:1:64: T_SCENARIO - { - mT_SCENARIO(); if (state.failed) return ; - - } - break; - case 4 : - // SpecFlowLangLexer.g:1:75: T_SCENARIO_OUTLINE - { - mT_SCENARIO_OUTLINE(); if (state.failed) return ; - - } - break; - case 5 : - // SpecFlowLangLexer.g:1:94: T_EXAMPLES - { - mT_EXAMPLES(); if (state.failed) return ; - - } - break; - case 6 : - // SpecFlowLangLexer.g:1:105: T_GIVEN - { - mT_GIVEN(); if (state.failed) return ; - - } - break; - case 7 : - // SpecFlowLangLexer.g:1:113: T_WHEN - { - mT_WHEN(); if (state.failed) return ; - - } - break; - case 8 : - // SpecFlowLangLexer.g:1:120: T_THEN - { - mT_THEN(); if (state.failed) return ; - - } - break; - case 9 : - // SpecFlowLangLexer.g:1:127: T_AND - { - mT_AND(); if (state.failed) return ; - - } - break; - case 10 : - // SpecFlowLangLexer.g:1:133: T_BUT - { - mT_BUT(); if (state.failed) return ; - - } - break; - case 11 : - // SpecFlowLangLexer.g:1:139: MLTEXT - { - mMLTEXT(); if (state.failed) return ; - - } - break; - case 12 : - // SpecFlowLangLexer.g:1:146: CELLSEP - { - mCELLSEP(); if (state.failed) return ; - - } - break; - case 13 : - // SpecFlowLangLexer.g:1:154: AT - { - mAT(); if (state.failed) return ; - - } - break; - case 14 : - // SpecFlowLangLexer.g:1:157: COMMENT - { - mCOMMENT(); if (state.failed) return ; - - } - break; - case 15 : - // SpecFlowLangLexer.g:1:165: WS - { - mWS(); if (state.failed) return ; - - } - break; - case 16 : - // SpecFlowLangLexer.g:1:168: NEWLINE - { - mNEWLINE(); if (state.failed) return ; - - } - break; - case 17 : - // SpecFlowLangLexer.g:1:176: WORDCHAR - { - mWORDCHAR(); if (state.failed) return ; - - } - break; - - } - - } - - // $ANTLR start "synpred1_SpecFlowLangLexer" - public void synpred1_SpecFlowLangLexer_fragment() { - // SpecFlowLangLexer.g:1:41: ( T_FEATURE ) - // SpecFlowLangLexer.g:1:41: T_FEATURE - { - mT_FEATURE(); if (state.failed) return ; - - } - } - // $ANTLR end "synpred1_SpecFlowLangLexer" - - // $ANTLR start "synpred2_SpecFlowLangLexer" - public void synpred2_SpecFlowLangLexer_fragment() { - // SpecFlowLangLexer.g:1:51: ( T_BACKGROUND ) - // SpecFlowLangLexer.g:1:51: T_BACKGROUND - { - mT_BACKGROUND(); if (state.failed) return ; - - } - } - // $ANTLR end "synpred2_SpecFlowLangLexer" - - // $ANTLR start "synpred3_SpecFlowLangLexer" - public void synpred3_SpecFlowLangLexer_fragment() { - // SpecFlowLangLexer.g:1:64: ( T_SCENARIO ) - // SpecFlowLangLexer.g:1:64: T_SCENARIO - { - mT_SCENARIO(); if (state.failed) return ; - - } - } - // $ANTLR end "synpred3_SpecFlowLangLexer" - - // $ANTLR start "synpred4_SpecFlowLangLexer" - public void synpred4_SpecFlowLangLexer_fragment() { - // SpecFlowLangLexer.g:1:75: ( T_SCENARIO_OUTLINE ) - // SpecFlowLangLexer.g:1:75: T_SCENARIO_OUTLINE - { - mT_SCENARIO_OUTLINE(); if (state.failed) return ; - - } - } - // $ANTLR end "synpred4_SpecFlowLangLexer" - - // $ANTLR start "synpred5_SpecFlowLangLexer" - public void synpred5_SpecFlowLangLexer_fragment() { - // SpecFlowLangLexer.g:1:94: ( T_EXAMPLES ) - // SpecFlowLangLexer.g:1:94: T_EXAMPLES - { - mT_EXAMPLES(); if (state.failed) return ; - - } - } - // $ANTLR end "synpred5_SpecFlowLangLexer" - - // $ANTLR start "synpred6_SpecFlowLangLexer" - public void synpred6_SpecFlowLangLexer_fragment() { - // SpecFlowLangLexer.g:1:105: ( T_GIVEN ) - // SpecFlowLangLexer.g:1:105: T_GIVEN - { - mT_GIVEN(); if (state.failed) return ; - - } - } - // $ANTLR end "synpred6_SpecFlowLangLexer" - - // $ANTLR start "synpred7_SpecFlowLangLexer" - public void synpred7_SpecFlowLangLexer_fragment() { - // SpecFlowLangLexer.g:1:113: ( T_WHEN ) - // SpecFlowLangLexer.g:1:113: T_WHEN - { - mT_WHEN(); if (state.failed) return ; - - } - } - // $ANTLR end "synpred7_SpecFlowLangLexer" - - // $ANTLR start "synpred8_SpecFlowLangLexer" - public void synpred8_SpecFlowLangLexer_fragment() { - // SpecFlowLangLexer.g:1:120: ( T_THEN ) - // SpecFlowLangLexer.g:1:120: T_THEN - { - mT_THEN(); if (state.failed) return ; - - } - } - // $ANTLR end "synpred8_SpecFlowLangLexer" - - // $ANTLR start "synpred9_SpecFlowLangLexer" - public void synpred9_SpecFlowLangLexer_fragment() { - // SpecFlowLangLexer.g:1:127: ( T_AND ) - // SpecFlowLangLexer.g:1:127: T_AND - { - mT_AND(); if (state.failed) return ; - - } - } - // $ANTLR end "synpred9_SpecFlowLangLexer" - - // $ANTLR start "synpred10_SpecFlowLangLexer" - public void synpred10_SpecFlowLangLexer_fragment() { - // SpecFlowLangLexer.g:1:133: ( T_BUT ) - // SpecFlowLangLexer.g:1:133: T_BUT - { - mT_BUT(); if (state.failed) return ; - - } - } - // $ANTLR end "synpred10_SpecFlowLangLexer" - - // $ANTLR start "synpred11_SpecFlowLangLexer" - public void synpred11_SpecFlowLangLexer_fragment() { - // SpecFlowLangLexer.g:1:139: ( MLTEXT ) - // SpecFlowLangLexer.g:1:139: MLTEXT - { - mMLTEXT(); if (state.failed) return ; - - } - } - // $ANTLR end "synpred11_SpecFlowLangLexer" - - // $ANTLR start "synpred12_SpecFlowLangLexer" - public void synpred12_SpecFlowLangLexer_fragment() { - // SpecFlowLangLexer.g:1:146: ( CELLSEP ) - // SpecFlowLangLexer.g:1:146: CELLSEP - { - mCELLSEP(); if (state.failed) return ; - - } - } - // $ANTLR end "synpred12_SpecFlowLangLexer" + public readonly List LexerErrors = new List(); - // $ANTLR start "synpred14_SpecFlowLangLexer" - public void synpred14_SpecFlowLangLexer_fragment() { - // SpecFlowLangLexer.g:1:157: ( COMMENT ) - // SpecFlowLangLexer.g:1:157: COMMENT + protected SpecFlowLangLexer() { - mCOMMENT(); if (state.failed) return ; - } - } - // $ANTLR end "synpred14_SpecFlowLangLexer" - // $ANTLR start "synpred15_SpecFlowLangLexer" - public void synpred15_SpecFlowLangLexer_fragment() { - // SpecFlowLangLexer.g:1:165: ( WS ) - // SpecFlowLangLexer.g:1:165: WS + protected SpecFlowLangLexer(ICharStream input) : base(input) { - mWS(); if (state.failed) return ; - } - } - // $ANTLR end "synpred15_SpecFlowLangLexer" - - public bool synpred6_SpecFlowLangLexer() - { - state.backtracking++; - int start = input.Mark(); - try - { - synpred6_SpecFlowLangLexer_fragment(); // can never throw exception - } - catch (RecognitionException re) - { - Console.Error.WriteLine("impossible: "+re); - } - bool success = !state.failed; - input.Rewind(start); - state.backtracking--; - state.failed = false; - return success; - } - public bool synpred3_SpecFlowLangLexer() - { - state.backtracking++; - int start = input.Mark(); - try - { - synpred3_SpecFlowLangLexer_fragment(); // can never throw exception - } - catch (RecognitionException re) - { - Console.Error.WriteLine("impossible: "+re); - } - bool success = !state.failed; - input.Rewind(start); - state.backtracking--; - state.failed = false; - return success; - } - public bool synpred12_SpecFlowLangLexer() - { - state.backtracking++; - int start = input.Mark(); - try - { - synpred12_SpecFlowLangLexer_fragment(); // can never throw exception - } - catch (RecognitionException re) - { - Console.Error.WriteLine("impossible: "+re); - } - bool success = !state.failed; - input.Rewind(start); - state.backtracking--; - state.failed = false; - return success; - } - public bool synpred10_SpecFlowLangLexer() - { - state.backtracking++; - int start = input.Mark(); - try - { - synpred10_SpecFlowLangLexer_fragment(); // can never throw exception - } - catch (RecognitionException re) - { - Console.Error.WriteLine("impossible: "+re); - } - bool success = !state.failed; - input.Rewind(start); - state.backtracking--; - state.failed = false; - return success; - } - public bool synpred7_SpecFlowLangLexer() - { - state.backtracking++; - int start = input.Mark(); - try - { - synpred7_SpecFlowLangLexer_fragment(); // can never throw exception - } - catch (RecognitionException re) - { - Console.Error.WriteLine("impossible: "+re); - } - bool success = !state.failed; - input.Rewind(start); - state.backtracking--; - state.failed = false; - return success; - } - public bool synpred1_SpecFlowLangLexer() - { - state.backtracking++; - int start = input.Mark(); - try - { - synpred1_SpecFlowLangLexer_fragment(); // can never throw exception - } - catch (RecognitionException re) - { - Console.Error.WriteLine("impossible: "+re); - } - bool success = !state.failed; - input.Rewind(start); - state.backtracking--; - state.failed = false; - return success; - } - public bool synpred11_SpecFlowLangLexer() - { - state.backtracking++; - int start = input.Mark(); - try - { - synpred11_SpecFlowLangLexer_fragment(); // can never throw exception - } - catch (RecognitionException re) - { - Console.Error.WriteLine("impossible: "+re); - } - bool success = !state.failed; - input.Rewind(start); - state.backtracking--; - state.failed = false; - return success; - } - public bool synpred4_SpecFlowLangLexer() - { - state.backtracking++; - int start = input.Mark(); - try - { - synpred4_SpecFlowLangLexer_fragment(); // can never throw exception - } - catch (RecognitionException re) - { - Console.Error.WriteLine("impossible: "+re); - } - bool success = !state.failed; - input.Rewind(start); - state.backtracking--; - state.failed = false; - return success; - } - public bool synpred9_SpecFlowLangLexer() - { - state.backtracking++; - int start = input.Mark(); - try - { - synpred9_SpecFlowLangLexer_fragment(); // can never throw exception - } - catch (RecognitionException re) - { - Console.Error.WriteLine("impossible: "+re); - } - bool success = !state.failed; - input.Rewind(start); - state.backtracking--; - state.failed = false; - return success; - } - public bool synpred15_SpecFlowLangLexer() - { - state.backtracking++; - int start = input.Mark(); - try - { - synpred15_SpecFlowLangLexer_fragment(); // can never throw exception - } - catch (RecognitionException re) - { - Console.Error.WriteLine("impossible: "+re); - } - bool success = !state.failed; - input.Rewind(start); - state.backtracking--; - state.failed = false; - return success; - } - public bool synpred2_SpecFlowLangLexer() - { - state.backtracking++; - int start = input.Mark(); - try - { - synpred2_SpecFlowLangLexer_fragment(); // can never throw exception - } - catch (RecognitionException re) - { - Console.Error.WriteLine("impossible: "+re); - } - bool success = !state.failed; - input.Rewind(start); - state.backtracking--; - state.failed = false; - return success; - } - public bool synpred8_SpecFlowLangLexer() - { - state.backtracking++; - int start = input.Mark(); - try - { - synpred8_SpecFlowLangLexer_fragment(); // can never throw exception - } - catch (RecognitionException re) - { - Console.Error.WriteLine("impossible: "+re); - } - bool success = !state.failed; - input.Rewind(start); - state.backtracking--; - state.failed = false; - return success; - } - public bool synpred14_SpecFlowLangLexer() - { - state.backtracking++; - int start = input.Mark(); - try - { - synpred14_SpecFlowLangLexer_fragment(); // can never throw exception - } - catch (RecognitionException re) - { - Console.Error.WriteLine("impossible: "+re); - } - bool success = !state.failed; - input.Rewind(start); - state.backtracking--; - state.failed = false; - return success; - } - public bool synpred5_SpecFlowLangLexer() - { - state.backtracking++; - int start = input.Mark(); - try - { - synpred5_SpecFlowLangLexer_fragment(); // can never throw exception - } - catch (RecognitionException re) - { - Console.Error.WriteLine("impossible: "+re); - } - bool success = !state.failed; - input.Rewind(start); - state.backtracking--; - state.failed = false; - return success; - } - - - protected DFA8 dfa8; - private void InitializeCyclicDFAs() - { - this.dfa8 = new DFA8(this); - this.dfa8.specialStateTransitionHandler = new DFA.SpecialStateTransitionHandler(DFA8_SpecialStateTransition); - } - - const string DFA8_eotS = - "\x1d\uffff"; - const string DFA8_eofS = - "\x1d\uffff"; - const string DFA8_minS = - "\x01\x00\x01\uffff\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00"+ - "\x01\uffff\x01\x00\x01\uffff\x01\x00\x01\uffff\x01\x00\x03\uffff"+ - "\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff\x01\x00\x02"+ - "\uffff\x01\x00\x01\uffff"; - const string DFA8_maxS = - "\x01\uffff\x01\uffff\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00"+ - "\x01\uffff\x01\x00\x01\uffff\x01\x00\x01\uffff\x01\x00\x03\uffff"+ - "\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff\x01\x00\x02"+ - "\uffff\x01\x00\x01\uffff"; - const string DFA8_acceptS = - "\x01\uffff\x01\x11\x01\uffff\x01\x01\x01\uffff\x01\x06\x01\x0d"+ - "\x01\uffff\x01\x05\x01\uffff\x01\x09\x01\uffff\x01\x0b\x01\uffff"+ - "\x01\x0c\x01\x10\x01\x0e\x01\uffff\x01\x07\x01\uffff\x01\x02\x01"+ - "\x0a\x01\uffff\x01\x08\x01\uffff\x01\x03\x01\x04\x01\uffff\x01\x0f"; - const string DFA8_specialS = - "\x01\x00\x01\uffff\x01\x01\x01\uffff\x01\x02\x02\uffff\x01\x03"+ - "\x01\uffff\x01\x04\x01\uffff\x01\x05\x01\uffff\x01\x06\x03\uffff"+ - "\x01\x07\x01\uffff\x01\x08\x02\uffff\x01\x09\x01\uffff\x01\x0a\x02"+ - "\uffff\x01\x0b\x01\uffff}>"; - static readonly string[] DFA8_transitionS = { - "\x09\x01\x01\x1b\x01\x0f\x02\x01\x01\x0f\x12\x01\x01\x1b\x01"+ - "\x01\x01\x0b\x01\x10\x1c\x01\x01\x06\x01\x09\x01\x13\x02\x01"+ - "\x01\x07\x01\x02\x01\x04\x0b\x01\x01\x18\x01\x16\x02\x01\x01"+ - "\x11\x24\x01\x01\x0d\uff83\x01", - "", - "\x01\uffff", - "", - "\x01\uffff", - "", - "", - "\x01\uffff", - "", - "\x01\uffff", - "", - "\x01\uffff", - "", - "\x01\uffff", - "", - "", - "", - "\x01\uffff", - "", - "\x01\uffff", - "", - "", - "\x01\uffff", - "", - "\x01\uffff", - "", - "", - "\x01\uffff", - "" - }; - - static readonly short[] DFA8_eot = DFA.UnpackEncodedString(DFA8_eotS); - static readonly short[] DFA8_eof = DFA.UnpackEncodedString(DFA8_eofS); - static readonly char[] DFA8_min = DFA.UnpackEncodedStringToUnsignedChars(DFA8_minS); - static readonly char[] DFA8_max = DFA.UnpackEncodedStringToUnsignedChars(DFA8_maxS); - static readonly short[] DFA8_accept = DFA.UnpackEncodedString(DFA8_acceptS); - static readonly short[] DFA8_special = DFA.UnpackEncodedString(DFA8_specialS); - static readonly short[][] DFA8_transition = DFA.UnpackEncodedStringArray(DFA8_transitionS); - protected class DFA8 : DFA - { - public DFA8(BaseRecognizer recognizer) - { - this.recognizer = recognizer; - this.decisionNumber = 8; - this.eot = DFA8_eot; - this.eof = DFA8_eof; - this.min = DFA8_min; - this.max = DFA8_max; - this.accept = DFA8_accept; - this.special = DFA8_special; - this.transition = DFA8_transition; - - } - - override public string Description + protected SpecFlowLangLexer(ICharStream input, RecognizerSharedState state) : base(input, state) { - get { return "1:1: Tokens options {k=1; backtrack=true; } : ( T_FEATURE | T_BACKGROUND | T_SCENARIO | T_SCENARIO_OUTLINE | T_EXAMPLES | T_GIVEN | T_WHEN | T_THEN | T_AND | T_BUT | MLTEXT | CELLSEP | AT | COMMENT | WS | NEWLINE | WORDCHAR );"; } } - } - - - protected internal int DFA8_SpecialStateTransition(DFA dfa, int s, IIntStream _input) //throws NoViableAltException - { - IIntStream input = _input; - int _s = s; - switch ( s ) - { - case 0 : - int LA8_0 = input.LA(1); - - s = -1; - if ( ((LA8_0 >= '\u0000' && LA8_0 <= '\b') || (LA8_0 >= '\u000B' && LA8_0 <= '\f') || (LA8_0 >= '\u000E' && LA8_0 <= '\u001F') || LA8_0 == '!' || (LA8_0 >= '$' && LA8_0 <= '?') || (LA8_0 >= 'C' && LA8_0 <= 'D') || (LA8_0 >= 'H' && LA8_0 <= 'R') || (LA8_0 >= 'U' && LA8_0 <= 'V') || (LA8_0 >= 'X' && LA8_0 <= '{') || (LA8_0 >= '}' && LA8_0 <= '\uFFFF')) ) { s = 1; } - - else if ( (LA8_0 == 'F') ) { s = 2; } + //public override void DisplayRecognitionError(string[] tokenNames, Antlr.Runtime.RecognitionException e) + //{ + // this.EmitErrorMessage( + // string.Format("({0},{1}): lexer error: {2}", e.Line, e.CharPositionInLine, this.GetErrorMessage(e, tokenNames))); + //} - else if ( (LA8_0 == 'G') ) { s = 4; } - - else if ( (LA8_0 == '@') ) { s = 6; } - - else if ( (LA8_0 == 'E') ) { s = 7; } - - else if ( (LA8_0 == 'A') ) { s = 9; } - - else if ( (LA8_0 == '\"') ) { s = 11; } - - else if ( (LA8_0 == '|') ) { s = 13; } - - else if ( (LA8_0 == '\n' || LA8_0 == '\r') ) { s = 15; } - - else if ( (LA8_0 == '#') ) { s = 16; } - - else if ( (LA8_0 == 'W') ) { s = 17; } - - else if ( (LA8_0 == 'B') ) { s = 19; } - - else if ( (LA8_0 == 'T') ) { s = 22; } - - else if ( (LA8_0 == 'S') ) { s = 24; } - - else if ( (LA8_0 == '\t' || LA8_0 == ' ') ) { s = 27; } - - if ( s >= 0 ) return s; - break; - case 1 : - int LA8_2 = input.LA(1); - - - int index8_2 = input.Index(); - input.Rewind(); - s = -1; - if ( (synpred1_SpecFlowLangLexer()) ) { s = 3; } - - else if ( (true) ) { s = 1; } - - - input.Seek(index8_2); - if ( s >= 0 ) return s; - break; - case 2 : - int LA8_4 = input.LA(1); - - - int index8_4 = input.Index(); - input.Rewind(); - s = -1; - if ( (synpred6_SpecFlowLangLexer()) ) { s = 5; } - - else if ( (true) ) { s = 1; } - - - input.Seek(index8_4); - if ( s >= 0 ) return s; - break; - case 3 : - int LA8_7 = input.LA(1); - - - int index8_7 = input.Index(); - input.Rewind(); - s = -1; - if ( (synpred5_SpecFlowLangLexer()) ) { s = 8; } - - else if ( (true) ) { s = 1; } - - - input.Seek(index8_7); - if ( s >= 0 ) return s; - break; - case 4 : - int LA8_9 = input.LA(1); - - - int index8_9 = input.Index(); - input.Rewind(); - s = -1; - if ( (synpred9_SpecFlowLangLexer()) ) { s = 10; } - - else if ( (true) ) { s = 1; } - - - input.Seek(index8_9); - if ( s >= 0 ) return s; - break; - case 5 : - int LA8_11 = input.LA(1); - - - int index8_11 = input.Index(); - input.Rewind(); - s = -1; - if ( (synpred11_SpecFlowLangLexer()) ) { s = 12; } - - else if ( (true) ) { s = 1; } - - - input.Seek(index8_11); - if ( s >= 0 ) return s; - break; - case 6 : - int LA8_13 = input.LA(1); - - - int index8_13 = input.Index(); - input.Rewind(); - s = -1; - if ( (synpred12_SpecFlowLangLexer()) ) { s = 14; } - - else if ( (true) ) { s = 1; } - - - input.Seek(index8_13); - if ( s >= 0 ) return s; - break; - case 7 : - int LA8_17 = input.LA(1); - - - int index8_17 = input.Index(); - input.Rewind(); - s = -1; - if ( (synpred7_SpecFlowLangLexer()) ) { s = 18; } - - else if ( (true) ) { s = 1; } - - - input.Seek(index8_17); - if ( s >= 0 ) return s; - break; - case 8 : - int LA8_19 = input.LA(1); - - - int index8_19 = input.Index(); - input.Rewind(); - s = -1; - if ( (synpred2_SpecFlowLangLexer()) ) { s = 20; } - - else if ( (synpred10_SpecFlowLangLexer()) ) { s = 21; } - - else if ( (true) ) { s = 1; } - - - input.Seek(index8_19); - if ( s >= 0 ) return s; - break; - case 9 : - int LA8_22 = input.LA(1); - - - int index8_22 = input.Index(); - input.Rewind(); - s = -1; - if ( (synpred8_SpecFlowLangLexer()) ) { s = 23; } - - else if ( (true) ) { s = 1; } - - - input.Seek(index8_22); - if ( s >= 0 ) return s; - break; - case 10 : - int LA8_24 = input.LA(1); - - - int index8_24 = input.Index(); - input.Rewind(); - s = -1; - if ( (synpred3_SpecFlowLangLexer()) ) { s = 25; } - - else if ( (synpred4_SpecFlowLangLexer()) ) { s = 26; } - - else if ( (synpred5_SpecFlowLangLexer()) ) { s = 8; } - - else if ( (true) ) { s = 1; } - - - input.Seek(index8_24); - if ( s >= 0 ) return s; - break; - case 11 : - int LA8_27 = input.LA(1); - - - int index8_27 = input.Index(); - input.Rewind(); - s = -1; - if ( (synpred14_SpecFlowLangLexer()) ) { s = 16; } - - else if ( (synpred15_SpecFlowLangLexer()) ) { s = 28; } - - - input.Seek(index8_27); - if ( s >= 0 ) return s; - break; - } - if (state.backtracking > 0) {state.failed = true; return -1;} - NoViableAltException nvae8 = - new NoViableAltException(dfa.Description, 8, _s, input); - dfa.Error(nvae8); - throw nvae8; + //public override void EmitErrorMessage(string msg) + //{ + // Debug.WriteLine(msg); + // //LexerErrors.Add(msg); + //} } - - -} } \ No newline at end of file diff --git a/Parser/Grammar/SpecFlowLangLexer.g b/Parser/Grammar/SpecFlowLangLexer.g deleted file mode 100644 index 20ef651cf..000000000 --- a/Parser/Grammar/SpecFlowLangLexer.g +++ /dev/null @@ -1,39 +0,0 @@ -lexer grammar SpecFlowLangLexer; - -options { - language = CSharp2; - filter=true; -} - -@lexer::namespace { TechTalk.SpecFlow.Parser.Grammar } - -fragment WSCHAR : (' '|'\t'); -fragment NONWCHR : (' '|'\t'|'\r'|'\n'|'#'|'@'); -fragment NEWLINECHR : ('\r'|'\n'); -fragment NONNLCHR : ('\u0000'..'\t')|('\u000B'..'\f')|('\u000E'..'\uFFFF'); - - -T_FEATURE : 'Feature:'; -T_BACKGROUND : 'Background:'; -T_SCENARIO : 'Scenario:'; -T_SCENARIO_OUTLINE : 'Scenario Outline:'; -T_EXAMPLES : 'Examples:'|'Scenarios:'; -T_GIVEN : 'Given'; -T_WHEN : 'When'; -T_THEN : 'Then'; -T_AND : 'And'; -T_BUT : 'But'; - -MLTEXT : '"""'; -CELLSEP : '|'; -AT : '@'; -COMMENT : WSCHAR* '#' NONNLCHR* { $channel = Token.HIDDEN_CHANNEL; }; -WS : WSCHAR+; -NEWLINE : '\r\n' | '\n'; -WORDCHAR : (('\u0000'..'\b') - | ('\u000B'..'\f') - | ('\u000E'..'\u001F') - | ('!'..'"') - | ('$'..'?') - | ('A'..'\uFFFF'))+ ; - \ No newline at end of file diff --git a/Parser/Grammar/SpecFlowLangLexer_de.cs b/Parser/Grammar/SpecFlowLangLexer_de.cs new file mode 100644 index 000000000..f84db1c01 --- /dev/null +++ b/Parser/Grammar/SpecFlowLangLexer_de.cs @@ -0,0 +1,1805 @@ +// $ANTLR 3.1.2 SpecFlowLangLexer_de.g 2009-11-09 17:26:25 + +// The variable 'variable' is assigned but its value is never used. +#pragma warning disable 168, 219 +// Unreachable code detected. +#pragma warning disable 162 +namespace TechTalk.SpecFlow.Parser.Grammar +{ + +using System; +using Antlr.Runtime; +using IList = System.Collections.IList; +using ArrayList = System.Collections.ArrayList; +using Stack = Antlr.Runtime.Collections.StackList; + +using IDictionary = System.Collections.IDictionary; +using Hashtable = System.Collections.Hashtable; + +public partial class SpecFlowLangLexer_de : SpecFlowLangLexer { + public const int NEWLINECHR = 6; + public const int T_BACKGROUND = 9; + public const int T_THEN = 15; + public const int T_SCENARIO_OUTLINE = 11; + public const int MLTEXT = 18; + public const int WSCHAR = 4; + public const int NONNLCHR = 7; + public const int EOF = -1; + public const int T_AND = 16; + public const int T_GIVEN = 13; + public const int AT = 20; + public const int WORDCHAR = 24; + public const int T_BUT = 17; + public const int WS = 22; + public const int NEWLINE = 23; + public const int T_WHEN = 14; + public const int T_FEATURE = 8; + public const int T_EXAMPLES = 12; + public const int NONWCHR = 5; + public const int T_SCENARIO = 10; + public const int COMMENT = 21; + public const int CELLSEP = 19; + + // delegates + // delegators + + public SpecFlowLangLexer_de() + { + InitializeCyclicDFAs(); + } + public SpecFlowLangLexer_de(ICharStream input) + : this(input, null) { + } + public SpecFlowLangLexer_de(ICharStream input, RecognizerSharedState state) + : base(input, state) { + InitializeCyclicDFAs(); + + } + + override public string GrammarFileName + { + get { return "SpecFlowLangLexer_de.g";} + } + + override public IToken NextToken() + { + while (true) + { + if ( input.LA(1) == (int)CharStreamConstants.EOF ) + { + return Token.EOF_TOKEN; + } + + state.token = null; + state.channel = Token.DEFAULT_CHANNEL; + state.tokenStartCharIndex = input.Index(); + state.tokenStartCharPositionInLine = input.CharPositionInLine; + state.tokenStartLine = input.Line; + state.text = null; + try + { + int m = input.Mark(); + state.backtracking = 1; + state.failed = false; + mTokens(); + state.backtracking = 0; + if ( state.failed ) + { + input.Rewind(m); + input.Consume(); + } + else + { + Emit(); + return state.token; + } + } + catch (RecognitionException re) + { + // shouldn't happen in backtracking mode, but... + ReportError(re); + Recover(re); + } + } + } + + override public void Memoize(IIntStream input, int ruleIndex, int ruleStartIndex) + { + if ( state.backtracking > 1 ) + base.Memoize(input, ruleIndex, ruleStartIndex); + } + + override public bool AlreadyParsedRule(IIntStream input, int ruleIndex) + { + if ( state.backtracking>1 ) + return base.AlreadyParsedRule(input, ruleIndex); + return false; + }// $ANTLR start "WSCHAR" + public void mWSCHAR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_de.g:12:25: ( ( ' ' | '\\t' ) ) + // SpecFlowLangLexer_de.g:12:27: ( ' ' | '\\t' ) + { + if ( input.LA(1) == '\t' || input.LA(1) == ' ' ) + { + input.Consume(); + state.failed = false; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + Recover(mse); + throw mse;} + + + } + + } + finally + { + } + } + // $ANTLR end "WSCHAR" + + // $ANTLR start "NONWCHR" + public void mNONWCHR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_de.g:13:25: ( ( ' ' | '\\t' | '\\r' | '\\n' | '#' | '@' ) ) + // SpecFlowLangLexer_de.g:13:27: ( ' ' | '\\t' | '\\r' | '\\n' | '#' | '@' ) + { + if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n') || input.LA(1) == '\r' || input.LA(1) == ' ' || input.LA(1) == '#' || input.LA(1) == '@' ) + { + input.Consume(); + state.failed = false; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + Recover(mse); + throw mse;} + + + } + + } + finally + { + } + } + // $ANTLR end "NONWCHR" + + // $ANTLR start "NEWLINECHR" + public void mNEWLINECHR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_de.g:14:25: ( ( '\\r' | '\\n' ) ) + // SpecFlowLangLexer_de.g:14:27: ( '\\r' | '\\n' ) + { + if ( input.LA(1) == '\n' || input.LA(1) == '\r' ) + { + input.Consume(); + state.failed = false; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + Recover(mse); + throw mse;} + + + } + + } + finally + { + } + } + // $ANTLR end "NEWLINECHR" + + // $ANTLR start "NONNLCHR" + public void mNONNLCHR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_de.g:15:25: ( ( '\\u0000' .. '\\t' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\uFFFF' ) ) + int alt1 = 3; + int LA1_0 = input.LA(1); + + if ( ((LA1_0 >= '\u0000' && LA1_0 <= '\t')) ) + { + alt1 = 1; + } + else if ( ((LA1_0 >= '\u000B' && LA1_0 <= '\f')) ) + { + alt1 = 2; + } + else if ( ((LA1_0 >= '\u000E' && LA1_0 <= '\uFFFF')) ) + { + alt1 = 3; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + NoViableAltException nvae_d1s0 = + new NoViableAltException("", 1, 0, input); + + throw nvae_d1s0; + } + switch (alt1) + { + case 1 : + // SpecFlowLangLexer_de.g:15:27: ( '\\u0000' .. '\\t' ) + { + // SpecFlowLangLexer_de.g:15:27: ( '\\u0000' .. '\\t' ) + // SpecFlowLangLexer_de.g:15:28: '\\u0000' .. '\\t' + { + MatchRange('\u0000','\t'); if (state.failed) return ; + + } + + + } + break; + case 2 : + // SpecFlowLangLexer_de.g:15:44: ( '\\u000B' .. '\\f' ) + { + // SpecFlowLangLexer_de.g:15:44: ( '\\u000B' .. '\\f' ) + // SpecFlowLangLexer_de.g:15:45: '\\u000B' .. '\\f' + { + MatchRange('\u000B','\f'); if (state.failed) return ; + + } + + + } + break; + case 3 : + // SpecFlowLangLexer_de.g:15:61: ( '\\u000E' .. '\\uFFFF' ) + { + // SpecFlowLangLexer_de.g:15:61: ( '\\u000E' .. '\\uFFFF' ) + // SpecFlowLangLexer_de.g:15:62: '\\u000E' .. '\\uFFFF' + { + MatchRange('\u000E','\uFFFF'); if (state.failed) return ; + + } + + + } + break; + + } + } + finally + { + } + } + // $ANTLR end "NONNLCHR" + + // $ANTLR start "T_FEATURE" + public void mT_FEATURE() // throws RecognitionException [2] + { + try + { + int _type = T_FEATURE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:18:15: ( 'Funktionalit\\u00e4t:' ) + // SpecFlowLangLexer_de.g:18:17: 'Funktionalit\\u00e4t:' + { + Match("Funktionalit\u00e4t:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_FEATURE" + + // $ANTLR start "T_BACKGROUND" + public void mT_BACKGROUND() // throws RecognitionException [2] + { + try + { + int _type = T_BACKGROUND; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:19:18: ( 'Grundlage:' ) + // SpecFlowLangLexer_de.g:19:20: 'Grundlage:' + { + Match("Grundlage:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_BACKGROUND" + + // $ANTLR start "T_SCENARIO" + public void mT_SCENARIO() // throws RecognitionException [2] + { + try + { + int _type = T_SCENARIO; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:20:16: ( 'Szenario:' ) + // SpecFlowLangLexer_de.g:20:18: 'Szenario:' + { + Match("Szenario:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_SCENARIO" + + // $ANTLR start "T_SCENARIO_OUTLINE" + public void mT_SCENARIO_OUTLINE() // throws RecognitionException [2] + { + try + { + int _type = T_SCENARIO_OUTLINE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:21:24: ( 'Szenariogrundriss:' ) + // SpecFlowLangLexer_de.g:21:26: 'Szenariogrundriss:' + { + Match("Szenariogrundriss:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_SCENARIO_OUTLINE" + + // $ANTLR start "T_EXAMPLES" + public void mT_EXAMPLES() // throws RecognitionException [2] + { + try + { + int _type = T_EXAMPLES; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:22:16: ( 'Beispiele:' ) + // SpecFlowLangLexer_de.g:22:18: 'Beispiele:' + { + Match("Beispiele:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_EXAMPLES" + + // $ANTLR start "T_GIVEN" + public void mT_GIVEN() // throws RecognitionException [2] + { + try + { + int _type = T_GIVEN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:23:13: ( 'Gegeben sei' ) + // SpecFlowLangLexer_de.g:23:15: 'Gegeben sei' + { + Match("Gegeben sei"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_GIVEN" + + // $ANTLR start "T_WHEN" + public void mT_WHEN() // throws RecognitionException [2] + { + try + { + int _type = T_WHEN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:24:12: ( 'Wenn' ) + // SpecFlowLangLexer_de.g:24:14: 'Wenn' + { + Match("Wenn"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_WHEN" + + // $ANTLR start "T_THEN" + public void mT_THEN() // throws RecognitionException [2] + { + try + { + int _type = T_THEN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:25:12: ( 'Dann' ) + // SpecFlowLangLexer_de.g:25:14: 'Dann' + { + Match("Dann"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_THEN" + + // $ANTLR start "T_AND" + public void mT_AND() // throws RecognitionException [2] + { + try + { + int _type = T_AND; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:26:11: ( 'Und' ) + // SpecFlowLangLexer_de.g:26:13: 'Und' + { + Match("Und"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_AND" + + // $ANTLR start "T_BUT" + public void mT_BUT() // throws RecognitionException [2] + { + try + { + int _type = T_BUT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:27:11: ( 'Aber' ) + // SpecFlowLangLexer_de.g:27:13: 'Aber' + { + Match("Aber"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_BUT" + + // $ANTLR start "MLTEXT" + public void mMLTEXT() // throws RecognitionException [2] + { + try + { + int _type = MLTEXT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:29:13: ( '\"\"\"' ) + // SpecFlowLangLexer_de.g:29:15: '\"\"\"' + { + Match("\"\"\""); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "MLTEXT" + + // $ANTLR start "CELLSEP" + public void mCELLSEP() // throws RecognitionException [2] + { + try + { + int _type = CELLSEP; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:30:14: ( '|' ) + // SpecFlowLangLexer_de.g:30:16: '|' + { + Match('|'); if (state.failed) return ; + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "CELLSEP" + + // $ANTLR start "AT" + public void mAT() // throws RecognitionException [2] + { + try + { + int _type = AT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:31:17: ( '@' ) + // SpecFlowLangLexer_de.g:31:19: '@' + { + Match('@'); if (state.failed) return ; + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "AT" + + // $ANTLR start "COMMENT" + public void mCOMMENT() // throws RecognitionException [2] + { + try + { + int _type = COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:32:17: ( ( WSCHAR )* '#' ( NONNLCHR )* ) + // SpecFlowLangLexer_de.g:32:19: ( WSCHAR )* '#' ( NONNLCHR )* + { + // SpecFlowLangLexer_de.g:32:19: ( WSCHAR )* + do + { + int alt2 = 2; + int LA2_0 = input.LA(1); + + if ( (LA2_0 == '\t' || LA2_0 == ' ') ) + { + alt2 = 1; + } + + + switch (alt2) + { + case 1 : + // SpecFlowLangLexer_de.g:32:19: WSCHAR + { + mWSCHAR(); if (state.failed) return ; + + } + break; + + default: + goto loop2; + } + } while (true); + + loop2: + ; // Stops C# compiler whining that label 'loop2' has no statements + + Match('#'); if (state.failed) return ; + // SpecFlowLangLexer_de.g:32:31: ( NONNLCHR )* + do + { + int alt3 = 2; + int LA3_0 = input.LA(1); + + if ( ((LA3_0 >= '\u0000' && LA3_0 <= '\t') || (LA3_0 >= '\u000B' && LA3_0 <= '\f') || (LA3_0 >= '\u000E' && LA3_0 <= '\uFFFF')) ) + { + alt3 = 1; + } + + + switch (alt3) + { + case 1 : + // SpecFlowLangLexer_de.g:32:31: NONNLCHR + { + mNONNLCHR(); if (state.failed) return ; + + } + break; + + default: + goto loop3; + } + } while (true); + + loop3: + ; // Stops C# compiler whining that label 'loop3' has no statements + + if ( (state.backtracking == 1) ) + { + _channel = Token.HIDDEN_CHANNEL; + } + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "COMMENT" + + // $ANTLR start "WS" + public void mWS() // throws RecognitionException [2] + { + try + { + int _type = WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:33:17: ( ( WSCHAR )+ ) + // SpecFlowLangLexer_de.g:33:19: ( WSCHAR )+ + { + // SpecFlowLangLexer_de.g:33:19: ( WSCHAR )+ + int cnt4 = 0; + do + { + int alt4 = 2; + int LA4_0 = input.LA(1); + + if ( (LA4_0 == '\t' || LA4_0 == ' ') ) + { + alt4 = 1; + } + + + switch (alt4) + { + case 1 : + // SpecFlowLangLexer_de.g:33:19: WSCHAR + { + mWSCHAR(); if (state.failed) return ; + + } + break; + + default: + if ( cnt4 >= 1 ) goto loop4; + if ( state.backtracking > 0 ) {state.failed = true; return ;} + EarlyExitException eee4 = + new EarlyExitException(4, input); + throw eee4; + } + cnt4++; + } while (true); + + loop4: + ; // Stops C# compiler whinging that label 'loop4' has no statements + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "WS" + + // $ANTLR start "NEWLINE" + public void mNEWLINE() // throws RecognitionException [2] + { + try + { + int _type = NEWLINE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:34:17: ( '\\r\\n' | '\\n' ) + int alt5 = 2; + int LA5_0 = input.LA(1); + + if ( (LA5_0 == '\r') ) + { + alt5 = 1; + } + else if ( (LA5_0 == '\n') ) + { + alt5 = 2; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + NoViableAltException nvae_d5s0 = + new NoViableAltException("", 5, 0, input); + + throw nvae_d5s0; + } + switch (alt5) + { + case 1 : + // SpecFlowLangLexer_de.g:34:19: '\\r\\n' + { + Match("\r\n"); if (state.failed) return ; + + + } + break; + case 2 : + // SpecFlowLangLexer_de.g:34:28: '\\n' + { + Match('\n'); if (state.failed) return ; + + } + break; + + } + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "NEWLINE" + + // $ANTLR start "WORDCHAR" + public void mWORDCHAR() // throws RecognitionException [2] + { + try + { + int _type = WORDCHAR; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_de.g:35:17: ( ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ ) + // SpecFlowLangLexer_de.g:35:19: ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ + { + // SpecFlowLangLexer_de.g:35:19: ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ + int cnt6 = 0; + do + { + int alt6 = 7; + int LA6_0 = input.LA(1); + + if ( ((LA6_0 >= '\u0000' && LA6_0 <= '\b')) ) + { + alt6 = 1; + } + else if ( ((LA6_0 >= '\u000B' && LA6_0 <= '\f')) ) + { + alt6 = 2; + } + else if ( ((LA6_0 >= '\u000E' && LA6_0 <= '\u001F')) ) + { + alt6 = 3; + } + else if ( ((LA6_0 >= '!' && LA6_0 <= '\"')) ) + { + alt6 = 4; + } + else if ( ((LA6_0 >= '$' && LA6_0 <= '?')) ) + { + alt6 = 5; + } + else if ( ((LA6_0 >= 'A' && LA6_0 <= '\uFFFF')) ) + { + alt6 = 6; + } + + + switch (alt6) + { + case 1 : + // SpecFlowLangLexer_de.g:35:20: ( '\\u0000' .. '\\b' ) + { + // SpecFlowLangLexer_de.g:35:20: ( '\\u0000' .. '\\b' ) + // SpecFlowLangLexer_de.g:35:21: '\\u0000' .. '\\b' + { + MatchRange('\u0000','\b'); if (state.failed) return ; + + } + + + } + break; + case 2 : + // SpecFlowLangLexer_de.g:36:7: ( '\\u000B' .. '\\f' ) + { + // SpecFlowLangLexer_de.g:36:7: ( '\\u000B' .. '\\f' ) + // SpecFlowLangLexer_de.g:36:8: '\\u000B' .. '\\f' + { + MatchRange('\u000B','\f'); if (state.failed) return ; + + } + + + } + break; + case 3 : + // SpecFlowLangLexer_de.g:37:7: ( '\\u000E' .. '\\u001F' ) + { + // SpecFlowLangLexer_de.g:37:7: ( '\\u000E' .. '\\u001F' ) + // SpecFlowLangLexer_de.g:37:8: '\\u000E' .. '\\u001F' + { + MatchRange('\u000E','\u001F'); if (state.failed) return ; + + } + + + } + break; + case 4 : + // SpecFlowLangLexer_de.g:38:7: ( '!' .. '\"' ) + { + // SpecFlowLangLexer_de.g:38:7: ( '!' .. '\"' ) + // SpecFlowLangLexer_de.g:38:8: '!' .. '\"' + { + MatchRange('!','\"'); if (state.failed) return ; + + } + + + } + break; + case 5 : + // SpecFlowLangLexer_de.g:39:7: ( '$' .. '?' ) + { + // SpecFlowLangLexer_de.g:39:7: ( '$' .. '?' ) + // SpecFlowLangLexer_de.g:39:8: '$' .. '?' + { + MatchRange('$','?'); if (state.failed) return ; + + } + + + } + break; + case 6 : + // SpecFlowLangLexer_de.g:40:7: ( 'A' .. '\\uFFFF' ) + { + // SpecFlowLangLexer_de.g:40:7: ( 'A' .. '\\uFFFF' ) + // SpecFlowLangLexer_de.g:40:8: 'A' .. '\\uFFFF' + { + MatchRange('A','\uFFFF'); if (state.failed) return ; + + } + + + } + break; + + default: + if ( cnt6 >= 1 ) goto loop6; + if ( state.backtracking > 0 ) {state.failed = true; return ;} + EarlyExitException eee6 = + new EarlyExitException(6, input); + throw eee6; + } + cnt6++; + } while (true); + + loop6: + ; // Stops C# compiler whinging that label 'loop6' has no statements + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "WORDCHAR" + + override public void mTokens() // throws RecognitionException + { + // SpecFlowLangLexer_de.g:1:39: ( T_FEATURE | T_BACKGROUND | T_SCENARIO | T_SCENARIO_OUTLINE | T_EXAMPLES | T_GIVEN | T_WHEN | T_THEN | T_AND | T_BUT | MLTEXT | CELLSEP | AT | COMMENT | WS | NEWLINE | WORDCHAR ) + int alt7 = 17; + alt7 = dfa7.Predict(input); + switch (alt7) + { + case 1 : + // SpecFlowLangLexer_de.g:1:41: T_FEATURE + { + mT_FEATURE(); if (state.failed) return ; + + } + break; + case 2 : + // SpecFlowLangLexer_de.g:1:51: T_BACKGROUND + { + mT_BACKGROUND(); if (state.failed) return ; + + } + break; + case 3 : + // SpecFlowLangLexer_de.g:1:64: T_SCENARIO + { + mT_SCENARIO(); if (state.failed) return ; + + } + break; + case 4 : + // SpecFlowLangLexer_de.g:1:75: T_SCENARIO_OUTLINE + { + mT_SCENARIO_OUTLINE(); if (state.failed) return ; + + } + break; + case 5 : + // SpecFlowLangLexer_de.g:1:94: T_EXAMPLES + { + mT_EXAMPLES(); if (state.failed) return ; + + } + break; + case 6 : + // SpecFlowLangLexer_de.g:1:105: T_GIVEN + { + mT_GIVEN(); if (state.failed) return ; + + } + break; + case 7 : + // SpecFlowLangLexer_de.g:1:113: T_WHEN + { + mT_WHEN(); if (state.failed) return ; + + } + break; + case 8 : + // SpecFlowLangLexer_de.g:1:120: T_THEN + { + mT_THEN(); if (state.failed) return ; + + } + break; + case 9 : + // SpecFlowLangLexer_de.g:1:127: T_AND + { + mT_AND(); if (state.failed) return ; + + } + break; + case 10 : + // SpecFlowLangLexer_de.g:1:133: T_BUT + { + mT_BUT(); if (state.failed) return ; + + } + break; + case 11 : + // SpecFlowLangLexer_de.g:1:139: MLTEXT + { + mMLTEXT(); if (state.failed) return ; + + } + break; + case 12 : + // SpecFlowLangLexer_de.g:1:146: CELLSEP + { + mCELLSEP(); if (state.failed) return ; + + } + break; + case 13 : + // SpecFlowLangLexer_de.g:1:154: AT + { + mAT(); if (state.failed) return ; + + } + break; + case 14 : + // SpecFlowLangLexer_de.g:1:157: COMMENT + { + mCOMMENT(); if (state.failed) return ; + + } + break; + case 15 : + // SpecFlowLangLexer_de.g:1:165: WS + { + mWS(); if (state.failed) return ; + + } + break; + case 16 : + // SpecFlowLangLexer_de.g:1:168: NEWLINE + { + mNEWLINE(); if (state.failed) return ; + + } + break; + case 17 : + // SpecFlowLangLexer_de.g:1:176: WORDCHAR + { + mWORDCHAR(); if (state.failed) return ; + + } + break; + + } + + } + + // $ANTLR start "synpred1_SpecFlowLangLexer_de" + public void synpred1_SpecFlowLangLexer_de_fragment() { + // SpecFlowLangLexer_de.g:1:41: ( T_FEATURE ) + // SpecFlowLangLexer_de.g:1:41: T_FEATURE + { + mT_FEATURE(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred1_SpecFlowLangLexer_de" + + // $ANTLR start "synpred2_SpecFlowLangLexer_de" + public void synpred2_SpecFlowLangLexer_de_fragment() { + // SpecFlowLangLexer_de.g:1:51: ( T_BACKGROUND ) + // SpecFlowLangLexer_de.g:1:51: T_BACKGROUND + { + mT_BACKGROUND(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred2_SpecFlowLangLexer_de" + + // $ANTLR start "synpred3_SpecFlowLangLexer_de" + public void synpred3_SpecFlowLangLexer_de_fragment() { + // SpecFlowLangLexer_de.g:1:64: ( T_SCENARIO ) + // SpecFlowLangLexer_de.g:1:64: T_SCENARIO + { + mT_SCENARIO(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred3_SpecFlowLangLexer_de" + + // $ANTLR start "synpred4_SpecFlowLangLexer_de" + public void synpred4_SpecFlowLangLexer_de_fragment() { + // SpecFlowLangLexer_de.g:1:75: ( T_SCENARIO_OUTLINE ) + // SpecFlowLangLexer_de.g:1:75: T_SCENARIO_OUTLINE + { + mT_SCENARIO_OUTLINE(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred4_SpecFlowLangLexer_de" + + // $ANTLR start "synpred5_SpecFlowLangLexer_de" + public void synpred5_SpecFlowLangLexer_de_fragment() { + // SpecFlowLangLexer_de.g:1:94: ( T_EXAMPLES ) + // SpecFlowLangLexer_de.g:1:94: T_EXAMPLES + { + mT_EXAMPLES(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred5_SpecFlowLangLexer_de" + + // $ANTLR start "synpred6_SpecFlowLangLexer_de" + public void synpred6_SpecFlowLangLexer_de_fragment() { + // SpecFlowLangLexer_de.g:1:105: ( T_GIVEN ) + // SpecFlowLangLexer_de.g:1:105: T_GIVEN + { + mT_GIVEN(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred6_SpecFlowLangLexer_de" + + // $ANTLR start "synpred7_SpecFlowLangLexer_de" + public void synpred7_SpecFlowLangLexer_de_fragment() { + // SpecFlowLangLexer_de.g:1:113: ( T_WHEN ) + // SpecFlowLangLexer_de.g:1:113: T_WHEN + { + mT_WHEN(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred7_SpecFlowLangLexer_de" + + // $ANTLR start "synpred8_SpecFlowLangLexer_de" + public void synpred8_SpecFlowLangLexer_de_fragment() { + // SpecFlowLangLexer_de.g:1:120: ( T_THEN ) + // SpecFlowLangLexer_de.g:1:120: T_THEN + { + mT_THEN(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred8_SpecFlowLangLexer_de" + + // $ANTLR start "synpred9_SpecFlowLangLexer_de" + public void synpred9_SpecFlowLangLexer_de_fragment() { + // SpecFlowLangLexer_de.g:1:127: ( T_AND ) + // SpecFlowLangLexer_de.g:1:127: T_AND + { + mT_AND(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred9_SpecFlowLangLexer_de" + + // $ANTLR start "synpred10_SpecFlowLangLexer_de" + public void synpred10_SpecFlowLangLexer_de_fragment() { + // SpecFlowLangLexer_de.g:1:133: ( T_BUT ) + // SpecFlowLangLexer_de.g:1:133: T_BUT + { + mT_BUT(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred10_SpecFlowLangLexer_de" + + // $ANTLR start "synpred11_SpecFlowLangLexer_de" + public void synpred11_SpecFlowLangLexer_de_fragment() { + // SpecFlowLangLexer_de.g:1:139: ( MLTEXT ) + // SpecFlowLangLexer_de.g:1:139: MLTEXT + { + mMLTEXT(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred11_SpecFlowLangLexer_de" + + // $ANTLR start "synpred12_SpecFlowLangLexer_de" + public void synpred12_SpecFlowLangLexer_de_fragment() { + // SpecFlowLangLexer_de.g:1:146: ( CELLSEP ) + // SpecFlowLangLexer_de.g:1:146: CELLSEP + { + mCELLSEP(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred12_SpecFlowLangLexer_de" + + // $ANTLR start "synpred14_SpecFlowLangLexer_de" + public void synpred14_SpecFlowLangLexer_de_fragment() { + // SpecFlowLangLexer_de.g:1:157: ( COMMENT ) + // SpecFlowLangLexer_de.g:1:157: COMMENT + { + mCOMMENT(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred14_SpecFlowLangLexer_de" + + // $ANTLR start "synpred15_SpecFlowLangLexer_de" + public void synpred15_SpecFlowLangLexer_de_fragment() { + // SpecFlowLangLexer_de.g:1:165: ( WS ) + // SpecFlowLangLexer_de.g:1:165: WS + { + mWS(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred15_SpecFlowLangLexer_de" + + public bool synpred10_SpecFlowLangLexer_de() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred10_SpecFlowLangLexer_de_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred6_SpecFlowLangLexer_de() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred6_SpecFlowLangLexer_de_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred14_SpecFlowLangLexer_de() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred14_SpecFlowLangLexer_de_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred4_SpecFlowLangLexer_de() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred4_SpecFlowLangLexer_de_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred12_SpecFlowLangLexer_de() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred12_SpecFlowLangLexer_de_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred9_SpecFlowLangLexer_de() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred9_SpecFlowLangLexer_de_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred3_SpecFlowLangLexer_de() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred3_SpecFlowLangLexer_de_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred11_SpecFlowLangLexer_de() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred11_SpecFlowLangLexer_de_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred1_SpecFlowLangLexer_de() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred1_SpecFlowLangLexer_de_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred2_SpecFlowLangLexer_de() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred2_SpecFlowLangLexer_de_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred5_SpecFlowLangLexer_de() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred5_SpecFlowLangLexer_de_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred15_SpecFlowLangLexer_de() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred15_SpecFlowLangLexer_de_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred7_SpecFlowLangLexer_de() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred7_SpecFlowLangLexer_de_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred8_SpecFlowLangLexer_de() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred8_SpecFlowLangLexer_de_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + + + protected DFA7 dfa7; + private void InitializeCyclicDFAs() + { + this.dfa7 = new DFA7(this); + this.dfa7.specialStateTransitionHandler = new DFA.SpecialStateTransitionHandler(DFA7_SpecialStateTransition); + } + + const string DFA7_eotS = + "\x1e\uffff"; + const string DFA7_eofS = + "\x1e\uffff"; + const string DFA7_minS = + "\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x02\uffff\x01\x00"+ + "\x01\uffff\x01\x00\x03\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff"+ + "\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff\x01\x00\x01"+ + "\uffff\x01\x00\x01\uffff"; + const string DFA7_maxS = + "\x01\uffff\x01\uffff\x01\x00\x02\uffff\x01\x00\x02\uffff\x01\x00"+ + "\x01\uffff\x01\x00\x03\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff"+ + "\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff\x01\x00\x01"+ + "\uffff\x01\x00\x01\uffff"; + const string DFA7_acceptS = + "\x01\uffff\x01\x0e\x01\uffff\x01\x05\x01\x11\x01\uffff\x01\x0a"+ + "\x01\x10\x01\uffff\x01\x0f\x01\uffff\x01\x09\x01\x11\x01\x0d\x01"+ + "\uffff\x01\x02\x01\x06\x01\uffff\x01\x01\x01\uffff\x01\x0b\x01\uffff"+ + "\x01\x03\x01\x04\x01\uffff\x01\x07\x01\uffff\x01\x0c\x01\uffff\x01"+ + "\x08"; + const string DFA7_specialS = + "\x01\x00\x01\uffff\x01\x01\x02\uffff\x01\x02\x02\uffff\x01\x03"+ + "\x01\uffff\x01\x04\x03\uffff\x01\x05\x02\uffff\x01\x06\x01\uffff"+ + "\x01\x07\x01\uffff\x01\x08\x02\uffff\x01\x09\x01\uffff\x01\x0a\x01"+ + "\uffff\x01\x0b\x01\uffff}>"; + static readonly string[] DFA7_transitionS = { + "\x09\x0c\x01\x08\x01\x07\x02\x0c\x01\x07\x12\x0c\x01\x08\x01"+ + "\x0c\x01\x13\x01\x01\x1c\x0c\x01\x0d\x01\x05\x01\x02\x01\x0c"+ + "\x01\x1c\x01\x0c\x01\x11\x01\x0e\x0b\x0c\x01\x15\x01\x0c\x01"+ + "\x0a\x01\x0c\x01\x18\x24\x0c\x01\x1a\uff83\x0c", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "\x01\uffff", + "", + "", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "\x01\uffff", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "\x01\uffff", + "", + "\x01\uffff", + "" + }; + + static readonly short[] DFA7_eot = DFA.UnpackEncodedString(DFA7_eotS); + static readonly short[] DFA7_eof = DFA.UnpackEncodedString(DFA7_eofS); + static readonly char[] DFA7_min = DFA.UnpackEncodedStringToUnsignedChars(DFA7_minS); + static readonly char[] DFA7_max = DFA.UnpackEncodedStringToUnsignedChars(DFA7_maxS); + static readonly short[] DFA7_accept = DFA.UnpackEncodedString(DFA7_acceptS); + static readonly short[] DFA7_special = DFA.UnpackEncodedString(DFA7_specialS); + static readonly short[][] DFA7_transition = DFA.UnpackEncodedStringArray(DFA7_transitionS); + + protected class DFA7 : DFA + { + public DFA7(BaseRecognizer recognizer) + { + this.recognizer = recognizer; + this.decisionNumber = 7; + this.eot = DFA7_eot; + this.eof = DFA7_eof; + this.min = DFA7_min; + this.max = DFA7_max; + this.accept = DFA7_accept; + this.special = DFA7_special; + this.transition = DFA7_transition; + + } + + override public string Description + { + get { return "1:1: Tokens options {k=1; backtrack=true; } : ( T_FEATURE | T_BACKGROUND | T_SCENARIO | T_SCENARIO_OUTLINE | T_EXAMPLES | T_GIVEN | T_WHEN | T_THEN | T_AND | T_BUT | MLTEXT | CELLSEP | AT | COMMENT | WS | NEWLINE | WORDCHAR );"; } + } + + } + + + protected internal int DFA7_SpecialStateTransition(DFA dfa, int s, IIntStream _input) //throws NoViableAltException + { + IIntStream input = _input; + int _s = s; + switch ( s ) + { + case 0 : + int LA7_0 = input.LA(1); + + s = -1; + if ( (LA7_0 == '#') ) { s = 1; } + + else if ( (LA7_0 == 'B') ) { s = 2; } + + else if ( (LA7_0 == 'A') ) { s = 5; } + + else if ( (LA7_0 == '\n' || LA7_0 == '\r') ) { s = 7; } + + else if ( (LA7_0 == '\t' || LA7_0 == ' ') ) { s = 8; } + + else if ( (LA7_0 == 'U') ) { s = 10; } + + else if ( ((LA7_0 >= '\u0000' && LA7_0 <= '\b') || (LA7_0 >= '\u000B' && LA7_0 <= '\f') || (LA7_0 >= '\u000E' && LA7_0 <= '\u001F') || LA7_0 == '!' || (LA7_0 >= '$' && LA7_0 <= '?') || LA7_0 == 'C' || LA7_0 == 'E' || (LA7_0 >= 'H' && LA7_0 <= 'R') || LA7_0 == 'T' || LA7_0 == 'V' || (LA7_0 >= 'X' && LA7_0 <= '{') || (LA7_0 >= '}' && LA7_0 <= '\uFFFF')) ) { s = 12; } + + else if ( (LA7_0 == '@') ) { s = 13; } + + else if ( (LA7_0 == 'G') ) { s = 14; } + + else if ( (LA7_0 == 'F') ) { s = 17; } + + else if ( (LA7_0 == '\"') ) { s = 19; } + + else if ( (LA7_0 == 'S') ) { s = 21; } + + else if ( (LA7_0 == 'W') ) { s = 24; } + + else if ( (LA7_0 == '|') ) { s = 26; } + + else if ( (LA7_0 == 'D') ) { s = 28; } + + if ( s >= 0 ) return s; + break; + case 1 : + int LA7_2 = input.LA(1); + + + int index7_2 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred5_SpecFlowLangLexer_de()) ) { s = 3; } + + else if ( (true) ) { s = 4; } + + + input.Seek(index7_2); + if ( s >= 0 ) return s; + break; + case 2 : + int LA7_5 = input.LA(1); + + + int index7_5 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred10_SpecFlowLangLexer_de()) ) { s = 6; } + + else if ( (true) ) { s = 4; } + + + input.Seek(index7_5); + if ( s >= 0 ) return s; + break; + case 3 : + int LA7_8 = input.LA(1); + + + int index7_8 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred14_SpecFlowLangLexer_de()) ) { s = 1; } + + else if ( (synpred15_SpecFlowLangLexer_de()) ) { s = 9; } + + + input.Seek(index7_8); + if ( s >= 0 ) return s; + break; + case 4 : + int LA7_10 = input.LA(1); + + + int index7_10 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred9_SpecFlowLangLexer_de()) ) { s = 11; } + + else if ( (true) ) { s = 4; } + + + input.Seek(index7_10); + if ( s >= 0 ) return s; + break; + case 5 : + int LA7_14 = input.LA(1); + + + int index7_14 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred2_SpecFlowLangLexer_de()) ) { s = 15; } + + else if ( (synpred6_SpecFlowLangLexer_de()) ) { s = 16; } + + else if ( (true) ) { s = 12; } + + + input.Seek(index7_14); + if ( s >= 0 ) return s; + break; + case 6 : + int LA7_17 = input.LA(1); + + + int index7_17 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred1_SpecFlowLangLexer_de()) ) { s = 18; } + + else if ( (true) ) { s = 12; } + + + input.Seek(index7_17); + if ( s >= 0 ) return s; + break; + case 7 : + int LA7_19 = input.LA(1); + + + int index7_19 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred11_SpecFlowLangLexer_de()) ) { s = 20; } + + else if ( (true) ) { s = 12; } + + + input.Seek(index7_19); + if ( s >= 0 ) return s; + break; + case 8 : + int LA7_21 = input.LA(1); + + + int index7_21 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred3_SpecFlowLangLexer_de()) ) { s = 22; } + + else if ( (synpred4_SpecFlowLangLexer_de()) ) { s = 23; } + + else if ( (true) ) { s = 12; } + + + input.Seek(index7_21); + if ( s >= 0 ) return s; + break; + case 9 : + int LA7_24 = input.LA(1); + + + int index7_24 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred7_SpecFlowLangLexer_de()) ) { s = 25; } + + else if ( (true) ) { s = 12; } + + + input.Seek(index7_24); + if ( s >= 0 ) return s; + break; + case 10 : + int LA7_26 = input.LA(1); + + + int index7_26 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred12_SpecFlowLangLexer_de()) ) { s = 27; } + + else if ( (true) ) { s = 12; } + + + input.Seek(index7_26); + if ( s >= 0 ) return s; + break; + case 11 : + int LA7_28 = input.LA(1); + + + int index7_28 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred8_SpecFlowLangLexer_de()) ) { s = 29; } + + else if ( (true) ) { s = 12; } + + + input.Seek(index7_28); + if ( s >= 0 ) return s; + break; + } + if (state.backtracking > 0) {state.failed = true; return -1;} + NoViableAltException nvae7 = + new NoViableAltException(dfa.Description, 7, _s, input); + dfa.Error(nvae7); + throw nvae7; + } + + +} +} \ No newline at end of file diff --git a/Parser/Grammar/SpecFlowLangLexer_en.cs b/Parser/Grammar/SpecFlowLangLexer_en.cs new file mode 100644 index 000000000..da52f9d4b --- /dev/null +++ b/Parser/Grammar/SpecFlowLangLexer_en.cs @@ -0,0 +1,1836 @@ +// $ANTLR 3.1.2 SpecFlowLangLexer_en.g 2009-11-09 17:26:24 + +// The variable 'variable' is assigned but its value is never used. +#pragma warning disable 168, 219 +// Unreachable code detected. +#pragma warning disable 162 +namespace TechTalk.SpecFlow.Parser.Grammar +{ + +using System; +using Antlr.Runtime; +using IList = System.Collections.IList; +using ArrayList = System.Collections.ArrayList; +using Stack = Antlr.Runtime.Collections.StackList; + +using IDictionary = System.Collections.IDictionary; +using Hashtable = System.Collections.Hashtable; + +public partial class SpecFlowLangLexer_en : SpecFlowLangLexer { + public const int NEWLINECHR = 6; + public const int T_BACKGROUND = 9; + public const int T_THEN = 15; + public const int T_SCENARIO_OUTLINE = 11; + public const int MLTEXT = 18; + public const int WSCHAR = 4; + public const int NONNLCHR = 7; + public const int EOF = -1; + public const int T_AND = 16; + public const int T_GIVEN = 13; + public const int AT = 20; + public const int WORDCHAR = 24; + public const int T_BUT = 17; + public const int WS = 22; + public const int NEWLINE = 23; + public const int T_WHEN = 14; + public const int T_FEATURE = 8; + public const int T_EXAMPLES = 12; + public const int NONWCHR = 5; + public const int T_SCENARIO = 10; + public const int COMMENT = 21; + public const int CELLSEP = 19; + + // delegates + // delegators + + public SpecFlowLangLexer_en() + { + InitializeCyclicDFAs(); + } + public SpecFlowLangLexer_en(ICharStream input) + : this(input, null) { + } + public SpecFlowLangLexer_en(ICharStream input, RecognizerSharedState state) + : base(input, state) { + InitializeCyclicDFAs(); + + } + + override public string GrammarFileName + { + get { return "SpecFlowLangLexer_en.g";} + } + + override public IToken NextToken() + { + while (true) + { + if ( input.LA(1) == (int)CharStreamConstants.EOF ) + { + return Token.EOF_TOKEN; + } + + state.token = null; + state.channel = Token.DEFAULT_CHANNEL; + state.tokenStartCharIndex = input.Index(); + state.tokenStartCharPositionInLine = input.CharPositionInLine; + state.tokenStartLine = input.Line; + state.text = null; + try + { + int m = input.Mark(); + state.backtracking = 1; + state.failed = false; + mTokens(); + state.backtracking = 0; + if ( state.failed ) + { + input.Rewind(m); + input.Consume(); + } + else + { + Emit(); + return state.token; + } + } + catch (RecognitionException re) + { + // shouldn't happen in backtracking mode, but... + ReportError(re); + Recover(re); + } + } + } + + override public void Memoize(IIntStream input, int ruleIndex, int ruleStartIndex) + { + if ( state.backtracking > 1 ) + base.Memoize(input, ruleIndex, ruleStartIndex); + } + + override public bool AlreadyParsedRule(IIntStream input, int ruleIndex) + { + if ( state.backtracking>1 ) + return base.AlreadyParsedRule(input, ruleIndex); + return false; + }// $ANTLR start "WSCHAR" + public void mWSCHAR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_en.g:12:25: ( ( ' ' | '\\t' ) ) + // SpecFlowLangLexer_en.g:12:27: ( ' ' | '\\t' ) + { + if ( input.LA(1) == '\t' || input.LA(1) == ' ' ) + { + input.Consume(); + state.failed = false; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + Recover(mse); + throw mse;} + + + } + + } + finally + { + } + } + // $ANTLR end "WSCHAR" + + // $ANTLR start "NONWCHR" + public void mNONWCHR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_en.g:13:25: ( ( ' ' | '\\t' | '\\r' | '\\n' | '#' | '@' ) ) + // SpecFlowLangLexer_en.g:13:27: ( ' ' | '\\t' | '\\r' | '\\n' | '#' | '@' ) + { + if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n') || input.LA(1) == '\r' || input.LA(1) == ' ' || input.LA(1) == '#' || input.LA(1) == '@' ) + { + input.Consume(); + state.failed = false; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + Recover(mse); + throw mse;} + + + } + + } + finally + { + } + } + // $ANTLR end "NONWCHR" + + // $ANTLR start "NEWLINECHR" + public void mNEWLINECHR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_en.g:14:25: ( ( '\\r' | '\\n' ) ) + // SpecFlowLangLexer_en.g:14:27: ( '\\r' | '\\n' ) + { + if ( input.LA(1) == '\n' || input.LA(1) == '\r' ) + { + input.Consume(); + state.failed = false; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + Recover(mse); + throw mse;} + + + } + + } + finally + { + } + } + // $ANTLR end "NEWLINECHR" + + // $ANTLR start "NONNLCHR" + public void mNONNLCHR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_en.g:15:25: ( ( '\\u0000' .. '\\t' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\uFFFF' ) ) + int alt1 = 3; + int LA1_0 = input.LA(1); + + if ( ((LA1_0 >= '\u0000' && LA1_0 <= '\t')) ) + { + alt1 = 1; + } + else if ( ((LA1_0 >= '\u000B' && LA1_0 <= '\f')) ) + { + alt1 = 2; + } + else if ( ((LA1_0 >= '\u000E' && LA1_0 <= '\uFFFF')) ) + { + alt1 = 3; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + NoViableAltException nvae_d1s0 = + new NoViableAltException("", 1, 0, input); + + throw nvae_d1s0; + } + switch (alt1) + { + case 1 : + // SpecFlowLangLexer_en.g:15:27: ( '\\u0000' .. '\\t' ) + { + // SpecFlowLangLexer_en.g:15:27: ( '\\u0000' .. '\\t' ) + // SpecFlowLangLexer_en.g:15:28: '\\u0000' .. '\\t' + { + MatchRange('\u0000','\t'); if (state.failed) return ; + + } + + + } + break; + case 2 : + // SpecFlowLangLexer_en.g:15:44: ( '\\u000B' .. '\\f' ) + { + // SpecFlowLangLexer_en.g:15:44: ( '\\u000B' .. '\\f' ) + // SpecFlowLangLexer_en.g:15:45: '\\u000B' .. '\\f' + { + MatchRange('\u000B','\f'); if (state.failed) return ; + + } + + + } + break; + case 3 : + // SpecFlowLangLexer_en.g:15:61: ( '\\u000E' .. '\\uFFFF' ) + { + // SpecFlowLangLexer_en.g:15:61: ( '\\u000E' .. '\\uFFFF' ) + // SpecFlowLangLexer_en.g:15:62: '\\u000E' .. '\\uFFFF' + { + MatchRange('\u000E','\uFFFF'); if (state.failed) return ; + + } + + + } + break; + + } + } + finally + { + } + } + // $ANTLR end "NONNLCHR" + + // $ANTLR start "T_FEATURE" + public void mT_FEATURE() // throws RecognitionException [2] + { + try + { + int _type = T_FEATURE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:18:15: ( 'Feature:' ) + // SpecFlowLangLexer_en.g:18:17: 'Feature:' + { + Match("Feature:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_FEATURE" + + // $ANTLR start "T_BACKGROUND" + public void mT_BACKGROUND() // throws RecognitionException [2] + { + try + { + int _type = T_BACKGROUND; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:19:18: ( 'Background:' ) + // SpecFlowLangLexer_en.g:19:20: 'Background:' + { + Match("Background:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_BACKGROUND" + + // $ANTLR start "T_SCENARIO" + public void mT_SCENARIO() // throws RecognitionException [2] + { + try + { + int _type = T_SCENARIO; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:20:16: ( 'Scenario:' ) + // SpecFlowLangLexer_en.g:20:18: 'Scenario:' + { + Match("Scenario:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_SCENARIO" + + // $ANTLR start "T_SCENARIO_OUTLINE" + public void mT_SCENARIO_OUTLINE() // throws RecognitionException [2] + { + try + { + int _type = T_SCENARIO_OUTLINE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:21:24: ( 'Scenario Outline:' ) + // SpecFlowLangLexer_en.g:21:26: 'Scenario Outline:' + { + Match("Scenario Outline:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_SCENARIO_OUTLINE" + + // $ANTLR start "T_EXAMPLES" + public void mT_EXAMPLES() // throws RecognitionException [2] + { + try + { + int _type = T_EXAMPLES; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:22:16: ( 'Examples:' | 'Scenarios:' ) + int alt2 = 2; + int LA2_0 = input.LA(1); + + if ( (LA2_0 == 'E') ) + { + alt2 = 1; + } + else if ( (LA2_0 == 'S') ) + { + alt2 = 2; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + NoViableAltException nvae_d2s0 = + new NoViableAltException("", 2, 0, input); + + throw nvae_d2s0; + } + switch (alt2) + { + case 1 : + // SpecFlowLangLexer_en.g:22:18: 'Examples:' + { + Match("Examples:"); if (state.failed) return ; + + + } + break; + case 2 : + // SpecFlowLangLexer_en.g:22:30: 'Scenarios:' + { + Match("Scenarios:"); if (state.failed) return ; + + + } + break; + + } + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_EXAMPLES" + + // $ANTLR start "T_GIVEN" + public void mT_GIVEN() // throws RecognitionException [2] + { + try + { + int _type = T_GIVEN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:23:13: ( 'Given' ) + // SpecFlowLangLexer_en.g:23:15: 'Given' + { + Match("Given"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_GIVEN" + + // $ANTLR start "T_WHEN" + public void mT_WHEN() // throws RecognitionException [2] + { + try + { + int _type = T_WHEN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:24:12: ( 'When' ) + // SpecFlowLangLexer_en.g:24:14: 'When' + { + Match("When"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_WHEN" + + // $ANTLR start "T_THEN" + public void mT_THEN() // throws RecognitionException [2] + { + try + { + int _type = T_THEN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:25:12: ( 'Then' ) + // SpecFlowLangLexer_en.g:25:14: 'Then' + { + Match("Then"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_THEN" + + // $ANTLR start "T_AND" + public void mT_AND() // throws RecognitionException [2] + { + try + { + int _type = T_AND; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:26:11: ( 'And' ) + // SpecFlowLangLexer_en.g:26:13: 'And' + { + Match("And"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_AND" + + // $ANTLR start "T_BUT" + public void mT_BUT() // throws RecognitionException [2] + { + try + { + int _type = T_BUT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:27:11: ( 'But' ) + // SpecFlowLangLexer_en.g:27:13: 'But' + { + Match("But"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_BUT" + + // $ANTLR start "MLTEXT" + public void mMLTEXT() // throws RecognitionException [2] + { + try + { + int _type = MLTEXT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:29:13: ( '\"\"\"' ) + // SpecFlowLangLexer_en.g:29:15: '\"\"\"' + { + Match("\"\"\""); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "MLTEXT" + + // $ANTLR start "CELLSEP" + public void mCELLSEP() // throws RecognitionException [2] + { + try + { + int _type = CELLSEP; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:30:14: ( '|' ) + // SpecFlowLangLexer_en.g:30:16: '|' + { + Match('|'); if (state.failed) return ; + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "CELLSEP" + + // $ANTLR start "AT" + public void mAT() // throws RecognitionException [2] + { + try + { + int _type = AT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:31:17: ( '@' ) + // SpecFlowLangLexer_en.g:31:19: '@' + { + Match('@'); if (state.failed) return ; + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "AT" + + // $ANTLR start "COMMENT" + public void mCOMMENT() // throws RecognitionException [2] + { + try + { + int _type = COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:32:17: ( ( WSCHAR )* '#' ( NONNLCHR )* ) + // SpecFlowLangLexer_en.g:32:19: ( WSCHAR )* '#' ( NONNLCHR )* + { + // SpecFlowLangLexer_en.g:32:19: ( WSCHAR )* + do + { + int alt3 = 2; + int LA3_0 = input.LA(1); + + if ( (LA3_0 == '\t' || LA3_0 == ' ') ) + { + alt3 = 1; + } + + + switch (alt3) + { + case 1 : + // SpecFlowLangLexer_en.g:32:19: WSCHAR + { + mWSCHAR(); if (state.failed) return ; + + } + break; + + default: + goto loop3; + } + } while (true); + + loop3: + ; // Stops C# compiler whining that label 'loop3' has no statements + + Match('#'); if (state.failed) return ; + // SpecFlowLangLexer_en.g:32:31: ( NONNLCHR )* + do + { + int alt4 = 2; + int LA4_0 = input.LA(1); + + if ( ((LA4_0 >= '\u0000' && LA4_0 <= '\t') || (LA4_0 >= '\u000B' && LA4_0 <= '\f') || (LA4_0 >= '\u000E' && LA4_0 <= '\uFFFF')) ) + { + alt4 = 1; + } + + + switch (alt4) + { + case 1 : + // SpecFlowLangLexer_en.g:32:31: NONNLCHR + { + mNONNLCHR(); if (state.failed) return ; + + } + break; + + default: + goto loop4; + } + } while (true); + + loop4: + ; // Stops C# compiler whining that label 'loop4' has no statements + + if ( (state.backtracking == 1) ) + { + _channel = Token.HIDDEN_CHANNEL; + } + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "COMMENT" + + // $ANTLR start "WS" + public void mWS() // throws RecognitionException [2] + { + try + { + int _type = WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:33:17: ( ( WSCHAR )+ ) + // SpecFlowLangLexer_en.g:33:19: ( WSCHAR )+ + { + // SpecFlowLangLexer_en.g:33:19: ( WSCHAR )+ + int cnt5 = 0; + do + { + int alt5 = 2; + int LA5_0 = input.LA(1); + + if ( (LA5_0 == '\t' || LA5_0 == ' ') ) + { + alt5 = 1; + } + + + switch (alt5) + { + case 1 : + // SpecFlowLangLexer_en.g:33:19: WSCHAR + { + mWSCHAR(); if (state.failed) return ; + + } + break; + + default: + if ( cnt5 >= 1 ) goto loop5; + if ( state.backtracking > 0 ) {state.failed = true; return ;} + EarlyExitException eee5 = + new EarlyExitException(5, input); + throw eee5; + } + cnt5++; + } while (true); + + loop5: + ; // Stops C# compiler whinging that label 'loop5' has no statements + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "WS" + + // $ANTLR start "NEWLINE" + public void mNEWLINE() // throws RecognitionException [2] + { + try + { + int _type = NEWLINE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:34:17: ( '\\r\\n' | '\\n' ) + int alt6 = 2; + int LA6_0 = input.LA(1); + + if ( (LA6_0 == '\r') ) + { + alt6 = 1; + } + else if ( (LA6_0 == '\n') ) + { + alt6 = 2; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + NoViableAltException nvae_d6s0 = + new NoViableAltException("", 6, 0, input); + + throw nvae_d6s0; + } + switch (alt6) + { + case 1 : + // SpecFlowLangLexer_en.g:34:19: '\\r\\n' + { + Match("\r\n"); if (state.failed) return ; + + + } + break; + case 2 : + // SpecFlowLangLexer_en.g:34:28: '\\n' + { + Match('\n'); if (state.failed) return ; + + } + break; + + } + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "NEWLINE" + + // $ANTLR start "WORDCHAR" + public void mWORDCHAR() // throws RecognitionException [2] + { + try + { + int _type = WORDCHAR; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_en.g:35:17: ( ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ ) + // SpecFlowLangLexer_en.g:35:19: ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ + { + // SpecFlowLangLexer_en.g:35:19: ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ + int cnt7 = 0; + do + { + int alt7 = 7; + int LA7_0 = input.LA(1); + + if ( ((LA7_0 >= '\u0000' && LA7_0 <= '\b')) ) + { + alt7 = 1; + } + else if ( ((LA7_0 >= '\u000B' && LA7_0 <= '\f')) ) + { + alt7 = 2; + } + else if ( ((LA7_0 >= '\u000E' && LA7_0 <= '\u001F')) ) + { + alt7 = 3; + } + else if ( ((LA7_0 >= '!' && LA7_0 <= '\"')) ) + { + alt7 = 4; + } + else if ( ((LA7_0 >= '$' && LA7_0 <= '?')) ) + { + alt7 = 5; + } + else if ( ((LA7_0 >= 'A' && LA7_0 <= '\uFFFF')) ) + { + alt7 = 6; + } + + + switch (alt7) + { + case 1 : + // SpecFlowLangLexer_en.g:35:20: ( '\\u0000' .. '\\b' ) + { + // SpecFlowLangLexer_en.g:35:20: ( '\\u0000' .. '\\b' ) + // SpecFlowLangLexer_en.g:35:21: '\\u0000' .. '\\b' + { + MatchRange('\u0000','\b'); if (state.failed) return ; + + } + + + } + break; + case 2 : + // SpecFlowLangLexer_en.g:36:7: ( '\\u000B' .. '\\f' ) + { + // SpecFlowLangLexer_en.g:36:7: ( '\\u000B' .. '\\f' ) + // SpecFlowLangLexer_en.g:36:8: '\\u000B' .. '\\f' + { + MatchRange('\u000B','\f'); if (state.failed) return ; + + } + + + } + break; + case 3 : + // SpecFlowLangLexer_en.g:37:7: ( '\\u000E' .. '\\u001F' ) + { + // SpecFlowLangLexer_en.g:37:7: ( '\\u000E' .. '\\u001F' ) + // SpecFlowLangLexer_en.g:37:8: '\\u000E' .. '\\u001F' + { + MatchRange('\u000E','\u001F'); if (state.failed) return ; + + } + + + } + break; + case 4 : + // SpecFlowLangLexer_en.g:38:7: ( '!' .. '\"' ) + { + // SpecFlowLangLexer_en.g:38:7: ( '!' .. '\"' ) + // SpecFlowLangLexer_en.g:38:8: '!' .. '\"' + { + MatchRange('!','\"'); if (state.failed) return ; + + } + + + } + break; + case 5 : + // SpecFlowLangLexer_en.g:39:7: ( '$' .. '?' ) + { + // SpecFlowLangLexer_en.g:39:7: ( '$' .. '?' ) + // SpecFlowLangLexer_en.g:39:8: '$' .. '?' + { + MatchRange('$','?'); if (state.failed) return ; + + } + + + } + break; + case 6 : + // SpecFlowLangLexer_en.g:40:7: ( 'A' .. '\\uFFFF' ) + { + // SpecFlowLangLexer_en.g:40:7: ( 'A' .. '\\uFFFF' ) + // SpecFlowLangLexer_en.g:40:8: 'A' .. '\\uFFFF' + { + MatchRange('A','\uFFFF'); if (state.failed) return ; + + } + + + } + break; + + default: + if ( cnt7 >= 1 ) goto loop7; + if ( state.backtracking > 0 ) {state.failed = true; return ;} + EarlyExitException eee7 = + new EarlyExitException(7, input); + throw eee7; + } + cnt7++; + } while (true); + + loop7: + ; // Stops C# compiler whinging that label 'loop7' has no statements + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "WORDCHAR" + + override public void mTokens() // throws RecognitionException + { + // SpecFlowLangLexer_en.g:1:39: ( T_FEATURE | T_BACKGROUND | T_SCENARIO | T_SCENARIO_OUTLINE | T_EXAMPLES | T_GIVEN | T_WHEN | T_THEN | T_AND | T_BUT | MLTEXT | CELLSEP | AT | COMMENT | WS | NEWLINE | WORDCHAR ) + int alt8 = 17; + alt8 = dfa8.Predict(input); + switch (alt8) + { + case 1 : + // SpecFlowLangLexer_en.g:1:41: T_FEATURE + { + mT_FEATURE(); if (state.failed) return ; + + } + break; + case 2 : + // SpecFlowLangLexer_en.g:1:51: T_BACKGROUND + { + mT_BACKGROUND(); if (state.failed) return ; + + } + break; + case 3 : + // SpecFlowLangLexer_en.g:1:64: T_SCENARIO + { + mT_SCENARIO(); if (state.failed) return ; + + } + break; + case 4 : + // SpecFlowLangLexer_en.g:1:75: T_SCENARIO_OUTLINE + { + mT_SCENARIO_OUTLINE(); if (state.failed) return ; + + } + break; + case 5 : + // SpecFlowLangLexer_en.g:1:94: T_EXAMPLES + { + mT_EXAMPLES(); if (state.failed) return ; + + } + break; + case 6 : + // SpecFlowLangLexer_en.g:1:105: T_GIVEN + { + mT_GIVEN(); if (state.failed) return ; + + } + break; + case 7 : + // SpecFlowLangLexer_en.g:1:113: T_WHEN + { + mT_WHEN(); if (state.failed) return ; + + } + break; + case 8 : + // SpecFlowLangLexer_en.g:1:120: T_THEN + { + mT_THEN(); if (state.failed) return ; + + } + break; + case 9 : + // SpecFlowLangLexer_en.g:1:127: T_AND + { + mT_AND(); if (state.failed) return ; + + } + break; + case 10 : + // SpecFlowLangLexer_en.g:1:133: T_BUT + { + mT_BUT(); if (state.failed) return ; + + } + break; + case 11 : + // SpecFlowLangLexer_en.g:1:139: MLTEXT + { + mMLTEXT(); if (state.failed) return ; + + } + break; + case 12 : + // SpecFlowLangLexer_en.g:1:146: CELLSEP + { + mCELLSEP(); if (state.failed) return ; + + } + break; + case 13 : + // SpecFlowLangLexer_en.g:1:154: AT + { + mAT(); if (state.failed) return ; + + } + break; + case 14 : + // SpecFlowLangLexer_en.g:1:157: COMMENT + { + mCOMMENT(); if (state.failed) return ; + + } + break; + case 15 : + // SpecFlowLangLexer_en.g:1:165: WS + { + mWS(); if (state.failed) return ; + + } + break; + case 16 : + // SpecFlowLangLexer_en.g:1:168: NEWLINE + { + mNEWLINE(); if (state.failed) return ; + + } + break; + case 17 : + // SpecFlowLangLexer_en.g:1:176: WORDCHAR + { + mWORDCHAR(); if (state.failed) return ; + + } + break; + + } + + } + + // $ANTLR start "synpred1_SpecFlowLangLexer_en" + public void synpred1_SpecFlowLangLexer_en_fragment() { + // SpecFlowLangLexer_en.g:1:41: ( T_FEATURE ) + // SpecFlowLangLexer_en.g:1:41: T_FEATURE + { + mT_FEATURE(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred1_SpecFlowLangLexer_en" + + // $ANTLR start "synpred2_SpecFlowLangLexer_en" + public void synpred2_SpecFlowLangLexer_en_fragment() { + // SpecFlowLangLexer_en.g:1:51: ( T_BACKGROUND ) + // SpecFlowLangLexer_en.g:1:51: T_BACKGROUND + { + mT_BACKGROUND(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred2_SpecFlowLangLexer_en" + + // $ANTLR start "synpred3_SpecFlowLangLexer_en" + public void synpred3_SpecFlowLangLexer_en_fragment() { + // SpecFlowLangLexer_en.g:1:64: ( T_SCENARIO ) + // SpecFlowLangLexer_en.g:1:64: T_SCENARIO + { + mT_SCENARIO(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred3_SpecFlowLangLexer_en" + + // $ANTLR start "synpred4_SpecFlowLangLexer_en" + public void synpred4_SpecFlowLangLexer_en_fragment() { + // SpecFlowLangLexer_en.g:1:75: ( T_SCENARIO_OUTLINE ) + // SpecFlowLangLexer_en.g:1:75: T_SCENARIO_OUTLINE + { + mT_SCENARIO_OUTLINE(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred4_SpecFlowLangLexer_en" + + // $ANTLR start "synpred5_SpecFlowLangLexer_en" + public void synpred5_SpecFlowLangLexer_en_fragment() { + // SpecFlowLangLexer_en.g:1:94: ( T_EXAMPLES ) + // SpecFlowLangLexer_en.g:1:94: T_EXAMPLES + { + mT_EXAMPLES(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred5_SpecFlowLangLexer_en" + + // $ANTLR start "synpred6_SpecFlowLangLexer_en" + public void synpred6_SpecFlowLangLexer_en_fragment() { + // SpecFlowLangLexer_en.g:1:105: ( T_GIVEN ) + // SpecFlowLangLexer_en.g:1:105: T_GIVEN + { + mT_GIVEN(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred6_SpecFlowLangLexer_en" + + // $ANTLR start "synpred7_SpecFlowLangLexer_en" + public void synpred7_SpecFlowLangLexer_en_fragment() { + // SpecFlowLangLexer_en.g:1:113: ( T_WHEN ) + // SpecFlowLangLexer_en.g:1:113: T_WHEN + { + mT_WHEN(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred7_SpecFlowLangLexer_en" + + // $ANTLR start "synpred8_SpecFlowLangLexer_en" + public void synpred8_SpecFlowLangLexer_en_fragment() { + // SpecFlowLangLexer_en.g:1:120: ( T_THEN ) + // SpecFlowLangLexer_en.g:1:120: T_THEN + { + mT_THEN(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred8_SpecFlowLangLexer_en" + + // $ANTLR start "synpred9_SpecFlowLangLexer_en" + public void synpred9_SpecFlowLangLexer_en_fragment() { + // SpecFlowLangLexer_en.g:1:127: ( T_AND ) + // SpecFlowLangLexer_en.g:1:127: T_AND + { + mT_AND(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred9_SpecFlowLangLexer_en" + + // $ANTLR start "synpred10_SpecFlowLangLexer_en" + public void synpred10_SpecFlowLangLexer_en_fragment() { + // SpecFlowLangLexer_en.g:1:133: ( T_BUT ) + // SpecFlowLangLexer_en.g:1:133: T_BUT + { + mT_BUT(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred10_SpecFlowLangLexer_en" + + // $ANTLR start "synpred11_SpecFlowLangLexer_en" + public void synpred11_SpecFlowLangLexer_en_fragment() { + // SpecFlowLangLexer_en.g:1:139: ( MLTEXT ) + // SpecFlowLangLexer_en.g:1:139: MLTEXT + { + mMLTEXT(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred11_SpecFlowLangLexer_en" + + // $ANTLR start "synpred12_SpecFlowLangLexer_en" + public void synpred12_SpecFlowLangLexer_en_fragment() { + // SpecFlowLangLexer_en.g:1:146: ( CELLSEP ) + // SpecFlowLangLexer_en.g:1:146: CELLSEP + { + mCELLSEP(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred12_SpecFlowLangLexer_en" + + // $ANTLR start "synpred14_SpecFlowLangLexer_en" + public void synpred14_SpecFlowLangLexer_en_fragment() { + // SpecFlowLangLexer_en.g:1:157: ( COMMENT ) + // SpecFlowLangLexer_en.g:1:157: COMMENT + { + mCOMMENT(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred14_SpecFlowLangLexer_en" + + // $ANTLR start "synpred15_SpecFlowLangLexer_en" + public void synpred15_SpecFlowLangLexer_en_fragment() { + // SpecFlowLangLexer_en.g:1:165: ( WS ) + // SpecFlowLangLexer_en.g:1:165: WS + { + mWS(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred15_SpecFlowLangLexer_en" + + public bool synpred15_SpecFlowLangLexer_en() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred15_SpecFlowLangLexer_en_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred7_SpecFlowLangLexer_en() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred7_SpecFlowLangLexer_en_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred9_SpecFlowLangLexer_en() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred9_SpecFlowLangLexer_en_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred12_SpecFlowLangLexer_en() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred12_SpecFlowLangLexer_en_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred8_SpecFlowLangLexer_en() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred8_SpecFlowLangLexer_en_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred10_SpecFlowLangLexer_en() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred10_SpecFlowLangLexer_en_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred4_SpecFlowLangLexer_en() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred4_SpecFlowLangLexer_en_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred2_SpecFlowLangLexer_en() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred2_SpecFlowLangLexer_en_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred1_SpecFlowLangLexer_en() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred1_SpecFlowLangLexer_en_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred14_SpecFlowLangLexer_en() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred14_SpecFlowLangLexer_en_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred3_SpecFlowLangLexer_en() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred3_SpecFlowLangLexer_en_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred6_SpecFlowLangLexer_en() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred6_SpecFlowLangLexer_en_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred5_SpecFlowLangLexer_en() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred5_SpecFlowLangLexer_en_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred11_SpecFlowLangLexer_en() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred11_SpecFlowLangLexer_en_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + + + protected DFA8 dfa8; + private void InitializeCyclicDFAs() + { + this.dfa8 = new DFA8(this); + this.dfa8.specialStateTransitionHandler = new DFA.SpecialStateTransitionHandler(DFA8_SpecialStateTransition); + } + + const string DFA8_eotS = + "\x1f\uffff"; + const string DFA8_eofS = + "\x1f\uffff"; + const string DFA8_minS = + "\x02\x00\x03\uffff\x01\x00\x03\uffff\x01\x00\x01\uffff\x02\x00"+ + "\x01\uffff\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff"+ + "\x01\x00\x02\uffff\x01\x00\x02\uffff\x01\x00\x03\uffff"; + const string DFA8_maxS = + "\x01\uffff\x01\x00\x03\uffff\x01\x00\x03\uffff\x01\x00\x01\uffff"+ + "\x02\x00\x01\uffff\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x01"+ + "\uffff\x01\x00\x02\uffff\x01\x00\x02\uffff\x01\x00\x03\uffff"; + const string DFA8_acceptS = + "\x02\uffff\x01\x07\x01\x11\x01\x10\x01\uffff\x01\x03\x01\x04\x01"+ + "\x05\x01\uffff\x01\x08\x02\uffff\x01\x06\x01\uffff\x01\x09\x01\uffff"+ + "\x01\x0b\x01\x0d\x01\uffff\x01\x0c\x01\uffff\x01\x01\x01\x11\x01"+ + "\uffff\x01\x02\x01\x0a\x01\uffff\x01\x0e\x01\x0f\x01\x0e"; + const string DFA8_specialS = + "\x01\x00\x01\x01\x03\uffff\x01\x02\x03\uffff\x01\x03\x01\uffff"+ + "\x01\x04\x01\x05\x01\uffff\x01\x06\x01\uffff\x01\x07\x02\uffff\x01"+ + "\x08\x01\uffff\x01\x09\x02\uffff\x01\x0a\x02\uffff\x01\x0b\x03\uffff}>"; + static readonly string[] DFA8_transitionS = { + "\x09\x17\x01\x1b\x01\x04\x02\x17\x01\x04\x12\x17\x01\x1b\x01"+ + "\x17\x01\x10\x01\x1e\x1c\x17\x01\x12\x01\x0e\x01\x18\x02\x17"+ + "\x01\x0b\x01\x15\x01\x0c\x0b\x17\x01\x05\x01\x09\x02\x17\x01"+ + "\x01\x24\x17\x01\x13\uff83\x17", + "\x01\uffff", + "", + "", + "", + "\x01\uffff", + "", + "", + "", + "\x01\uffff", + "", + "\x01\uffff", + "\x01\uffff", + "", + "\x01\uffff", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "", + "" + }; + + static readonly short[] DFA8_eot = DFA.UnpackEncodedString(DFA8_eotS); + static readonly short[] DFA8_eof = DFA.UnpackEncodedString(DFA8_eofS); + static readonly char[] DFA8_min = DFA.UnpackEncodedStringToUnsignedChars(DFA8_minS); + static readonly char[] DFA8_max = DFA.UnpackEncodedStringToUnsignedChars(DFA8_maxS); + static readonly short[] DFA8_accept = DFA.UnpackEncodedString(DFA8_acceptS); + static readonly short[] DFA8_special = DFA.UnpackEncodedString(DFA8_specialS); + static readonly short[][] DFA8_transition = DFA.UnpackEncodedStringArray(DFA8_transitionS); + + protected class DFA8 : DFA + { + public DFA8(BaseRecognizer recognizer) + { + this.recognizer = recognizer; + this.decisionNumber = 8; + this.eot = DFA8_eot; + this.eof = DFA8_eof; + this.min = DFA8_min; + this.max = DFA8_max; + this.accept = DFA8_accept; + this.special = DFA8_special; + this.transition = DFA8_transition; + + } + + override public string Description + { + get { return "1:1: Tokens options {k=1; backtrack=true; } : ( T_FEATURE | T_BACKGROUND | T_SCENARIO | T_SCENARIO_OUTLINE | T_EXAMPLES | T_GIVEN | T_WHEN | T_THEN | T_AND | T_BUT | MLTEXT | CELLSEP | AT | COMMENT | WS | NEWLINE | WORDCHAR );"; } + } + + } + + + protected internal int DFA8_SpecialStateTransition(DFA dfa, int s, IIntStream _input) //throws NoViableAltException + { + IIntStream input = _input; + int _s = s; + switch ( s ) + { + case 0 : + int LA8_0 = input.LA(1); + + s = -1; + if ( (LA8_0 == 'W') ) { s = 1; } + + else if ( (LA8_0 == '\n' || LA8_0 == '\r') ) { s = 4; } + + else if ( (LA8_0 == 'S') ) { s = 5; } + + else if ( (LA8_0 == 'T') ) { s = 9; } + + else if ( (LA8_0 == 'E') ) { s = 11; } + + else if ( (LA8_0 == 'G') ) { s = 12; } + + else if ( (LA8_0 == 'A') ) { s = 14; } + + else if ( (LA8_0 == '\"') ) { s = 16; } + + else if ( (LA8_0 == '@') ) { s = 18; } + + else if ( (LA8_0 == '|') ) { s = 19; } + + else if ( (LA8_0 == 'F') ) { s = 21; } + + else if ( ((LA8_0 >= '\u0000' && LA8_0 <= '\b') || (LA8_0 >= '\u000B' && LA8_0 <= '\f') || (LA8_0 >= '\u000E' && LA8_0 <= '\u001F') || LA8_0 == '!' || (LA8_0 >= '$' && LA8_0 <= '?') || (LA8_0 >= 'C' && LA8_0 <= 'D') || (LA8_0 >= 'H' && LA8_0 <= 'R') || (LA8_0 >= 'U' && LA8_0 <= 'V') || (LA8_0 >= 'X' && LA8_0 <= '{') || (LA8_0 >= '}' && LA8_0 <= '\uFFFF')) ) { s = 23; } + + else if ( (LA8_0 == 'B') ) { s = 24; } + + else if ( (LA8_0 == '\t' || LA8_0 == ' ') ) { s = 27; } + + else if ( (LA8_0 == '#') ) { s = 30; } + + if ( s >= 0 ) return s; + break; + case 1 : + int LA8_1 = input.LA(1); + + + int index8_1 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred7_SpecFlowLangLexer_en()) ) { s = 2; } + + else if ( (true) ) { s = 3; } + + + input.Seek(index8_1); + if ( s >= 0 ) return s; + break; + case 2 : + int LA8_5 = input.LA(1); + + + int index8_5 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred3_SpecFlowLangLexer_en()) ) { s = 6; } + + else if ( (synpred4_SpecFlowLangLexer_en()) ) { s = 7; } + + else if ( (synpred5_SpecFlowLangLexer_en()) ) { s = 8; } + + else if ( (true) ) { s = 3; } + + + input.Seek(index8_5); + if ( s >= 0 ) return s; + break; + case 3 : + int LA8_9 = input.LA(1); + + + int index8_9 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred8_SpecFlowLangLexer_en()) ) { s = 10; } + + else if ( (true) ) { s = 3; } + + + input.Seek(index8_9); + if ( s >= 0 ) return s; + break; + case 4 : + int LA8_11 = input.LA(1); + + + int index8_11 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred5_SpecFlowLangLexer_en()) ) { s = 8; } + + else if ( (true) ) { s = 3; } + + + input.Seek(index8_11); + if ( s >= 0 ) return s; + break; + case 5 : + int LA8_12 = input.LA(1); + + + int index8_12 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred6_SpecFlowLangLexer_en()) ) { s = 13; } + + else if ( (true) ) { s = 3; } + + + input.Seek(index8_12); + if ( s >= 0 ) return s; + break; + case 6 : + int LA8_14 = input.LA(1); + + + int index8_14 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred9_SpecFlowLangLexer_en()) ) { s = 15; } + + else if ( (true) ) { s = 3; } + + + input.Seek(index8_14); + if ( s >= 0 ) return s; + break; + case 7 : + int LA8_16 = input.LA(1); + + + int index8_16 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred11_SpecFlowLangLexer_en()) ) { s = 17; } + + else if ( (true) ) { s = 3; } + + + input.Seek(index8_16); + if ( s >= 0 ) return s; + break; + case 8 : + int LA8_19 = input.LA(1); + + + int index8_19 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred12_SpecFlowLangLexer_en()) ) { s = 20; } + + else if ( (true) ) { s = 3; } + + + input.Seek(index8_19); + if ( s >= 0 ) return s; + break; + case 9 : + int LA8_21 = input.LA(1); + + + int index8_21 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred1_SpecFlowLangLexer_en()) ) { s = 22; } + + else if ( (true) ) { s = 3; } + + + input.Seek(index8_21); + if ( s >= 0 ) return s; + break; + case 10 : + int LA8_24 = input.LA(1); + + + int index8_24 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred2_SpecFlowLangLexer_en()) ) { s = 25; } + + else if ( (synpred10_SpecFlowLangLexer_en()) ) { s = 26; } + + else if ( (true) ) { s = 23; } + + + input.Seek(index8_24); + if ( s >= 0 ) return s; + break; + case 11 : + int LA8_27 = input.LA(1); + + + int index8_27 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred14_SpecFlowLangLexer_en()) ) { s = 28; } + + else if ( (synpred15_SpecFlowLangLexer_en()) ) { s = 29; } + + + input.Seek(index8_27); + if ( s >= 0 ) return s; + break; + } + if (state.backtracking > 0) {state.failed = true; return -1;} + NoViableAltException nvae8 = + new NoViableAltException(dfa.Description, 8, _s, input); + dfa.Error(nvae8); + throw nvae8; + } + + +} +} \ No newline at end of file diff --git a/Parser/Grammar/SpecFlowLangLexer_fr.cs b/Parser/Grammar/SpecFlowLangLexer_fr.cs new file mode 100644 index 000000000..94352772f --- /dev/null +++ b/Parser/Grammar/SpecFlowLangLexer_fr.cs @@ -0,0 +1,1806 @@ +// $ANTLR 3.1.2 SpecFlowLangLexer_fr.g 2009-11-09 17:26:25 + +// The variable 'variable' is assigned but its value is never used. +#pragma warning disable 168, 219 +// Unreachable code detected. +#pragma warning disable 162 +namespace TechTalk.SpecFlow.Parser.Grammar +{ + +using System; +using Antlr.Runtime; +using IList = System.Collections.IList; +using ArrayList = System.Collections.ArrayList; +using Stack = Antlr.Runtime.Collections.StackList; + +using IDictionary = System.Collections.IDictionary; +using Hashtable = System.Collections.Hashtable; + +public partial class SpecFlowLangLexer_fr : SpecFlowLangLexer { + public const int NEWLINECHR = 6; + public const int T_BACKGROUND = 9; + public const int T_THEN = 15; + public const int T_SCENARIO_OUTLINE = 11; + public const int MLTEXT = 18; + public const int WSCHAR = 4; + public const int NONNLCHR = 7; + public const int EOF = -1; + public const int T_AND = 16; + public const int T_GIVEN = 13; + public const int AT = 20; + public const int WORDCHAR = 24; + public const int T_BUT = 17; + public const int WS = 22; + public const int NEWLINE = 23; + public const int T_WHEN = 14; + public const int T_FEATURE = 8; + public const int T_EXAMPLES = 12; + public const int NONWCHR = 5; + public const int T_SCENARIO = 10; + public const int COMMENT = 21; + public const int CELLSEP = 19; + + // delegates + // delegators + + public SpecFlowLangLexer_fr() + { + InitializeCyclicDFAs(); + } + public SpecFlowLangLexer_fr(ICharStream input) + : this(input, null) { + } + public SpecFlowLangLexer_fr(ICharStream input, RecognizerSharedState state) + : base(input, state) { + InitializeCyclicDFAs(); + + } + + override public string GrammarFileName + { + get { return "SpecFlowLangLexer_fr.g";} + } + + override public IToken NextToken() + { + while (true) + { + if ( input.LA(1) == (int)CharStreamConstants.EOF ) + { + return Token.EOF_TOKEN; + } + + state.token = null; + state.channel = Token.DEFAULT_CHANNEL; + state.tokenStartCharIndex = input.Index(); + state.tokenStartCharPositionInLine = input.CharPositionInLine; + state.tokenStartLine = input.Line; + state.text = null; + try + { + int m = input.Mark(); + state.backtracking = 1; + state.failed = false; + mTokens(); + state.backtracking = 0; + if ( state.failed ) + { + input.Rewind(m); + input.Consume(); + } + else + { + Emit(); + return state.token; + } + } + catch (RecognitionException re) + { + // shouldn't happen in backtracking mode, but... + ReportError(re); + Recover(re); + } + } + } + + override public void Memoize(IIntStream input, int ruleIndex, int ruleStartIndex) + { + if ( state.backtracking > 1 ) + base.Memoize(input, ruleIndex, ruleStartIndex); + } + + override public bool AlreadyParsedRule(IIntStream input, int ruleIndex) + { + if ( state.backtracking>1 ) + return base.AlreadyParsedRule(input, ruleIndex); + return false; + }// $ANTLR start "WSCHAR" + public void mWSCHAR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_fr.g:12:25: ( ( ' ' | '\\t' ) ) + // SpecFlowLangLexer_fr.g:12:27: ( ' ' | '\\t' ) + { + if ( input.LA(1) == '\t' || input.LA(1) == ' ' ) + { + input.Consume(); + state.failed = false; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + Recover(mse); + throw mse;} + + + } + + } + finally + { + } + } + // $ANTLR end "WSCHAR" + + // $ANTLR start "NONWCHR" + public void mNONWCHR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_fr.g:13:25: ( ( ' ' | '\\t' | '\\r' | '\\n' | '#' | '@' ) ) + // SpecFlowLangLexer_fr.g:13:27: ( ' ' | '\\t' | '\\r' | '\\n' | '#' | '@' ) + { + if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n') || input.LA(1) == '\r' || input.LA(1) == ' ' || input.LA(1) == '#' || input.LA(1) == '@' ) + { + input.Consume(); + state.failed = false; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + Recover(mse); + throw mse;} + + + } + + } + finally + { + } + } + // $ANTLR end "NONWCHR" + + // $ANTLR start "NEWLINECHR" + public void mNEWLINECHR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_fr.g:14:25: ( ( '\\r' | '\\n' ) ) + // SpecFlowLangLexer_fr.g:14:27: ( '\\r' | '\\n' ) + { + if ( input.LA(1) == '\n' || input.LA(1) == '\r' ) + { + input.Consume(); + state.failed = false; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + Recover(mse); + throw mse;} + + + } + + } + finally + { + } + } + // $ANTLR end "NEWLINECHR" + + // $ANTLR start "NONNLCHR" + public void mNONNLCHR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_fr.g:15:25: ( ( '\\u0000' .. '\\t' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\uFFFF' ) ) + int alt1 = 3; + int LA1_0 = input.LA(1); + + if ( ((LA1_0 >= '\u0000' && LA1_0 <= '\t')) ) + { + alt1 = 1; + } + else if ( ((LA1_0 >= '\u000B' && LA1_0 <= '\f')) ) + { + alt1 = 2; + } + else if ( ((LA1_0 >= '\u000E' && LA1_0 <= '\uFFFF')) ) + { + alt1 = 3; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + NoViableAltException nvae_d1s0 = + new NoViableAltException("", 1, 0, input); + + throw nvae_d1s0; + } + switch (alt1) + { + case 1 : + // SpecFlowLangLexer_fr.g:15:27: ( '\\u0000' .. '\\t' ) + { + // SpecFlowLangLexer_fr.g:15:27: ( '\\u0000' .. '\\t' ) + // SpecFlowLangLexer_fr.g:15:28: '\\u0000' .. '\\t' + { + MatchRange('\u0000','\t'); if (state.failed) return ; + + } + + + } + break; + case 2 : + // SpecFlowLangLexer_fr.g:15:44: ( '\\u000B' .. '\\f' ) + { + // SpecFlowLangLexer_fr.g:15:44: ( '\\u000B' .. '\\f' ) + // SpecFlowLangLexer_fr.g:15:45: '\\u000B' .. '\\f' + { + MatchRange('\u000B','\f'); if (state.failed) return ; + + } + + + } + break; + case 3 : + // SpecFlowLangLexer_fr.g:15:61: ( '\\u000E' .. '\\uFFFF' ) + { + // SpecFlowLangLexer_fr.g:15:61: ( '\\u000E' .. '\\uFFFF' ) + // SpecFlowLangLexer_fr.g:15:62: '\\u000E' .. '\\uFFFF' + { + MatchRange('\u000E','\uFFFF'); if (state.failed) return ; + + } + + + } + break; + + } + } + finally + { + } + } + // $ANTLR end "NONNLCHR" + + // $ANTLR start "T_FEATURE" + public void mT_FEATURE() // throws RecognitionException [2] + { + try + { + int _type = T_FEATURE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:18:15: ( 'Fonctionnalit\\u00e9:' ) + // SpecFlowLangLexer_fr.g:18:17: 'Fonctionnalit\\u00e9:' + { + Match("Fonctionnalit\u00e9:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_FEATURE" + + // $ANTLR start "T_BACKGROUND" + public void mT_BACKGROUND() // throws RecognitionException [2] + { + try + { + int _type = T_BACKGROUND; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:19:18: ( 'Contexte:' ) + // SpecFlowLangLexer_fr.g:19:20: 'Contexte:' + { + Match("Contexte:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_BACKGROUND" + + // $ANTLR start "T_SCENARIO" + public void mT_SCENARIO() // throws RecognitionException [2] + { + try + { + int _type = T_SCENARIO; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:20:16: ( 'Sc\\u00e9nario:' ) + // SpecFlowLangLexer_fr.g:20:18: 'Sc\\u00e9nario:' + { + Match("Sc\u00e9nario:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_SCENARIO" + + // $ANTLR start "T_SCENARIO_OUTLINE" + public void mT_SCENARIO_OUTLINE() // throws RecognitionException [2] + { + try + { + int _type = T_SCENARIO_OUTLINE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:21:24: ( 'Plan du Sc\\u00e9nario:' ) + // SpecFlowLangLexer_fr.g:21:26: 'Plan du Sc\\u00e9nario:' + { + Match("Plan du Sc\u00e9nario:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_SCENARIO_OUTLINE" + + // $ANTLR start "T_EXAMPLES" + public void mT_EXAMPLES() // throws RecognitionException [2] + { + try + { + int _type = T_EXAMPLES; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:22:16: ( 'Exemples:' ) + // SpecFlowLangLexer_fr.g:22:18: 'Exemples:' + { + Match("Exemples:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_EXAMPLES" + + // $ANTLR start "T_GIVEN" + public void mT_GIVEN() // throws RecognitionException [2] + { + try + { + int _type = T_GIVEN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:23:13: ( 'Soit' ) + // SpecFlowLangLexer_fr.g:23:15: 'Soit' + { + Match("Soit"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_GIVEN" + + // $ANTLR start "T_WHEN" + public void mT_WHEN() // throws RecognitionException [2] + { + try + { + int _type = T_WHEN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:24:12: ( 'Lorsque' ) + // SpecFlowLangLexer_fr.g:24:14: 'Lorsque' + { + Match("Lorsque"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_WHEN" + + // $ANTLR start "T_THEN" + public void mT_THEN() // throws RecognitionException [2] + { + try + { + int _type = T_THEN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:25:12: ( 'Alors' ) + // SpecFlowLangLexer_fr.g:25:14: 'Alors' + { + Match("Alors"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_THEN" + + // $ANTLR start "T_AND" + public void mT_AND() // throws RecognitionException [2] + { + try + { + int _type = T_AND; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:26:11: ( 'Et' ) + // SpecFlowLangLexer_fr.g:26:13: 'Et' + { + Match("Et"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_AND" + + // $ANTLR start "T_BUT" + public void mT_BUT() // throws RecognitionException [2] + { + try + { + int _type = T_BUT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:27:11: ( 'Mais' ) + // SpecFlowLangLexer_fr.g:27:13: 'Mais' + { + Match("Mais"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_BUT" + + // $ANTLR start "MLTEXT" + public void mMLTEXT() // throws RecognitionException [2] + { + try + { + int _type = MLTEXT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:29:13: ( '\"\"\"' ) + // SpecFlowLangLexer_fr.g:29:15: '\"\"\"' + { + Match("\"\"\""); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "MLTEXT" + + // $ANTLR start "CELLSEP" + public void mCELLSEP() // throws RecognitionException [2] + { + try + { + int _type = CELLSEP; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:30:14: ( '|' ) + // SpecFlowLangLexer_fr.g:30:16: '|' + { + Match('|'); if (state.failed) return ; + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "CELLSEP" + + // $ANTLR start "AT" + public void mAT() // throws RecognitionException [2] + { + try + { + int _type = AT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:31:17: ( '@' ) + // SpecFlowLangLexer_fr.g:31:19: '@' + { + Match('@'); if (state.failed) return ; + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "AT" + + // $ANTLR start "COMMENT" + public void mCOMMENT() // throws RecognitionException [2] + { + try + { + int _type = COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:32:17: ( ( WSCHAR )* '#' ( NONNLCHR )* ) + // SpecFlowLangLexer_fr.g:32:19: ( WSCHAR )* '#' ( NONNLCHR )* + { + // SpecFlowLangLexer_fr.g:32:19: ( WSCHAR )* + do + { + int alt2 = 2; + int LA2_0 = input.LA(1); + + if ( (LA2_0 == '\t' || LA2_0 == ' ') ) + { + alt2 = 1; + } + + + switch (alt2) + { + case 1 : + // SpecFlowLangLexer_fr.g:32:19: WSCHAR + { + mWSCHAR(); if (state.failed) return ; + + } + break; + + default: + goto loop2; + } + } while (true); + + loop2: + ; // Stops C# compiler whining that label 'loop2' has no statements + + Match('#'); if (state.failed) return ; + // SpecFlowLangLexer_fr.g:32:31: ( NONNLCHR )* + do + { + int alt3 = 2; + int LA3_0 = input.LA(1); + + if ( ((LA3_0 >= '\u0000' && LA3_0 <= '\t') || (LA3_0 >= '\u000B' && LA3_0 <= '\f') || (LA3_0 >= '\u000E' && LA3_0 <= '\uFFFF')) ) + { + alt3 = 1; + } + + + switch (alt3) + { + case 1 : + // SpecFlowLangLexer_fr.g:32:31: NONNLCHR + { + mNONNLCHR(); if (state.failed) return ; + + } + break; + + default: + goto loop3; + } + } while (true); + + loop3: + ; // Stops C# compiler whining that label 'loop3' has no statements + + if ( (state.backtracking == 1) ) + { + _channel = Token.HIDDEN_CHANNEL; + } + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "COMMENT" + + // $ANTLR start "WS" + public void mWS() // throws RecognitionException [2] + { + try + { + int _type = WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:33:17: ( ( WSCHAR )+ ) + // SpecFlowLangLexer_fr.g:33:19: ( WSCHAR )+ + { + // SpecFlowLangLexer_fr.g:33:19: ( WSCHAR )+ + int cnt4 = 0; + do + { + int alt4 = 2; + int LA4_0 = input.LA(1); + + if ( (LA4_0 == '\t' || LA4_0 == ' ') ) + { + alt4 = 1; + } + + + switch (alt4) + { + case 1 : + // SpecFlowLangLexer_fr.g:33:19: WSCHAR + { + mWSCHAR(); if (state.failed) return ; + + } + break; + + default: + if ( cnt4 >= 1 ) goto loop4; + if ( state.backtracking > 0 ) {state.failed = true; return ;} + EarlyExitException eee4 = + new EarlyExitException(4, input); + throw eee4; + } + cnt4++; + } while (true); + + loop4: + ; // Stops C# compiler whinging that label 'loop4' has no statements + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "WS" + + // $ANTLR start "NEWLINE" + public void mNEWLINE() // throws RecognitionException [2] + { + try + { + int _type = NEWLINE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:34:17: ( '\\r\\n' | '\\n' ) + int alt5 = 2; + int LA5_0 = input.LA(1); + + if ( (LA5_0 == '\r') ) + { + alt5 = 1; + } + else if ( (LA5_0 == '\n') ) + { + alt5 = 2; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + NoViableAltException nvae_d5s0 = + new NoViableAltException("", 5, 0, input); + + throw nvae_d5s0; + } + switch (alt5) + { + case 1 : + // SpecFlowLangLexer_fr.g:34:19: '\\r\\n' + { + Match("\r\n"); if (state.failed) return ; + + + } + break; + case 2 : + // SpecFlowLangLexer_fr.g:34:28: '\\n' + { + Match('\n'); if (state.failed) return ; + + } + break; + + } + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "NEWLINE" + + // $ANTLR start "WORDCHAR" + public void mWORDCHAR() // throws RecognitionException [2] + { + try + { + int _type = WORDCHAR; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_fr.g:35:17: ( ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ ) + // SpecFlowLangLexer_fr.g:35:19: ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ + { + // SpecFlowLangLexer_fr.g:35:19: ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ + int cnt6 = 0; + do + { + int alt6 = 7; + int LA6_0 = input.LA(1); + + if ( ((LA6_0 >= '\u0000' && LA6_0 <= '\b')) ) + { + alt6 = 1; + } + else if ( ((LA6_0 >= '\u000B' && LA6_0 <= '\f')) ) + { + alt6 = 2; + } + else if ( ((LA6_0 >= '\u000E' && LA6_0 <= '\u001F')) ) + { + alt6 = 3; + } + else if ( ((LA6_0 >= '!' && LA6_0 <= '\"')) ) + { + alt6 = 4; + } + else if ( ((LA6_0 >= '$' && LA6_0 <= '?')) ) + { + alt6 = 5; + } + else if ( ((LA6_0 >= 'A' && LA6_0 <= '\uFFFF')) ) + { + alt6 = 6; + } + + + switch (alt6) + { + case 1 : + // SpecFlowLangLexer_fr.g:35:20: ( '\\u0000' .. '\\b' ) + { + // SpecFlowLangLexer_fr.g:35:20: ( '\\u0000' .. '\\b' ) + // SpecFlowLangLexer_fr.g:35:21: '\\u0000' .. '\\b' + { + MatchRange('\u0000','\b'); if (state.failed) return ; + + } + + + } + break; + case 2 : + // SpecFlowLangLexer_fr.g:36:7: ( '\\u000B' .. '\\f' ) + { + // SpecFlowLangLexer_fr.g:36:7: ( '\\u000B' .. '\\f' ) + // SpecFlowLangLexer_fr.g:36:8: '\\u000B' .. '\\f' + { + MatchRange('\u000B','\f'); if (state.failed) return ; + + } + + + } + break; + case 3 : + // SpecFlowLangLexer_fr.g:37:7: ( '\\u000E' .. '\\u001F' ) + { + // SpecFlowLangLexer_fr.g:37:7: ( '\\u000E' .. '\\u001F' ) + // SpecFlowLangLexer_fr.g:37:8: '\\u000E' .. '\\u001F' + { + MatchRange('\u000E','\u001F'); if (state.failed) return ; + + } + + + } + break; + case 4 : + // SpecFlowLangLexer_fr.g:38:7: ( '!' .. '\"' ) + { + // SpecFlowLangLexer_fr.g:38:7: ( '!' .. '\"' ) + // SpecFlowLangLexer_fr.g:38:8: '!' .. '\"' + { + MatchRange('!','\"'); if (state.failed) return ; + + } + + + } + break; + case 5 : + // SpecFlowLangLexer_fr.g:39:7: ( '$' .. '?' ) + { + // SpecFlowLangLexer_fr.g:39:7: ( '$' .. '?' ) + // SpecFlowLangLexer_fr.g:39:8: '$' .. '?' + { + MatchRange('$','?'); if (state.failed) return ; + + } + + + } + break; + case 6 : + // SpecFlowLangLexer_fr.g:40:7: ( 'A' .. '\\uFFFF' ) + { + // SpecFlowLangLexer_fr.g:40:7: ( 'A' .. '\\uFFFF' ) + // SpecFlowLangLexer_fr.g:40:8: 'A' .. '\\uFFFF' + { + MatchRange('A','\uFFFF'); if (state.failed) return ; + + } + + + } + break; + + default: + if ( cnt6 >= 1 ) goto loop6; + if ( state.backtracking > 0 ) {state.failed = true; return ;} + EarlyExitException eee6 = + new EarlyExitException(6, input); + throw eee6; + } + cnt6++; + } while (true); + + loop6: + ; // Stops C# compiler whinging that label 'loop6' has no statements + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "WORDCHAR" + + override public void mTokens() // throws RecognitionException + { + // SpecFlowLangLexer_fr.g:1:39: ( T_FEATURE | T_BACKGROUND | T_SCENARIO | T_SCENARIO_OUTLINE | T_EXAMPLES | T_GIVEN | T_WHEN | T_THEN | T_AND | T_BUT | MLTEXT | CELLSEP | AT | COMMENT | WS | NEWLINE | WORDCHAR ) + int alt7 = 17; + alt7 = dfa7.Predict(input); + switch (alt7) + { + case 1 : + // SpecFlowLangLexer_fr.g:1:41: T_FEATURE + { + mT_FEATURE(); if (state.failed) return ; + + } + break; + case 2 : + // SpecFlowLangLexer_fr.g:1:51: T_BACKGROUND + { + mT_BACKGROUND(); if (state.failed) return ; + + } + break; + case 3 : + // SpecFlowLangLexer_fr.g:1:64: T_SCENARIO + { + mT_SCENARIO(); if (state.failed) return ; + + } + break; + case 4 : + // SpecFlowLangLexer_fr.g:1:75: T_SCENARIO_OUTLINE + { + mT_SCENARIO_OUTLINE(); if (state.failed) return ; + + } + break; + case 5 : + // SpecFlowLangLexer_fr.g:1:94: T_EXAMPLES + { + mT_EXAMPLES(); if (state.failed) return ; + + } + break; + case 6 : + // SpecFlowLangLexer_fr.g:1:105: T_GIVEN + { + mT_GIVEN(); if (state.failed) return ; + + } + break; + case 7 : + // SpecFlowLangLexer_fr.g:1:113: T_WHEN + { + mT_WHEN(); if (state.failed) return ; + + } + break; + case 8 : + // SpecFlowLangLexer_fr.g:1:120: T_THEN + { + mT_THEN(); if (state.failed) return ; + + } + break; + case 9 : + // SpecFlowLangLexer_fr.g:1:127: T_AND + { + mT_AND(); if (state.failed) return ; + + } + break; + case 10 : + // SpecFlowLangLexer_fr.g:1:133: T_BUT + { + mT_BUT(); if (state.failed) return ; + + } + break; + case 11 : + // SpecFlowLangLexer_fr.g:1:139: MLTEXT + { + mMLTEXT(); if (state.failed) return ; + + } + break; + case 12 : + // SpecFlowLangLexer_fr.g:1:146: CELLSEP + { + mCELLSEP(); if (state.failed) return ; + + } + break; + case 13 : + // SpecFlowLangLexer_fr.g:1:154: AT + { + mAT(); if (state.failed) return ; + + } + break; + case 14 : + // SpecFlowLangLexer_fr.g:1:157: COMMENT + { + mCOMMENT(); if (state.failed) return ; + + } + break; + case 15 : + // SpecFlowLangLexer_fr.g:1:165: WS + { + mWS(); if (state.failed) return ; + + } + break; + case 16 : + // SpecFlowLangLexer_fr.g:1:168: NEWLINE + { + mNEWLINE(); if (state.failed) return ; + + } + break; + case 17 : + // SpecFlowLangLexer_fr.g:1:176: WORDCHAR + { + mWORDCHAR(); if (state.failed) return ; + + } + break; + + } + + } + + // $ANTLR start "synpred1_SpecFlowLangLexer_fr" + public void synpred1_SpecFlowLangLexer_fr_fragment() { + // SpecFlowLangLexer_fr.g:1:41: ( T_FEATURE ) + // SpecFlowLangLexer_fr.g:1:41: T_FEATURE + { + mT_FEATURE(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred1_SpecFlowLangLexer_fr" + + // $ANTLR start "synpred2_SpecFlowLangLexer_fr" + public void synpred2_SpecFlowLangLexer_fr_fragment() { + // SpecFlowLangLexer_fr.g:1:51: ( T_BACKGROUND ) + // SpecFlowLangLexer_fr.g:1:51: T_BACKGROUND + { + mT_BACKGROUND(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred2_SpecFlowLangLexer_fr" + + // $ANTLR start "synpred3_SpecFlowLangLexer_fr" + public void synpred3_SpecFlowLangLexer_fr_fragment() { + // SpecFlowLangLexer_fr.g:1:64: ( T_SCENARIO ) + // SpecFlowLangLexer_fr.g:1:64: T_SCENARIO + { + mT_SCENARIO(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred3_SpecFlowLangLexer_fr" + + // $ANTLR start "synpred4_SpecFlowLangLexer_fr" + public void synpred4_SpecFlowLangLexer_fr_fragment() { + // SpecFlowLangLexer_fr.g:1:75: ( T_SCENARIO_OUTLINE ) + // SpecFlowLangLexer_fr.g:1:75: T_SCENARIO_OUTLINE + { + mT_SCENARIO_OUTLINE(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred4_SpecFlowLangLexer_fr" + + // $ANTLR start "synpred5_SpecFlowLangLexer_fr" + public void synpred5_SpecFlowLangLexer_fr_fragment() { + // SpecFlowLangLexer_fr.g:1:94: ( T_EXAMPLES ) + // SpecFlowLangLexer_fr.g:1:94: T_EXAMPLES + { + mT_EXAMPLES(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred5_SpecFlowLangLexer_fr" + + // $ANTLR start "synpred6_SpecFlowLangLexer_fr" + public void synpred6_SpecFlowLangLexer_fr_fragment() { + // SpecFlowLangLexer_fr.g:1:105: ( T_GIVEN ) + // SpecFlowLangLexer_fr.g:1:105: T_GIVEN + { + mT_GIVEN(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred6_SpecFlowLangLexer_fr" + + // $ANTLR start "synpred7_SpecFlowLangLexer_fr" + public void synpred7_SpecFlowLangLexer_fr_fragment() { + // SpecFlowLangLexer_fr.g:1:113: ( T_WHEN ) + // SpecFlowLangLexer_fr.g:1:113: T_WHEN + { + mT_WHEN(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred7_SpecFlowLangLexer_fr" + + // $ANTLR start "synpred8_SpecFlowLangLexer_fr" + public void synpred8_SpecFlowLangLexer_fr_fragment() { + // SpecFlowLangLexer_fr.g:1:120: ( T_THEN ) + // SpecFlowLangLexer_fr.g:1:120: T_THEN + { + mT_THEN(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred8_SpecFlowLangLexer_fr" + + // $ANTLR start "synpred9_SpecFlowLangLexer_fr" + public void synpred9_SpecFlowLangLexer_fr_fragment() { + // SpecFlowLangLexer_fr.g:1:127: ( T_AND ) + // SpecFlowLangLexer_fr.g:1:127: T_AND + { + mT_AND(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred9_SpecFlowLangLexer_fr" + + // $ANTLR start "synpred10_SpecFlowLangLexer_fr" + public void synpred10_SpecFlowLangLexer_fr_fragment() { + // SpecFlowLangLexer_fr.g:1:133: ( T_BUT ) + // SpecFlowLangLexer_fr.g:1:133: T_BUT + { + mT_BUT(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred10_SpecFlowLangLexer_fr" + + // $ANTLR start "synpred11_SpecFlowLangLexer_fr" + public void synpred11_SpecFlowLangLexer_fr_fragment() { + // SpecFlowLangLexer_fr.g:1:139: ( MLTEXT ) + // SpecFlowLangLexer_fr.g:1:139: MLTEXT + { + mMLTEXT(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred11_SpecFlowLangLexer_fr" + + // $ANTLR start "synpred12_SpecFlowLangLexer_fr" + public void synpred12_SpecFlowLangLexer_fr_fragment() { + // SpecFlowLangLexer_fr.g:1:146: ( CELLSEP ) + // SpecFlowLangLexer_fr.g:1:146: CELLSEP + { + mCELLSEP(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred12_SpecFlowLangLexer_fr" + + // $ANTLR start "synpred14_SpecFlowLangLexer_fr" + public void synpred14_SpecFlowLangLexer_fr_fragment() { + // SpecFlowLangLexer_fr.g:1:157: ( COMMENT ) + // SpecFlowLangLexer_fr.g:1:157: COMMENT + { + mCOMMENT(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred14_SpecFlowLangLexer_fr" + + // $ANTLR start "synpred15_SpecFlowLangLexer_fr" + public void synpred15_SpecFlowLangLexer_fr_fragment() { + // SpecFlowLangLexer_fr.g:1:165: ( WS ) + // SpecFlowLangLexer_fr.g:1:165: WS + { + mWS(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred15_SpecFlowLangLexer_fr" + + public bool synpred9_SpecFlowLangLexer_fr() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred9_SpecFlowLangLexer_fr_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred7_SpecFlowLangLexer_fr() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred7_SpecFlowLangLexer_fr_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred12_SpecFlowLangLexer_fr() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred12_SpecFlowLangLexer_fr_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred15_SpecFlowLangLexer_fr() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred15_SpecFlowLangLexer_fr_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred10_SpecFlowLangLexer_fr() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred10_SpecFlowLangLexer_fr_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred14_SpecFlowLangLexer_fr() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred14_SpecFlowLangLexer_fr_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred2_SpecFlowLangLexer_fr() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred2_SpecFlowLangLexer_fr_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred1_SpecFlowLangLexer_fr() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred1_SpecFlowLangLexer_fr_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred5_SpecFlowLangLexer_fr() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred5_SpecFlowLangLexer_fr_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred4_SpecFlowLangLexer_fr() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred4_SpecFlowLangLexer_fr_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred6_SpecFlowLangLexer_fr() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred6_SpecFlowLangLexer_fr_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred11_SpecFlowLangLexer_fr() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred11_SpecFlowLangLexer_fr_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred8_SpecFlowLangLexer_fr() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred8_SpecFlowLangLexer_fr_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred3_SpecFlowLangLexer_fr() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred3_SpecFlowLangLexer_fr_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + + + protected DFA7 dfa7; + private void InitializeCyclicDFAs() + { + this.dfa7 = new DFA7(this); + this.dfa7.specialStateTransitionHandler = new DFA.SpecialStateTransitionHandler(DFA7_SpecialStateTransition); + } + + const string DFA7_eotS = + "\x1f\uffff"; + const string DFA7_eofS = + "\x1f\uffff"; + const string DFA7_minS = + "\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x03\uffff\x01\x00"+ + "\x02\uffff\x01\x00\x02\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff"+ + "\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff\x01\x00\x01"+ + "\uffff\x01\x00\x01\uffff"; + const string DFA7_maxS = + "\x01\uffff\x01\uffff\x01\x00\x02\uffff\x01\x00\x03\uffff\x01\x00"+ + "\x02\uffff\x01\x00\x02\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff"+ + "\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff\x01\x00\x01"+ + "\uffff\x01\x00\x01\uffff"; + const string DFA7_acceptS = + "\x01\uffff\x01\x10\x01\uffff\x01\x0e\x01\x0f\x01\uffff\x01\x05"+ + "\x01\x09\x01\x11\x01\uffff\x01\x0b\x01\x0e\x01\uffff\x01\x0a\x01"+ + "\x0d\x01\uffff\x01\x03\x01\x06\x01\uffff\x01\x02\x01\uffff\x01\x0c"+ + "\x01\uffff\x01\x04\x01\x11\x01\uffff\x01\x07\x01\uffff\x01\x01\x01"+ + "\uffff\x01\x08"; + const string DFA7_specialS = + "\x01\x00\x01\uffff\x01\x01\x02\uffff\x01\x02\x03\uffff\x01\x03"+ + "\x02\uffff\x01\x04\x02\uffff\x01\x05\x02\uffff\x01\x06\x01\uffff"+ + "\x01\x07\x01\uffff\x01\x08\x02\uffff\x01\x09\x01\uffff\x01\x0a\x01"+ + "\uffff\x01\x0b\x01\uffff}>"; + static readonly string[] DFA7_transitionS = { + "\x09\x18\x01\x02\x01\x01\x02\x18\x01\x01\x12\x18\x01\x02\x01"+ + "\x18\x01\x09\x01\x0b\x1c\x18\x01\x0e\x01\x1d\x01\x18\x01\x12"+ + "\x01\x18\x01\x05\x01\x1b\x05\x18\x01\x19\x01\x0c\x02\x18\x01"+ + "\x16\x02\x18\x01\x0f\x28\x18\x01\x14\uff83\x18", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "\x01\uffff", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "\x01\uffff", + "", + "\x01\uffff", + "" + }; + + static readonly short[] DFA7_eot = DFA.UnpackEncodedString(DFA7_eotS); + static readonly short[] DFA7_eof = DFA.UnpackEncodedString(DFA7_eofS); + static readonly char[] DFA7_min = DFA.UnpackEncodedStringToUnsignedChars(DFA7_minS); + static readonly char[] DFA7_max = DFA.UnpackEncodedStringToUnsignedChars(DFA7_maxS); + static readonly short[] DFA7_accept = DFA.UnpackEncodedString(DFA7_acceptS); + static readonly short[] DFA7_special = DFA.UnpackEncodedString(DFA7_specialS); + static readonly short[][] DFA7_transition = DFA.UnpackEncodedStringArray(DFA7_transitionS); + + protected class DFA7 : DFA + { + public DFA7(BaseRecognizer recognizer) + { + this.recognizer = recognizer; + this.decisionNumber = 7; + this.eot = DFA7_eot; + this.eof = DFA7_eof; + this.min = DFA7_min; + this.max = DFA7_max; + this.accept = DFA7_accept; + this.special = DFA7_special; + this.transition = DFA7_transition; + + } + + override public string Description + { + get { return "1:1: Tokens options {k=1; backtrack=true; } : ( T_FEATURE | T_BACKGROUND | T_SCENARIO | T_SCENARIO_OUTLINE | T_EXAMPLES | T_GIVEN | T_WHEN | T_THEN | T_AND | T_BUT | MLTEXT | CELLSEP | AT | COMMENT | WS | NEWLINE | WORDCHAR );"; } + } + + } + + + protected internal int DFA7_SpecialStateTransition(DFA dfa, int s, IIntStream _input) //throws NoViableAltException + { + IIntStream input = _input; + int _s = s; + switch ( s ) + { + case 0 : + int LA7_0 = input.LA(1); + + s = -1; + if ( (LA7_0 == '\n' || LA7_0 == '\r') ) { s = 1; } + + else if ( (LA7_0 == '\t' || LA7_0 == ' ') ) { s = 2; } + + else if ( (LA7_0 == 'E') ) { s = 5; } + + else if ( (LA7_0 == '\"') ) { s = 9; } + + else if ( (LA7_0 == '#') ) { s = 11; } + + else if ( (LA7_0 == 'M') ) { s = 12; } + + else if ( (LA7_0 == '@') ) { s = 14; } + + else if ( (LA7_0 == 'S') ) { s = 15; } + + else if ( (LA7_0 == 'C') ) { s = 18; } + + else if ( (LA7_0 == '|') ) { s = 20; } + + else if ( (LA7_0 == 'P') ) { s = 22; } + + else if ( ((LA7_0 >= '\u0000' && LA7_0 <= '\b') || (LA7_0 >= '\u000B' && LA7_0 <= '\f') || (LA7_0 >= '\u000E' && LA7_0 <= '\u001F') || LA7_0 == '!' || (LA7_0 >= '$' && LA7_0 <= '?') || LA7_0 == 'B' || LA7_0 == 'D' || (LA7_0 >= 'G' && LA7_0 <= 'K') || (LA7_0 >= 'N' && LA7_0 <= 'O') || (LA7_0 >= 'Q' && LA7_0 <= 'R') || (LA7_0 >= 'T' && LA7_0 <= '{') || (LA7_0 >= '}' && LA7_0 <= '\uFFFF')) ) { s = 24; } + + else if ( (LA7_0 == 'L') ) { s = 25; } + + else if ( (LA7_0 == 'F') ) { s = 27; } + + else if ( (LA7_0 == 'A') ) { s = 29; } + + if ( s >= 0 ) return s; + break; + case 1 : + int LA7_2 = input.LA(1); + + + int index7_2 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred14_SpecFlowLangLexer_fr()) ) { s = 3; } + + else if ( (synpred15_SpecFlowLangLexer_fr()) ) { s = 4; } + + + input.Seek(index7_2); + if ( s >= 0 ) return s; + break; + case 2 : + int LA7_5 = input.LA(1); + + + int index7_5 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred5_SpecFlowLangLexer_fr()) ) { s = 6; } + + else if ( (synpred9_SpecFlowLangLexer_fr()) ) { s = 7; } + + else if ( (true) ) { s = 8; } + + + input.Seek(index7_5); + if ( s >= 0 ) return s; + break; + case 3 : + int LA7_9 = input.LA(1); + + + int index7_9 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred11_SpecFlowLangLexer_fr()) ) { s = 10; } + + else if ( (true) ) { s = 8; } + + + input.Seek(index7_9); + if ( s >= 0 ) return s; + break; + case 4 : + int LA7_12 = input.LA(1); + + + int index7_12 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred10_SpecFlowLangLexer_fr()) ) { s = 13; } + + else if ( (true) ) { s = 8; } + + + input.Seek(index7_12); + if ( s >= 0 ) return s; + break; + case 5 : + int LA7_15 = input.LA(1); + + + int index7_15 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred3_SpecFlowLangLexer_fr()) ) { s = 16; } + + else if ( (synpred6_SpecFlowLangLexer_fr()) ) { s = 17; } + + else if ( (true) ) { s = 8; } + + + input.Seek(index7_15); + if ( s >= 0 ) return s; + break; + case 6 : + int LA7_18 = input.LA(1); + + + int index7_18 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred2_SpecFlowLangLexer_fr()) ) { s = 19; } + + else if ( (true) ) { s = 8; } + + + input.Seek(index7_18); + if ( s >= 0 ) return s; + break; + case 7 : + int LA7_20 = input.LA(1); + + + int index7_20 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred12_SpecFlowLangLexer_fr()) ) { s = 21; } + + else if ( (true) ) { s = 8; } + + + input.Seek(index7_20); + if ( s >= 0 ) return s; + break; + case 8 : + int LA7_22 = input.LA(1); + + + int index7_22 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred4_SpecFlowLangLexer_fr()) ) { s = 23; } + + else if ( (true) ) { s = 8; } + + + input.Seek(index7_22); + if ( s >= 0 ) return s; + break; + case 9 : + int LA7_25 = input.LA(1); + + + int index7_25 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred7_SpecFlowLangLexer_fr()) ) { s = 26; } + + else if ( (true) ) { s = 24; } + + + input.Seek(index7_25); + if ( s >= 0 ) return s; + break; + case 10 : + int LA7_27 = input.LA(1); + + + int index7_27 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred1_SpecFlowLangLexer_fr()) ) { s = 28; } + + else if ( (true) ) { s = 24; } + + + input.Seek(index7_27); + if ( s >= 0 ) return s; + break; + case 11 : + int LA7_29 = input.LA(1); + + + int index7_29 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred8_SpecFlowLangLexer_fr()) ) { s = 30; } + + else if ( (true) ) { s = 24; } + + + input.Seek(index7_29); + if ( s >= 0 ) return s; + break; + } + if (state.backtracking > 0) {state.failed = true; return -1;} + NoViableAltException nvae7 = + new NoViableAltException(dfa.Description, 7, _s, input); + dfa.Error(nvae7); + throw nvae7; + } + + +} +} \ No newline at end of file diff --git a/Parser/Grammar/SpecFlowLangLexer_hu.cs b/Parser/Grammar/SpecFlowLangLexer_hu.cs new file mode 100644 index 000000000..b8f803a1e --- /dev/null +++ b/Parser/Grammar/SpecFlowLangLexer_hu.cs @@ -0,0 +1,1806 @@ +// $ANTLR 3.1.2 SpecFlowLangLexer_hu.g 2009-11-09 17:26:26 + +// The variable 'variable' is assigned but its value is never used. +#pragma warning disable 168, 219 +// Unreachable code detected. +#pragma warning disable 162 +namespace TechTalk.SpecFlow.Parser.Grammar +{ + +using System; +using Antlr.Runtime; +using IList = System.Collections.IList; +using ArrayList = System.Collections.ArrayList; +using Stack = Antlr.Runtime.Collections.StackList; + +using IDictionary = System.Collections.IDictionary; +using Hashtable = System.Collections.Hashtable; + +public partial class SpecFlowLangLexer_hu : SpecFlowLangLexer { + public const int NEWLINECHR = 6; + public const int T_BACKGROUND = 9; + public const int T_THEN = 15; + public const int T_SCENARIO_OUTLINE = 11; + public const int MLTEXT = 18; + public const int WSCHAR = 4; + public const int NONNLCHR = 7; + public const int EOF = -1; + public const int T_AND = 16; + public const int T_GIVEN = 13; + public const int AT = 20; + public const int WORDCHAR = 24; + public const int T_BUT = 17; + public const int WS = 22; + public const int NEWLINE = 23; + public const int T_WHEN = 14; + public const int T_FEATURE = 8; + public const int T_EXAMPLES = 12; + public const int NONWCHR = 5; + public const int T_SCENARIO = 10; + public const int COMMENT = 21; + public const int CELLSEP = 19; + + // delegates + // delegators + + public SpecFlowLangLexer_hu() + { + InitializeCyclicDFAs(); + } + public SpecFlowLangLexer_hu(ICharStream input) + : this(input, null) { + } + public SpecFlowLangLexer_hu(ICharStream input, RecognizerSharedState state) + : base(input, state) { + InitializeCyclicDFAs(); + + } + + override public string GrammarFileName + { + get { return "SpecFlowLangLexer_hu.g";} + } + + override public IToken NextToken() + { + while (true) + { + if ( input.LA(1) == (int)CharStreamConstants.EOF ) + { + return Token.EOF_TOKEN; + } + + state.token = null; + state.channel = Token.DEFAULT_CHANNEL; + state.tokenStartCharIndex = input.Index(); + state.tokenStartCharPositionInLine = input.CharPositionInLine; + state.tokenStartLine = input.Line; + state.text = null; + try + { + int m = input.Mark(); + state.backtracking = 1; + state.failed = false; + mTokens(); + state.backtracking = 0; + if ( state.failed ) + { + input.Rewind(m); + input.Consume(); + } + else + { + Emit(); + return state.token; + } + } + catch (RecognitionException re) + { + // shouldn't happen in backtracking mode, but... + ReportError(re); + Recover(re); + } + } + } + + override public void Memoize(IIntStream input, int ruleIndex, int ruleStartIndex) + { + if ( state.backtracking > 1 ) + base.Memoize(input, ruleIndex, ruleStartIndex); + } + + override public bool AlreadyParsedRule(IIntStream input, int ruleIndex) + { + if ( state.backtracking>1 ) + return base.AlreadyParsedRule(input, ruleIndex); + return false; + }// $ANTLR start "WSCHAR" + public void mWSCHAR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_hu.g:12:25: ( ( ' ' | '\\t' ) ) + // SpecFlowLangLexer_hu.g:12:27: ( ' ' | '\\t' ) + { + if ( input.LA(1) == '\t' || input.LA(1) == ' ' ) + { + input.Consume(); + state.failed = false; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + Recover(mse); + throw mse;} + + + } + + } + finally + { + } + } + // $ANTLR end "WSCHAR" + + // $ANTLR start "NONWCHR" + public void mNONWCHR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_hu.g:13:25: ( ( ' ' | '\\t' | '\\r' | '\\n' | '#' | '@' ) ) + // SpecFlowLangLexer_hu.g:13:27: ( ' ' | '\\t' | '\\r' | '\\n' | '#' | '@' ) + { + if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n') || input.LA(1) == '\r' || input.LA(1) == ' ' || input.LA(1) == '#' || input.LA(1) == '@' ) + { + input.Consume(); + state.failed = false; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + Recover(mse); + throw mse;} + + + } + + } + finally + { + } + } + // $ANTLR end "NONWCHR" + + // $ANTLR start "NEWLINECHR" + public void mNEWLINECHR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_hu.g:14:25: ( ( '\\r' | '\\n' ) ) + // SpecFlowLangLexer_hu.g:14:27: ( '\\r' | '\\n' ) + { + if ( input.LA(1) == '\n' || input.LA(1) == '\r' ) + { + input.Consume(); + state.failed = false; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + Recover(mse); + throw mse;} + + + } + + } + finally + { + } + } + // $ANTLR end "NEWLINECHR" + + // $ANTLR start "NONNLCHR" + public void mNONNLCHR() // throws RecognitionException [2] + { + try + { + // SpecFlowLangLexer_hu.g:15:25: ( ( '\\u0000' .. '\\t' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\uFFFF' ) ) + int alt1 = 3; + int LA1_0 = input.LA(1); + + if ( ((LA1_0 >= '\u0000' && LA1_0 <= '\t')) ) + { + alt1 = 1; + } + else if ( ((LA1_0 >= '\u000B' && LA1_0 <= '\f')) ) + { + alt1 = 2; + } + else if ( ((LA1_0 >= '\u000E' && LA1_0 <= '\uFFFF')) ) + { + alt1 = 3; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + NoViableAltException nvae_d1s0 = + new NoViableAltException("", 1, 0, input); + + throw nvae_d1s0; + } + switch (alt1) + { + case 1 : + // SpecFlowLangLexer_hu.g:15:27: ( '\\u0000' .. '\\t' ) + { + // SpecFlowLangLexer_hu.g:15:27: ( '\\u0000' .. '\\t' ) + // SpecFlowLangLexer_hu.g:15:28: '\\u0000' .. '\\t' + { + MatchRange('\u0000','\t'); if (state.failed) return ; + + } + + + } + break; + case 2 : + // SpecFlowLangLexer_hu.g:15:44: ( '\\u000B' .. '\\f' ) + { + // SpecFlowLangLexer_hu.g:15:44: ( '\\u000B' .. '\\f' ) + // SpecFlowLangLexer_hu.g:15:45: '\\u000B' .. '\\f' + { + MatchRange('\u000B','\f'); if (state.failed) return ; + + } + + + } + break; + case 3 : + // SpecFlowLangLexer_hu.g:15:61: ( '\\u000E' .. '\\uFFFF' ) + { + // SpecFlowLangLexer_hu.g:15:61: ( '\\u000E' .. '\\uFFFF' ) + // SpecFlowLangLexer_hu.g:15:62: '\\u000E' .. '\\uFFFF' + { + MatchRange('\u000E','\uFFFF'); if (state.failed) return ; + + } + + + } + break; + + } + } + finally + { + } + } + // $ANTLR end "NONNLCHR" + + // $ANTLR start "T_FEATURE" + public void mT_FEATURE() // throws RecognitionException [2] + { + try + { + int _type = T_FEATURE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:18:15: ( 'Jellemz\\u0151:' ) + // SpecFlowLangLexer_hu.g:18:17: 'Jellemz\\u0151:' + { + Match("Jellemz\u0151:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_FEATURE" + + // $ANTLR start "T_BACKGROUND" + public void mT_BACKGROUND() // throws RecognitionException [2] + { + try + { + int _type = T_BACKGROUND; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:19:18: ( 'H\\u00e1tt\\u00e9r:' ) + // SpecFlowLangLexer_hu.g:19:20: 'H\\u00e1tt\\u00e9r:' + { + Match("H\u00e1tt\u00e9r:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_BACKGROUND" + + // $ANTLR start "T_SCENARIO" + public void mT_SCENARIO() // throws RecognitionException [2] + { + try + { + int _type = T_SCENARIO; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:20:16: ( 'Forgat\\u00f3k\\u00f6nyv:' ) + // SpecFlowLangLexer_hu.g:20:18: 'Forgat\\u00f3k\\u00f6nyv:' + { + Match("Forgat\u00f3k\u00f6nyv:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_SCENARIO" + + // $ANTLR start "T_SCENARIO_OUTLINE" + public void mT_SCENARIO_OUTLINE() // throws RecognitionException [2] + { + try + { + int _type = T_SCENARIO_OUTLINE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:21:24: ( 'Forgat\\u00f3k\\u00f6nyv v\\u00e1zlat:' ) + // SpecFlowLangLexer_hu.g:21:26: 'Forgat\\u00f3k\\u00f6nyv v\\u00e1zlat:' + { + Match("Forgat\u00f3k\u00f6nyv v\u00e1zlat:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_SCENARIO_OUTLINE" + + // $ANTLR start "T_EXAMPLES" + public void mT_EXAMPLES() // throws RecognitionException [2] + { + try + { + int _type = T_EXAMPLES; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:22:16: ( 'P\\u00e9ld\\u00e1k:' ) + // SpecFlowLangLexer_hu.g:22:18: 'P\\u00e9ld\\u00e1k:' + { + Match("P\u00e9ld\u00e1k:"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_EXAMPLES" + + // $ANTLR start "T_GIVEN" + public void mT_GIVEN() // throws RecognitionException [2] + { + try + { + int _type = T_GIVEN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:23:13: ( 'Ha' ) + // SpecFlowLangLexer_hu.g:23:15: 'Ha' + { + Match("Ha"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_GIVEN" + + // $ANTLR start "T_WHEN" + public void mT_WHEN() // throws RecognitionException [2] + { + try + { + int _type = T_WHEN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:24:12: ( 'Majd' ) + // SpecFlowLangLexer_hu.g:24:14: 'Majd' + { + Match("Majd"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_WHEN" + + // $ANTLR start "T_THEN" + public void mT_THEN() // throws RecognitionException [2] + { + try + { + int _type = T_THEN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:25:12: ( 'Akkor' ) + // SpecFlowLangLexer_hu.g:25:14: 'Akkor' + { + Match("Akkor"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_THEN" + + // $ANTLR start "T_AND" + public void mT_AND() // throws RecognitionException [2] + { + try + { + int _type = T_AND; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:26:11: ( '\\u00c9s' ) + // SpecFlowLangLexer_hu.g:26:13: '\\u00c9s' + { + Match("\u00c9s"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_AND" + + // $ANTLR start "T_BUT" + public void mT_BUT() // throws RecognitionException [2] + { + try + { + int _type = T_BUT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:27:11: ( 'De' ) + // SpecFlowLangLexer_hu.g:27:13: 'De' + { + Match("De"); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "T_BUT" + + // $ANTLR start "MLTEXT" + public void mMLTEXT() // throws RecognitionException [2] + { + try + { + int _type = MLTEXT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:29:13: ( '\"\"\"' ) + // SpecFlowLangLexer_hu.g:29:15: '\"\"\"' + { + Match("\"\"\""); if (state.failed) return ; + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "MLTEXT" + + // $ANTLR start "CELLSEP" + public void mCELLSEP() // throws RecognitionException [2] + { + try + { + int _type = CELLSEP; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:30:14: ( '|' ) + // SpecFlowLangLexer_hu.g:30:16: '|' + { + Match('|'); if (state.failed) return ; + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "CELLSEP" + + // $ANTLR start "AT" + public void mAT() // throws RecognitionException [2] + { + try + { + int _type = AT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:31:17: ( '@' ) + // SpecFlowLangLexer_hu.g:31:19: '@' + { + Match('@'); if (state.failed) return ; + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "AT" + + // $ANTLR start "COMMENT" + public void mCOMMENT() // throws RecognitionException [2] + { + try + { + int _type = COMMENT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:32:17: ( ( WSCHAR )* '#' ( NONNLCHR )* ) + // SpecFlowLangLexer_hu.g:32:19: ( WSCHAR )* '#' ( NONNLCHR )* + { + // SpecFlowLangLexer_hu.g:32:19: ( WSCHAR )* + do + { + int alt2 = 2; + int LA2_0 = input.LA(1); + + if ( (LA2_0 == '\t' || LA2_0 == ' ') ) + { + alt2 = 1; + } + + + switch (alt2) + { + case 1 : + // SpecFlowLangLexer_hu.g:32:19: WSCHAR + { + mWSCHAR(); if (state.failed) return ; + + } + break; + + default: + goto loop2; + } + } while (true); + + loop2: + ; // Stops C# compiler whining that label 'loop2' has no statements + + Match('#'); if (state.failed) return ; + // SpecFlowLangLexer_hu.g:32:31: ( NONNLCHR )* + do + { + int alt3 = 2; + int LA3_0 = input.LA(1); + + if ( ((LA3_0 >= '\u0000' && LA3_0 <= '\t') || (LA3_0 >= '\u000B' && LA3_0 <= '\f') || (LA3_0 >= '\u000E' && LA3_0 <= '\uFFFF')) ) + { + alt3 = 1; + } + + + switch (alt3) + { + case 1 : + // SpecFlowLangLexer_hu.g:32:31: NONNLCHR + { + mNONNLCHR(); if (state.failed) return ; + + } + break; + + default: + goto loop3; + } + } while (true); + + loop3: + ; // Stops C# compiler whining that label 'loop3' has no statements + + if ( (state.backtracking == 1) ) + { + _channel = Token.HIDDEN_CHANNEL; + } + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "COMMENT" + + // $ANTLR start "WS" + public void mWS() // throws RecognitionException [2] + { + try + { + int _type = WS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:33:17: ( ( WSCHAR )+ ) + // SpecFlowLangLexer_hu.g:33:19: ( WSCHAR )+ + { + // SpecFlowLangLexer_hu.g:33:19: ( WSCHAR )+ + int cnt4 = 0; + do + { + int alt4 = 2; + int LA4_0 = input.LA(1); + + if ( (LA4_0 == '\t' || LA4_0 == ' ') ) + { + alt4 = 1; + } + + + switch (alt4) + { + case 1 : + // SpecFlowLangLexer_hu.g:33:19: WSCHAR + { + mWSCHAR(); if (state.failed) return ; + + } + break; + + default: + if ( cnt4 >= 1 ) goto loop4; + if ( state.backtracking > 0 ) {state.failed = true; return ;} + EarlyExitException eee4 = + new EarlyExitException(4, input); + throw eee4; + } + cnt4++; + } while (true); + + loop4: + ; // Stops C# compiler whinging that label 'loop4' has no statements + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "WS" + + // $ANTLR start "NEWLINE" + public void mNEWLINE() // throws RecognitionException [2] + { + try + { + int _type = NEWLINE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:34:17: ( '\\r\\n' | '\\n' ) + int alt5 = 2; + int LA5_0 = input.LA(1); + + if ( (LA5_0 == '\r') ) + { + alt5 = 1; + } + else if ( (LA5_0 == '\n') ) + { + alt5 = 2; + } + else + { + if ( state.backtracking > 0 ) {state.failed = true; return ;} + NoViableAltException nvae_d5s0 = + new NoViableAltException("", 5, 0, input); + + throw nvae_d5s0; + } + switch (alt5) + { + case 1 : + // SpecFlowLangLexer_hu.g:34:19: '\\r\\n' + { + Match("\r\n"); if (state.failed) return ; + + + } + break; + case 2 : + // SpecFlowLangLexer_hu.g:34:28: '\\n' + { + Match('\n'); if (state.failed) return ; + + } + break; + + } + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "NEWLINE" + + // $ANTLR start "WORDCHAR" + public void mWORDCHAR() // throws RecognitionException [2] + { + try + { + int _type = WORDCHAR; + int _channel = DEFAULT_TOKEN_CHANNEL; + // SpecFlowLangLexer_hu.g:35:17: ( ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ ) + // SpecFlowLangLexer_hu.g:35:19: ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ + { + // SpecFlowLangLexer_hu.g:35:19: ( ( '\\u0000' .. '\\b' ) | ( '\\u000B' .. '\\f' ) | ( '\\u000E' .. '\\u001F' ) | ( '!' .. '\"' ) | ( '$' .. '?' ) | ( 'A' .. '\\uFFFF' ) )+ + int cnt6 = 0; + do + { + int alt6 = 7; + int LA6_0 = input.LA(1); + + if ( ((LA6_0 >= '\u0000' && LA6_0 <= '\b')) ) + { + alt6 = 1; + } + else if ( ((LA6_0 >= '\u000B' && LA6_0 <= '\f')) ) + { + alt6 = 2; + } + else if ( ((LA6_0 >= '\u000E' && LA6_0 <= '\u001F')) ) + { + alt6 = 3; + } + else if ( ((LA6_0 >= '!' && LA6_0 <= '\"')) ) + { + alt6 = 4; + } + else if ( ((LA6_0 >= '$' && LA6_0 <= '?')) ) + { + alt6 = 5; + } + else if ( ((LA6_0 >= 'A' && LA6_0 <= '\uFFFF')) ) + { + alt6 = 6; + } + + + switch (alt6) + { + case 1 : + // SpecFlowLangLexer_hu.g:35:20: ( '\\u0000' .. '\\b' ) + { + // SpecFlowLangLexer_hu.g:35:20: ( '\\u0000' .. '\\b' ) + // SpecFlowLangLexer_hu.g:35:21: '\\u0000' .. '\\b' + { + MatchRange('\u0000','\b'); if (state.failed) return ; + + } + + + } + break; + case 2 : + // SpecFlowLangLexer_hu.g:36:7: ( '\\u000B' .. '\\f' ) + { + // SpecFlowLangLexer_hu.g:36:7: ( '\\u000B' .. '\\f' ) + // SpecFlowLangLexer_hu.g:36:8: '\\u000B' .. '\\f' + { + MatchRange('\u000B','\f'); if (state.failed) return ; + + } + + + } + break; + case 3 : + // SpecFlowLangLexer_hu.g:37:7: ( '\\u000E' .. '\\u001F' ) + { + // SpecFlowLangLexer_hu.g:37:7: ( '\\u000E' .. '\\u001F' ) + // SpecFlowLangLexer_hu.g:37:8: '\\u000E' .. '\\u001F' + { + MatchRange('\u000E','\u001F'); if (state.failed) return ; + + } + + + } + break; + case 4 : + // SpecFlowLangLexer_hu.g:38:7: ( '!' .. '\"' ) + { + // SpecFlowLangLexer_hu.g:38:7: ( '!' .. '\"' ) + // SpecFlowLangLexer_hu.g:38:8: '!' .. '\"' + { + MatchRange('!','\"'); if (state.failed) return ; + + } + + + } + break; + case 5 : + // SpecFlowLangLexer_hu.g:39:7: ( '$' .. '?' ) + { + // SpecFlowLangLexer_hu.g:39:7: ( '$' .. '?' ) + // SpecFlowLangLexer_hu.g:39:8: '$' .. '?' + { + MatchRange('$','?'); if (state.failed) return ; + + } + + + } + break; + case 6 : + // SpecFlowLangLexer_hu.g:40:7: ( 'A' .. '\\uFFFF' ) + { + // SpecFlowLangLexer_hu.g:40:7: ( 'A' .. '\\uFFFF' ) + // SpecFlowLangLexer_hu.g:40:8: 'A' .. '\\uFFFF' + { + MatchRange('A','\uFFFF'); if (state.failed) return ; + + } + + + } + break; + + default: + if ( cnt6 >= 1 ) goto loop6; + if ( state.backtracking > 0 ) {state.failed = true; return ;} + EarlyExitException eee6 = + new EarlyExitException(6, input); + throw eee6; + } + cnt6++; + } while (true); + + loop6: + ; // Stops C# compiler whinging that label 'loop6' has no statements + + + } + + state.type = _type; + state.channel = _channel; + } + finally + { + } + } + // $ANTLR end "WORDCHAR" + + override public void mTokens() // throws RecognitionException + { + // SpecFlowLangLexer_hu.g:1:39: ( T_FEATURE | T_BACKGROUND | T_SCENARIO | T_SCENARIO_OUTLINE | T_EXAMPLES | T_GIVEN | T_WHEN | T_THEN | T_AND | T_BUT | MLTEXT | CELLSEP | AT | COMMENT | WS | NEWLINE | WORDCHAR ) + int alt7 = 17; + alt7 = dfa7.Predict(input); + switch (alt7) + { + case 1 : + // SpecFlowLangLexer_hu.g:1:41: T_FEATURE + { + mT_FEATURE(); if (state.failed) return ; + + } + break; + case 2 : + // SpecFlowLangLexer_hu.g:1:51: T_BACKGROUND + { + mT_BACKGROUND(); if (state.failed) return ; + + } + break; + case 3 : + // SpecFlowLangLexer_hu.g:1:64: T_SCENARIO + { + mT_SCENARIO(); if (state.failed) return ; + + } + break; + case 4 : + // SpecFlowLangLexer_hu.g:1:75: T_SCENARIO_OUTLINE + { + mT_SCENARIO_OUTLINE(); if (state.failed) return ; + + } + break; + case 5 : + // SpecFlowLangLexer_hu.g:1:94: T_EXAMPLES + { + mT_EXAMPLES(); if (state.failed) return ; + + } + break; + case 6 : + // SpecFlowLangLexer_hu.g:1:105: T_GIVEN + { + mT_GIVEN(); if (state.failed) return ; + + } + break; + case 7 : + // SpecFlowLangLexer_hu.g:1:113: T_WHEN + { + mT_WHEN(); if (state.failed) return ; + + } + break; + case 8 : + // SpecFlowLangLexer_hu.g:1:120: T_THEN + { + mT_THEN(); if (state.failed) return ; + + } + break; + case 9 : + // SpecFlowLangLexer_hu.g:1:127: T_AND + { + mT_AND(); if (state.failed) return ; + + } + break; + case 10 : + // SpecFlowLangLexer_hu.g:1:133: T_BUT + { + mT_BUT(); if (state.failed) return ; + + } + break; + case 11 : + // SpecFlowLangLexer_hu.g:1:139: MLTEXT + { + mMLTEXT(); if (state.failed) return ; + + } + break; + case 12 : + // SpecFlowLangLexer_hu.g:1:146: CELLSEP + { + mCELLSEP(); if (state.failed) return ; + + } + break; + case 13 : + // SpecFlowLangLexer_hu.g:1:154: AT + { + mAT(); if (state.failed) return ; + + } + break; + case 14 : + // SpecFlowLangLexer_hu.g:1:157: COMMENT + { + mCOMMENT(); if (state.failed) return ; + + } + break; + case 15 : + // SpecFlowLangLexer_hu.g:1:165: WS + { + mWS(); if (state.failed) return ; + + } + break; + case 16 : + // SpecFlowLangLexer_hu.g:1:168: NEWLINE + { + mNEWLINE(); if (state.failed) return ; + + } + break; + case 17 : + // SpecFlowLangLexer_hu.g:1:176: WORDCHAR + { + mWORDCHAR(); if (state.failed) return ; + + } + break; + + } + + } + + // $ANTLR start "synpred1_SpecFlowLangLexer_hu" + public void synpred1_SpecFlowLangLexer_hu_fragment() { + // SpecFlowLangLexer_hu.g:1:41: ( T_FEATURE ) + // SpecFlowLangLexer_hu.g:1:41: T_FEATURE + { + mT_FEATURE(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred1_SpecFlowLangLexer_hu" + + // $ANTLR start "synpred2_SpecFlowLangLexer_hu" + public void synpred2_SpecFlowLangLexer_hu_fragment() { + // SpecFlowLangLexer_hu.g:1:51: ( T_BACKGROUND ) + // SpecFlowLangLexer_hu.g:1:51: T_BACKGROUND + { + mT_BACKGROUND(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred2_SpecFlowLangLexer_hu" + + // $ANTLR start "synpred3_SpecFlowLangLexer_hu" + public void synpred3_SpecFlowLangLexer_hu_fragment() { + // SpecFlowLangLexer_hu.g:1:64: ( T_SCENARIO ) + // SpecFlowLangLexer_hu.g:1:64: T_SCENARIO + { + mT_SCENARIO(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred3_SpecFlowLangLexer_hu" + + // $ANTLR start "synpred4_SpecFlowLangLexer_hu" + public void synpred4_SpecFlowLangLexer_hu_fragment() { + // SpecFlowLangLexer_hu.g:1:75: ( T_SCENARIO_OUTLINE ) + // SpecFlowLangLexer_hu.g:1:75: T_SCENARIO_OUTLINE + { + mT_SCENARIO_OUTLINE(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred4_SpecFlowLangLexer_hu" + + // $ANTLR start "synpred5_SpecFlowLangLexer_hu" + public void synpred5_SpecFlowLangLexer_hu_fragment() { + // SpecFlowLangLexer_hu.g:1:94: ( T_EXAMPLES ) + // SpecFlowLangLexer_hu.g:1:94: T_EXAMPLES + { + mT_EXAMPLES(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred5_SpecFlowLangLexer_hu" + + // $ANTLR start "synpred6_SpecFlowLangLexer_hu" + public void synpred6_SpecFlowLangLexer_hu_fragment() { + // SpecFlowLangLexer_hu.g:1:105: ( T_GIVEN ) + // SpecFlowLangLexer_hu.g:1:105: T_GIVEN + { + mT_GIVEN(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred6_SpecFlowLangLexer_hu" + + // $ANTLR start "synpred7_SpecFlowLangLexer_hu" + public void synpred7_SpecFlowLangLexer_hu_fragment() { + // SpecFlowLangLexer_hu.g:1:113: ( T_WHEN ) + // SpecFlowLangLexer_hu.g:1:113: T_WHEN + { + mT_WHEN(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred7_SpecFlowLangLexer_hu" + + // $ANTLR start "synpred8_SpecFlowLangLexer_hu" + public void synpred8_SpecFlowLangLexer_hu_fragment() { + // SpecFlowLangLexer_hu.g:1:120: ( T_THEN ) + // SpecFlowLangLexer_hu.g:1:120: T_THEN + { + mT_THEN(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred8_SpecFlowLangLexer_hu" + + // $ANTLR start "synpred9_SpecFlowLangLexer_hu" + public void synpred9_SpecFlowLangLexer_hu_fragment() { + // SpecFlowLangLexer_hu.g:1:127: ( T_AND ) + // SpecFlowLangLexer_hu.g:1:127: T_AND + { + mT_AND(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred9_SpecFlowLangLexer_hu" + + // $ANTLR start "synpred10_SpecFlowLangLexer_hu" + public void synpred10_SpecFlowLangLexer_hu_fragment() { + // SpecFlowLangLexer_hu.g:1:133: ( T_BUT ) + // SpecFlowLangLexer_hu.g:1:133: T_BUT + { + mT_BUT(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred10_SpecFlowLangLexer_hu" + + // $ANTLR start "synpred11_SpecFlowLangLexer_hu" + public void synpred11_SpecFlowLangLexer_hu_fragment() { + // SpecFlowLangLexer_hu.g:1:139: ( MLTEXT ) + // SpecFlowLangLexer_hu.g:1:139: MLTEXT + { + mMLTEXT(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred11_SpecFlowLangLexer_hu" + + // $ANTLR start "synpred12_SpecFlowLangLexer_hu" + public void synpred12_SpecFlowLangLexer_hu_fragment() { + // SpecFlowLangLexer_hu.g:1:146: ( CELLSEP ) + // SpecFlowLangLexer_hu.g:1:146: CELLSEP + { + mCELLSEP(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred12_SpecFlowLangLexer_hu" + + // $ANTLR start "synpred14_SpecFlowLangLexer_hu" + public void synpred14_SpecFlowLangLexer_hu_fragment() { + // SpecFlowLangLexer_hu.g:1:157: ( COMMENT ) + // SpecFlowLangLexer_hu.g:1:157: COMMENT + { + mCOMMENT(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred14_SpecFlowLangLexer_hu" + + // $ANTLR start "synpred15_SpecFlowLangLexer_hu" + public void synpred15_SpecFlowLangLexer_hu_fragment() { + // SpecFlowLangLexer_hu.g:1:165: ( WS ) + // SpecFlowLangLexer_hu.g:1:165: WS + { + mWS(); if (state.failed) return ; + + } + } + // $ANTLR end "synpred15_SpecFlowLangLexer_hu" + + public bool synpred10_SpecFlowLangLexer_hu() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred10_SpecFlowLangLexer_hu_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred3_SpecFlowLangLexer_hu() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred3_SpecFlowLangLexer_hu_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred9_SpecFlowLangLexer_hu() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred9_SpecFlowLangLexer_hu_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred11_SpecFlowLangLexer_hu() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred11_SpecFlowLangLexer_hu_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred7_SpecFlowLangLexer_hu() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred7_SpecFlowLangLexer_hu_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred15_SpecFlowLangLexer_hu() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred15_SpecFlowLangLexer_hu_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred12_SpecFlowLangLexer_hu() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred12_SpecFlowLangLexer_hu_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred14_SpecFlowLangLexer_hu() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred14_SpecFlowLangLexer_hu_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred6_SpecFlowLangLexer_hu() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred6_SpecFlowLangLexer_hu_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred5_SpecFlowLangLexer_hu() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred5_SpecFlowLangLexer_hu_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred1_SpecFlowLangLexer_hu() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred1_SpecFlowLangLexer_hu_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred4_SpecFlowLangLexer_hu() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred4_SpecFlowLangLexer_hu_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred8_SpecFlowLangLexer_hu() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred8_SpecFlowLangLexer_hu_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + public bool synpred2_SpecFlowLangLexer_hu() + { + state.backtracking++; + int start = input.Mark(); + try + { + synpred2_SpecFlowLangLexer_hu_fragment(); // can never throw exception + } + catch (RecognitionException re) + { + Console.Error.WriteLine("impossible: "+re); + } + bool success = !state.failed; + input.Rewind(start); + state.backtracking--; + state.failed = false; + return success; + } + + + protected DFA7 dfa7; + private void InitializeCyclicDFAs() + { + this.dfa7 = new DFA7(this); + this.dfa7.specialStateTransitionHandler = new DFA.SpecialStateTransitionHandler(DFA7_SpecialStateTransition); + } + + const string DFA7_eotS = + "\x1f\uffff"; + const string DFA7_eofS = + "\x1f\uffff"; + const string DFA7_minS = + "\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x03\uffff\x01\x00"+ + "\x02\uffff\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff"+ + "\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff\x01\x00\x02"+ + "\uffff\x01\x00\x01\uffff"; + const string DFA7_maxS = + "\x01\uffff\x01\uffff\x01\x00\x02\uffff\x01\x00\x03\uffff\x01\x00"+ + "\x02\uffff\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff"+ + "\x01\x00\x01\uffff\x01\x00\x02\uffff\x01\x00\x01\uffff\x01\x00\x02"+ + "\uffff\x01\x00\x01\uffff"; + const string DFA7_acceptS = + "\x01\uffff\x01\x0d\x01\uffff\x01\x0e\x01\x0f\x01\uffff\x01\x03"+ + "\x01\x04\x01\x11\x01\uffff\x01\x09\x01\x0e\x01\uffff\x01\x08\x01"+ + "\uffff\x01\x0c\x01\x11\x01\uffff\x01\x01\x01\uffff\x01\x0a\x01\uffff"+ + "\x01\x02\x01\x06\x01\uffff\x01\x05\x01\uffff\x01\x0b\x01\x10\x01"+ + "\uffff\x01\x07"; + const string DFA7_specialS = + "\x01\x00\x01\uffff\x01\x01\x02\uffff\x01\x02\x03\uffff\x01\x03"+ + "\x02\uffff\x01\x04\x01\uffff\x01\x05\x02\uffff\x01\x06\x01\uffff"+ + "\x01\x07\x01\uffff\x01\x08\x02\uffff\x01\x09\x01\uffff\x01\x0a\x02"+ + "\uffff\x01\x0b\x01\uffff}>"; + static readonly string[] DFA7_transitionS = { + "\x09\x10\x01\x02\x01\x1c\x02\x10\x01\x1c\x12\x10\x01\x02\x01"+ + "\x10\x01\x1a\x01\x0b\x1c\x10\x01\x01\x01\x0c\x02\x10\x01\x13"+ + "\x01\x10\x01\x05\x01\x10\x01\x15\x01\x10\x01\x11\x02\x10\x01"+ + "\x1d\x02\x10\x01\x18\x2b\x10\x01\x0e\x4c\x10\x01\x09\uff36\x10", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "\x01\uffff", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "", + "\x01\uffff", + "", + "", + "\x01\uffff", + "" + }; + + static readonly short[] DFA7_eot = DFA.UnpackEncodedString(DFA7_eotS); + static readonly short[] DFA7_eof = DFA.UnpackEncodedString(DFA7_eofS); + static readonly char[] DFA7_min = DFA.UnpackEncodedStringToUnsignedChars(DFA7_minS); + static readonly char[] DFA7_max = DFA.UnpackEncodedStringToUnsignedChars(DFA7_maxS); + static readonly short[] DFA7_accept = DFA.UnpackEncodedString(DFA7_acceptS); + static readonly short[] DFA7_special = DFA.UnpackEncodedString(DFA7_specialS); + static readonly short[][] DFA7_transition = DFA.UnpackEncodedStringArray(DFA7_transitionS); + + protected class DFA7 : DFA + { + public DFA7(BaseRecognizer recognizer) + { + this.recognizer = recognizer; + this.decisionNumber = 7; + this.eot = DFA7_eot; + this.eof = DFA7_eof; + this.min = DFA7_min; + this.max = DFA7_max; + this.accept = DFA7_accept; + this.special = DFA7_special; + this.transition = DFA7_transition; + + } + + override public string Description + { + get { return "1:1: Tokens options {k=1; backtrack=true; } : ( T_FEATURE | T_BACKGROUND | T_SCENARIO | T_SCENARIO_OUTLINE | T_EXAMPLES | T_GIVEN | T_WHEN | T_THEN | T_AND | T_BUT | MLTEXT | CELLSEP | AT | COMMENT | WS | NEWLINE | WORDCHAR );"; } + } + + } + + + protected internal int DFA7_SpecialStateTransition(DFA dfa, int s, IIntStream _input) //throws NoViableAltException + { + IIntStream input = _input; + int _s = s; + switch ( s ) + { + case 0 : + int LA7_0 = input.LA(1); + + s = -1; + if ( (LA7_0 == '@') ) { s = 1; } + + else if ( (LA7_0 == '\t' || LA7_0 == ' ') ) { s = 2; } + + else if ( (LA7_0 == 'F') ) { s = 5; } + + else if ( (LA7_0 == '\u00C9') ) { s = 9; } + + else if ( (LA7_0 == '#') ) { s = 11; } + + else if ( (LA7_0 == 'A') ) { s = 12; } + + else if ( (LA7_0 == '|') ) { s = 14; } + + else if ( ((LA7_0 >= '\u0000' && LA7_0 <= '\b') || (LA7_0 >= '\u000B' && LA7_0 <= '\f') || (LA7_0 >= '\u000E' && LA7_0 <= '\u001F') || LA7_0 == '!' || (LA7_0 >= '$' && LA7_0 <= '?') || (LA7_0 >= 'B' && LA7_0 <= 'C') || LA7_0 == 'E' || LA7_0 == 'G' || LA7_0 == 'I' || (LA7_0 >= 'K' && LA7_0 <= 'L') || (LA7_0 >= 'N' && LA7_0 <= 'O') || (LA7_0 >= 'Q' && LA7_0 <= '{') || (LA7_0 >= '}' && LA7_0 <= '\u00C8') || (LA7_0 >= '\u00CA' && LA7_0 <= '\uFFFF')) ) { s = 16; } + + else if ( (LA7_0 == 'J') ) { s = 17; } + + else if ( (LA7_0 == 'D') ) { s = 19; } + + else if ( (LA7_0 == 'H') ) { s = 21; } + + else if ( (LA7_0 == 'P') ) { s = 24; } + + else if ( (LA7_0 == '\"') ) { s = 26; } + + else if ( (LA7_0 == '\n' || LA7_0 == '\r') ) { s = 28; } + + else if ( (LA7_0 == 'M') ) { s = 29; } + + if ( s >= 0 ) return s; + break; + case 1 : + int LA7_2 = input.LA(1); + + + int index7_2 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred14_SpecFlowLangLexer_hu()) ) { s = 3; } + + else if ( (synpred15_SpecFlowLangLexer_hu()) ) { s = 4; } + + + input.Seek(index7_2); + if ( s >= 0 ) return s; + break; + case 2 : + int LA7_5 = input.LA(1); + + + int index7_5 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred3_SpecFlowLangLexer_hu()) ) { s = 6; } + + else if ( (synpred4_SpecFlowLangLexer_hu()) ) { s = 7; } + + else if ( (true) ) { s = 8; } + + + input.Seek(index7_5); + if ( s >= 0 ) return s; + break; + case 3 : + int LA7_9 = input.LA(1); + + + int index7_9 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred9_SpecFlowLangLexer_hu()) ) { s = 10; } + + else if ( (true) ) { s = 8; } + + + input.Seek(index7_9); + if ( s >= 0 ) return s; + break; + case 4 : + int LA7_12 = input.LA(1); + + + int index7_12 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred8_SpecFlowLangLexer_hu()) ) { s = 13; } + + else if ( (true) ) { s = 8; } + + + input.Seek(index7_12); + if ( s >= 0 ) return s; + break; + case 5 : + int LA7_14 = input.LA(1); + + + int index7_14 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred12_SpecFlowLangLexer_hu()) ) { s = 15; } + + else if ( (true) ) { s = 8; } + + + input.Seek(index7_14); + if ( s >= 0 ) return s; + break; + case 6 : + int LA7_17 = input.LA(1); + + + int index7_17 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred1_SpecFlowLangLexer_hu()) ) { s = 18; } + + else if ( (true) ) { s = 16; } + + + input.Seek(index7_17); + if ( s >= 0 ) return s; + break; + case 7 : + int LA7_19 = input.LA(1); + + + int index7_19 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred10_SpecFlowLangLexer_hu()) ) { s = 20; } + + else if ( (true) ) { s = 16; } + + + input.Seek(index7_19); + if ( s >= 0 ) return s; + break; + case 8 : + int LA7_21 = input.LA(1); + + + int index7_21 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred2_SpecFlowLangLexer_hu()) ) { s = 22; } + + else if ( (synpred6_SpecFlowLangLexer_hu()) ) { s = 23; } + + else if ( (true) ) { s = 16; } + + + input.Seek(index7_21); + if ( s >= 0 ) return s; + break; + case 9 : + int LA7_24 = input.LA(1); + + + int index7_24 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred5_SpecFlowLangLexer_hu()) ) { s = 25; } + + else if ( (true) ) { s = 16; } + + + input.Seek(index7_24); + if ( s >= 0 ) return s; + break; + case 10 : + int LA7_26 = input.LA(1); + + + int index7_26 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred11_SpecFlowLangLexer_hu()) ) { s = 27; } + + else if ( (true) ) { s = 16; } + + + input.Seek(index7_26); + if ( s >= 0 ) return s; + break; + case 11 : + int LA7_29 = input.LA(1); + + + int index7_29 = input.Index(); + input.Rewind(); + s = -1; + if ( (synpred7_SpecFlowLangLexer_hu()) ) { s = 30; } + + else if ( (true) ) { s = 16; } + + + input.Seek(index7_29); + if ( s >= 0 ) return s; + break; + } + if (state.backtracking > 0) {state.failed = true; return -1;} + NoViableAltException nvae7 = + new NoViableAltException(dfa.Description, 7, _s, input); + dfa.Error(nvae7); + throw nvae7; + } + + +} +} \ No newline at end of file diff --git a/Parser/Grammar/SpecFlowLangParser.cs b/Parser/Grammar/SpecFlowLangParser.cs index 38adb0897..d2ae8ab88 100644 --- a/Parser/Grammar/SpecFlowLangParser.cs +++ b/Parser/Grammar/SpecFlowLangParser.cs @@ -1,4 +1,4 @@ -// $ANTLR 3.1.2 SpecFlowLangParser.g 2009-11-05 16:13:47 +// $ANTLR 3.1.2 SpecFlowLangParser.g 2009-11-09 17:26:27 // The variable 'variable' is assigned but its value is never used. #pragma warning disable 168, 219 @@ -171,7 +171,7 @@ override public object Tree }; // $ANTLR start "feature" - // SpecFlowLangParser.g:44:1: feature : ( newlineWithSpaces )? ( tags )? ( WS )? T_FEATURE ( WS )? text newlineWithSpaces ( descriptionLine )* ( background )? ( scenarioKind )* ( WS )? EOF -> ^( FEATURE ( tags )? text ( descriptionLine )* ( background )? ^( SCENARIOS ( scenarioKind )* ) ) ; + // SpecFlowLangParser.g:42:1: feature : ( newlineWithSpaces )? ( tags )? ( WS )? T_FEATURE ( WS )? text newlineWithSpaces ( descriptionLine )* ( background )? ( scenarioKind )* ( WS )? EOF -> ^( FEATURE ( tags )? text ( descriptionLine )* ( background )? ^( SCENARIOS ( scenarioKind )* ) ) ; public SpecFlowLangParser.feature_return feature() // throws RecognitionException [1] { SpecFlowLangParser.feature_return retval = new SpecFlowLangParser.feature_return(); @@ -215,10 +215,10 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio RewriteRuleSubtreeStream stream_descriptionLine = new RewriteRuleSubtreeStream(adaptor,"rule descriptionLine"); try { - // SpecFlowLangParser.g:45:5: ( ( newlineWithSpaces )? ( tags )? ( WS )? T_FEATURE ( WS )? text newlineWithSpaces ( descriptionLine )* ( background )? ( scenarioKind )* ( WS )? EOF -> ^( FEATURE ( tags )? text ( descriptionLine )* ( background )? ^( SCENARIOS ( scenarioKind )* ) ) ) - // SpecFlowLangParser.g:45:9: ( newlineWithSpaces )? ( tags )? ( WS )? T_FEATURE ( WS )? text newlineWithSpaces ( descriptionLine )* ( background )? ( scenarioKind )* ( WS )? EOF + // SpecFlowLangParser.g:43:5: ( ( newlineWithSpaces )? ( tags )? ( WS )? T_FEATURE ( WS )? text newlineWithSpaces ( descriptionLine )* ( background )? ( scenarioKind )* ( WS )? EOF -> ^( FEATURE ( tags )? text ( descriptionLine )* ( background )? ^( SCENARIOS ( scenarioKind )* ) ) ) + // SpecFlowLangParser.g:43:9: ( newlineWithSpaces )? ( tags )? ( WS )? T_FEATURE ( WS )? text newlineWithSpaces ( descriptionLine )* ( background )? ( scenarioKind )* ( WS )? EOF { - // SpecFlowLangParser.g:45:9: ( newlineWithSpaces )? + // SpecFlowLangParser.g:43:9: ( newlineWithSpaces )? int alt1 = 2; int LA1_0 = input.LA(1); @@ -240,7 +240,7 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio case 1 : // SpecFlowLangParser.g:0:0: newlineWithSpaces { - PushFollow(FOLLOW_newlineWithSpaces_in_feature254); + PushFollow(FOLLOW_newlineWithSpaces_in_feature252); newlineWithSpaces1 = newlineWithSpaces(); state.followingStackPointer--; if (state.failed) return retval; @@ -251,7 +251,7 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio } - // SpecFlowLangParser.g:46:9: ( tags )? + // SpecFlowLangParser.g:44:9: ( tags )? int alt2 = 2; int LA2_0 = input.LA(1); @@ -273,7 +273,7 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio case 1 : // SpecFlowLangParser.g:0:0: tags { - PushFollow(FOLLOW_tags_in_feature265); + PushFollow(FOLLOW_tags_in_feature263); tags2 = tags(); state.followingStackPointer--; if (state.failed) return retval; @@ -284,7 +284,7 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio } - // SpecFlowLangParser.g:47:9: ( WS )? + // SpecFlowLangParser.g:45:9: ( WS )? int alt3 = 2; int LA3_0 = input.LA(1); @@ -297,7 +297,7 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio case 1 : // SpecFlowLangParser.g:0:0: WS { - WS3=(IToken)Match(input,WS,FOLLOW_WS_in_feature276); if (state.failed) return retval; + WS3=(IToken)Match(input,WS,FOLLOW_WS_in_feature274); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS3); @@ -306,10 +306,10 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio } - T_FEATURE4=(IToken)Match(input,T_FEATURE,FOLLOW_T_FEATURE_in_feature279); if (state.failed) return retval; + T_FEATURE4=(IToken)Match(input,T_FEATURE,FOLLOW_T_FEATURE_in_feature277); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_T_FEATURE.Add(T_FEATURE4); - // SpecFlowLangParser.g:47:23: ( WS )? + // SpecFlowLangParser.g:45:23: ( WS )? int alt4 = 2; int LA4_0 = input.LA(1); @@ -322,7 +322,7 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio case 1 : // SpecFlowLangParser.g:0:0: WS { - WS5=(IToken)Match(input,WS,FOLLOW_WS_in_feature281); if (state.failed) return retval; + WS5=(IToken)Match(input,WS,FOLLOW_WS_in_feature279); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS5); @@ -331,17 +331,17 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio } - PushFollow(FOLLOW_text_in_feature284); + PushFollow(FOLLOW_text_in_feature282); text6 = text(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_text.Add(text6.Tree); - PushFollow(FOLLOW_newlineWithSpaces_in_feature286); + PushFollow(FOLLOW_newlineWithSpaces_in_feature284); newlineWithSpaces7 = newlineWithSpaces(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_newlineWithSpaces.Add(newlineWithSpaces7.Tree); - // SpecFlowLangParser.g:48:9: ( descriptionLine )* + // SpecFlowLangParser.g:46:9: ( descriptionLine )* do { int alt5 = 2; @@ -369,7 +369,7 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio case 1 : // SpecFlowLangParser.g:0:0: descriptionLine { - PushFollow(FOLLOW_descriptionLine_in_feature296); + PushFollow(FOLLOW_descriptionLine_in_feature294); descriptionLine8 = descriptionLine(); state.followingStackPointer--; if (state.failed) return retval; @@ -386,7 +386,7 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio loop5: ; // Stops C# compiler whining that label 'loop5' has no statements - // SpecFlowLangParser.g:49:9: ( background )? + // SpecFlowLangParser.g:47:9: ( background )? int alt6 = 2; int LA6_0 = input.LA(1); @@ -408,7 +408,7 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio case 1 : // SpecFlowLangParser.g:0:0: background { - PushFollow(FOLLOW_background_in_feature307); + PushFollow(FOLLOW_background_in_feature305); background9 = background(); state.followingStackPointer--; if (state.failed) return retval; @@ -419,7 +419,7 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio } - // SpecFlowLangParser.g:50:9: ( scenarioKind )* + // SpecFlowLangParser.g:48:9: ( scenarioKind )* do { int alt7 = 2; @@ -447,7 +447,7 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio case 1 : // SpecFlowLangParser.g:0:0: scenarioKind { - PushFollow(FOLLOW_scenarioKind_in_feature318); + PushFollow(FOLLOW_scenarioKind_in_feature316); scenarioKind10 = scenarioKind(); state.followingStackPointer--; if (state.failed) return retval; @@ -464,7 +464,7 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio loop7: ; // Stops C# compiler whining that label 'loop7' has no statements - // SpecFlowLangParser.g:50:23: ( WS )? + // SpecFlowLangParser.g:48:23: ( WS )? int alt8 = 2; int LA8_0 = input.LA(1); @@ -477,7 +477,7 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio case 1 : // SpecFlowLangParser.g:0:0: WS { - WS11=(IToken)Match(input,WS,FOLLOW_WS_in_feature321); if (state.failed) return retval; + WS11=(IToken)Match(input,WS,FOLLOW_WS_in_feature319); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS11); @@ -486,13 +486,13 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio } - EOF12=(IToken)Match(input,EOF,FOLLOW_EOF_in_feature324); if (state.failed) return retval; + EOF12=(IToken)Match(input,EOF,FOLLOW_EOF_in_feature322); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_EOF.Add(EOF12); // AST REWRITE - // elements: scenarioKind, text, background, descriptionLine, tags + // elements: descriptionLine, text, scenarioKind, tags, background // token labels: // rule labels: retval // token list labels: @@ -503,14 +503,14 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 51:9: -> ^( FEATURE ( tags )? text ( descriptionLine )* ( background )? ^( SCENARIOS ( scenarioKind )* ) ) + // 49:9: -> ^( FEATURE ( tags )? text ( descriptionLine )* ( background )? ^( SCENARIOS ( scenarioKind )* ) ) { - // SpecFlowLangParser.g:51:12: ^( FEATURE ( tags )? text ( descriptionLine )* ( background )? ^( SCENARIOS ( scenarioKind )* ) ) + // SpecFlowLangParser.g:49:12: ^( FEATURE ( tags )? text ( descriptionLine )* ( background )? ^( SCENARIOS ( scenarioKind )* ) ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(FEATURE, "FEATURE"), root_1); - // SpecFlowLangParser.g:51:22: ( tags )? + // SpecFlowLangParser.g:49:22: ( tags )? if ( stream_tags.HasNext() ) { adaptor.AddChild(root_1, stream_tags.NextTree()); @@ -518,26 +518,26 @@ public SpecFlowLangParser.feature_return feature() // throws RecognitionExceptio } stream_tags.Reset(); adaptor.AddChild(root_1, stream_text.NextTree()); - // SpecFlowLangParser.g:51:33: ( descriptionLine )* + // SpecFlowLangParser.g:49:33: ( descriptionLine )* while ( stream_descriptionLine.HasNext() ) { adaptor.AddChild(root_1, stream_descriptionLine.NextTree()); } stream_descriptionLine.Reset(); - // SpecFlowLangParser.g:51:50: ( background )? + // SpecFlowLangParser.g:49:50: ( background )? if ( stream_background.HasNext() ) { adaptor.AddChild(root_1, stream_background.NextTree()); } stream_background.Reset(); - // SpecFlowLangParser.g:52:13: ^( SCENARIOS ( scenarioKind )* ) + // SpecFlowLangParser.g:50:13: ^( SCENARIOS ( scenarioKind )* ) { object root_2 = (object)adaptor.GetNilNode(); root_2 = (object)adaptor.BecomeRoot((object)adaptor.Create(SCENARIOS, "SCENARIOS"), root_2); - // SpecFlowLangParser.g:52:25: ( scenarioKind )* + // SpecFlowLangParser.g:50:25: ( scenarioKind )* while ( stream_scenarioKind.HasNext() ) { adaptor.AddChild(root_2, stream_scenarioKind.NextTree()); @@ -588,7 +588,7 @@ override public object Tree }; // $ANTLR start "tags" - // SpecFlowLangParser.g:56:1: tags : ( WS )? ( tag )+ -> ^( TAGS ( tag )+ ) ; + // SpecFlowLangParser.g:54:1: tags : ( WS )? ( tag )+ -> ^( TAGS ( tag )+ ) ; public SpecFlowLangParser.tags_return tags() // throws RecognitionException [1] { SpecFlowLangParser.tags_return retval = new SpecFlowLangParser.tags_return(); @@ -605,10 +605,10 @@ public SpecFlowLangParser.tags_return tags() // throws RecognitionException [1] RewriteRuleSubtreeStream stream_tag = new RewriteRuleSubtreeStream(adaptor,"rule tag"); try { - // SpecFlowLangParser.g:57:5: ( ( WS )? ( tag )+ -> ^( TAGS ( tag )+ ) ) - // SpecFlowLangParser.g:57:9: ( WS )? ( tag )+ + // SpecFlowLangParser.g:55:5: ( ( WS )? ( tag )+ -> ^( TAGS ( tag )+ ) ) + // SpecFlowLangParser.g:55:9: ( WS )? ( tag )+ { - // SpecFlowLangParser.g:57:9: ( WS )? + // SpecFlowLangParser.g:55:9: ( WS )? int alt9 = 2; int LA9_0 = input.LA(1); @@ -621,7 +621,7 @@ public SpecFlowLangParser.tags_return tags() // throws RecognitionException [1] case 1 : // SpecFlowLangParser.g:0:0: WS { - WS13=(IToken)Match(input,WS,FOLLOW_WS_in_tags401); if (state.failed) return retval; + WS13=(IToken)Match(input,WS,FOLLOW_WS_in_tags399); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS13); @@ -630,7 +630,7 @@ public SpecFlowLangParser.tags_return tags() // throws RecognitionException [1] } - // SpecFlowLangParser.g:57:13: ( tag )+ + // SpecFlowLangParser.g:55:13: ( tag )+ int cnt10 = 0; do { @@ -648,7 +648,7 @@ public SpecFlowLangParser.tags_return tags() // throws RecognitionException [1] case 1 : // SpecFlowLangParser.g:0:0: tag { - PushFollow(FOLLOW_tag_in_tags404); + PushFollow(FOLLOW_tag_in_tags402); tag14 = tag(); state.followingStackPointer--; if (state.failed) return retval; @@ -684,9 +684,9 @@ public SpecFlowLangParser.tags_return tags() // throws RecognitionException [1] RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 58:9: -> ^( TAGS ( tag )+ ) + // 56:9: -> ^( TAGS ( tag )+ ) { - // SpecFlowLangParser.g:58:12: ^( TAGS ( tag )+ ) + // SpecFlowLangParser.g:56:12: ^( TAGS ( tag )+ ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(TAGS, "TAGS"), root_1); @@ -741,7 +741,7 @@ override public object Tree }; // $ANTLR start "tag" - // SpecFlowLangParser.g:61:1: tag : AT word ( newlineWithSpaces | WS ) -> ^( TAG word ) ; + // SpecFlowLangParser.g:59:1: tag : AT word ( newlineWithSpaces | WS ) -> ^( TAG word ) ; public SpecFlowLangParser.tag_return tag() // throws RecognitionException [1] { SpecFlowLangParser.tag_return retval = new SpecFlowLangParser.tag_return(); @@ -764,18 +764,18 @@ public SpecFlowLangParser.tag_return tag() // throws RecognitionException [1] RewriteRuleSubtreeStream stream_newlineWithSpaces = new RewriteRuleSubtreeStream(adaptor,"rule newlineWithSpaces"); try { - // SpecFlowLangParser.g:62:5: ( AT word ( newlineWithSpaces | WS ) -> ^( TAG word ) ) - // SpecFlowLangParser.g:62:9: AT word ( newlineWithSpaces | WS ) + // SpecFlowLangParser.g:60:5: ( AT word ( newlineWithSpaces | WS ) -> ^( TAG word ) ) + // SpecFlowLangParser.g:60:9: AT word ( newlineWithSpaces | WS ) { - AT15=(IToken)Match(input,AT,FOLLOW_AT_in_tag441); if (state.failed) return retval; + AT15=(IToken)Match(input,AT,FOLLOW_AT_in_tag439); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_AT.Add(AT15); - PushFollow(FOLLOW_word_in_tag443); + PushFollow(FOLLOW_word_in_tag441); word16 = word(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_word.Add(word16.Tree); - // SpecFlowLangParser.g:62:17: ( newlineWithSpaces | WS ) + // SpecFlowLangParser.g:60:17: ( newlineWithSpaces | WS ) int alt11 = 2; int LA11_0 = input.LA(1); @@ -815,9 +815,9 @@ public SpecFlowLangParser.tag_return tag() // throws RecognitionException [1] switch (alt11) { case 1 : - // SpecFlowLangParser.g:62:18: newlineWithSpaces + // SpecFlowLangParser.g:60:18: newlineWithSpaces { - PushFollow(FOLLOW_newlineWithSpaces_in_tag446); + PushFollow(FOLLOW_newlineWithSpaces_in_tag444); newlineWithSpaces17 = newlineWithSpaces(); state.followingStackPointer--; if (state.failed) return retval; @@ -826,9 +826,9 @@ public SpecFlowLangParser.tag_return tag() // throws RecognitionException [1] } break; case 2 : - // SpecFlowLangParser.g:62:36: WS + // SpecFlowLangParser.g:60:36: WS { - WS18=(IToken)Match(input,WS,FOLLOW_WS_in_tag448); if (state.failed) return retval; + WS18=(IToken)Match(input,WS,FOLLOW_WS_in_tag446); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS18); @@ -851,9 +851,9 @@ public SpecFlowLangParser.tag_return tag() // throws RecognitionException [1] RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 63:9: -> ^( TAG word ) + // 61:9: -> ^( TAG word ) { - // SpecFlowLangParser.g:63:12: ^( TAG word ) + // SpecFlowLangParser.g:61:12: ^( TAG word ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(TAG, "TAG"), root_1); @@ -900,7 +900,7 @@ override public object Tree }; // $ANTLR start "word" - // SpecFlowLangParser.g:66:1: word : ( WORDCHAR )+ -> ^( WORD ( WORDCHAR )+ ) ; + // SpecFlowLangParser.g:64:1: word : ( WORDCHAR )+ -> ^( WORD ( WORDCHAR )+ ) ; public SpecFlowLangParser.word_return word() // throws RecognitionException [1] { SpecFlowLangParser.word_return retval = new SpecFlowLangParser.word_return(); @@ -915,10 +915,10 @@ public SpecFlowLangParser.word_return word() // throws RecognitionException [1] try { - // SpecFlowLangParser.g:67:5: ( ( WORDCHAR )+ -> ^( WORD ( WORDCHAR )+ ) ) - // SpecFlowLangParser.g:67:9: ( WORDCHAR )+ + // SpecFlowLangParser.g:65:5: ( ( WORDCHAR )+ -> ^( WORD ( WORDCHAR )+ ) ) + // SpecFlowLangParser.g:65:9: ( WORDCHAR )+ { - // SpecFlowLangParser.g:67:9: ( WORDCHAR )+ + // SpecFlowLangParser.g:65:9: ( WORDCHAR )+ int cnt12 = 0; do { @@ -936,7 +936,7 @@ public SpecFlowLangParser.word_return word() // throws RecognitionException [1] case 1 : // SpecFlowLangParser.g:0:0: WORDCHAR { - WORDCHAR19=(IToken)Match(input,WORDCHAR,FOLLOW_WORDCHAR_in_word484); if (state.failed) return retval; + WORDCHAR19=(IToken)Match(input,WORDCHAR,FOLLOW_WORDCHAR_in_word482); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WORDCHAR.Add(WORDCHAR19); @@ -970,9 +970,9 @@ public SpecFlowLangParser.word_return word() // throws RecognitionException [1] RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 68:9: -> ^( WORD ( WORDCHAR )+ ) + // 66:9: -> ^( WORD ( WORDCHAR )+ ) { - // SpecFlowLangParser.g:68:12: ^( WORD ( WORDCHAR )+ ) + // SpecFlowLangParser.g:66:12: ^( WORD ( WORDCHAR )+ ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(WORD, "WORD"), root_1); @@ -1027,7 +1027,7 @@ override public object Tree }; // $ANTLR start "descriptionLine" - // SpecFlowLangParser.g:71:1: descriptionLine : ( WS )? descriptionLineText newlineWithSpaces -> ^( DESCRIPTIONLINE descriptionLineText ) ; + // SpecFlowLangParser.g:69:1: descriptionLine : ( WS )? descriptionLineText newlineWithSpaces -> ^( DESCRIPTIONLINE descriptionLineText ) ; public SpecFlowLangParser.descriptionLine_return descriptionLine() // throws RecognitionException [1] { SpecFlowLangParser.descriptionLine_return retval = new SpecFlowLangParser.descriptionLine_return(); @@ -1047,10 +1047,10 @@ public SpecFlowLangParser.descriptionLine_return descriptionLine() // throws Rec RewriteRuleSubtreeStream stream_newlineWithSpaces = new RewriteRuleSubtreeStream(adaptor,"rule newlineWithSpaces"); try { - // SpecFlowLangParser.g:72:5: ( ( WS )? descriptionLineText newlineWithSpaces -> ^( DESCRIPTIONLINE descriptionLineText ) ) - // SpecFlowLangParser.g:72:9: ( WS )? descriptionLineText newlineWithSpaces + // SpecFlowLangParser.g:70:5: ( ( WS )? descriptionLineText newlineWithSpaces -> ^( DESCRIPTIONLINE descriptionLineText ) ) + // SpecFlowLangParser.g:70:9: ( WS )? descriptionLineText newlineWithSpaces { - // SpecFlowLangParser.g:72:9: ( WS )? + // SpecFlowLangParser.g:70:9: ( WS )? int alt13 = 2; int LA13_0 = input.LA(1); @@ -1063,7 +1063,7 @@ public SpecFlowLangParser.descriptionLine_return descriptionLine() // throws Rec case 1 : // SpecFlowLangParser.g:0:0: WS { - WS20=(IToken)Match(input,WS,FOLLOW_WS_in_descriptionLine521); if (state.failed) return retval; + WS20=(IToken)Match(input,WS,FOLLOW_WS_in_descriptionLine519); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS20); @@ -1072,12 +1072,12 @@ public SpecFlowLangParser.descriptionLine_return descriptionLine() // throws Rec } - PushFollow(FOLLOW_descriptionLineText_in_descriptionLine524); + PushFollow(FOLLOW_descriptionLineText_in_descriptionLine522); descriptionLineText21 = descriptionLineText(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_descriptionLineText.Add(descriptionLineText21.Tree); - PushFollow(FOLLOW_newlineWithSpaces_in_descriptionLine526); + PushFollow(FOLLOW_newlineWithSpaces_in_descriptionLine524); newlineWithSpaces22 = newlineWithSpaces(); state.followingStackPointer--; if (state.failed) return retval; @@ -1096,9 +1096,9 @@ public SpecFlowLangParser.descriptionLine_return descriptionLine() // throws Rec RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 73:9: -> ^( DESCRIPTIONLINE descriptionLineText ) + // 71:9: -> ^( DESCRIPTIONLINE descriptionLineText ) { - // SpecFlowLangParser.g:73:12: ^( DESCRIPTIONLINE descriptionLineText ) + // SpecFlowLangParser.g:71:12: ^( DESCRIPTIONLINE descriptionLineText ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(DESCRIPTIONLINE, "DESCRIPTIONLINE"), root_1); @@ -1145,7 +1145,7 @@ override public object Tree }; // $ANTLR start "background" - // SpecFlowLangParser.g:76:1: background : ( WS )? T_BACKGROUND ( WS title )? newlineWithSpaces givens -> ^( BACKGROUND ( title )? givens ) ; + // SpecFlowLangParser.g:74:1: background : ( WS )? T_BACKGROUND ( WS title )? newlineWithSpaces givens -> ^( BACKGROUND ( title )? givens ) ; public SpecFlowLangParser.background_return background() // throws RecognitionException [1] { SpecFlowLangParser.background_return retval = new SpecFlowLangParser.background_return(); @@ -1173,10 +1173,10 @@ public SpecFlowLangParser.background_return background() // throws RecognitionEx RewriteRuleSubtreeStream stream_newlineWithSpaces = new RewriteRuleSubtreeStream(adaptor,"rule newlineWithSpaces"); try { - // SpecFlowLangParser.g:77:5: ( ( WS )? T_BACKGROUND ( WS title )? newlineWithSpaces givens -> ^( BACKGROUND ( title )? givens ) ) - // SpecFlowLangParser.g:77:9: ( WS )? T_BACKGROUND ( WS title )? newlineWithSpaces givens + // SpecFlowLangParser.g:75:5: ( ( WS )? T_BACKGROUND ( WS title )? newlineWithSpaces givens -> ^( BACKGROUND ( title )? givens ) ) + // SpecFlowLangParser.g:75:9: ( WS )? T_BACKGROUND ( WS title )? newlineWithSpaces givens { - // SpecFlowLangParser.g:77:9: ( WS )? + // SpecFlowLangParser.g:75:9: ( WS )? int alt14 = 2; int LA14_0 = input.LA(1); @@ -1189,7 +1189,7 @@ public SpecFlowLangParser.background_return background() // throws RecognitionEx case 1 : // SpecFlowLangParser.g:0:0: WS { - WS23=(IToken)Match(input,WS,FOLLOW_WS_in_background561); if (state.failed) return retval; + WS23=(IToken)Match(input,WS,FOLLOW_WS_in_background559); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS23); @@ -1198,10 +1198,10 @@ public SpecFlowLangParser.background_return background() // throws RecognitionEx } - T_BACKGROUND24=(IToken)Match(input,T_BACKGROUND,FOLLOW_T_BACKGROUND_in_background564); if (state.failed) return retval; + T_BACKGROUND24=(IToken)Match(input,T_BACKGROUND,FOLLOW_T_BACKGROUND_in_background562); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_T_BACKGROUND.Add(T_BACKGROUND24); - // SpecFlowLangParser.g:78:9: ( WS title )? + // SpecFlowLangParser.g:76:9: ( WS title )? int alt15 = 2; int LA15_0 = input.LA(1); @@ -1217,12 +1217,12 @@ public SpecFlowLangParser.background_return background() // throws RecognitionEx switch (alt15) { case 1 : - // SpecFlowLangParser.g:78:10: WS title + // SpecFlowLangParser.g:76:10: WS title { - WS25=(IToken)Match(input,WS,FOLLOW_WS_in_background576); if (state.failed) return retval; + WS25=(IToken)Match(input,WS,FOLLOW_WS_in_background574); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS25); - PushFollow(FOLLOW_title_in_background578); + PushFollow(FOLLOW_title_in_background576); title26 = title(); state.followingStackPointer--; if (state.failed) return retval; @@ -1233,12 +1233,12 @@ public SpecFlowLangParser.background_return background() // throws RecognitionEx } - PushFollow(FOLLOW_newlineWithSpaces_in_background591); + PushFollow(FOLLOW_newlineWithSpaces_in_background589); newlineWithSpaces27 = newlineWithSpaces(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_newlineWithSpaces.Add(newlineWithSpaces27.Tree); - PushFollow(FOLLOW_givens_in_background593); + PushFollow(FOLLOW_givens_in_background591); givens28 = givens(); state.followingStackPointer--; if (state.failed) return retval; @@ -1246,7 +1246,7 @@ public SpecFlowLangParser.background_return background() // throws RecognitionEx // AST REWRITE - // elements: title, givens + // elements: givens, title // token labels: // rule labels: retval // token list labels: @@ -1257,14 +1257,14 @@ public SpecFlowLangParser.background_return background() // throws RecognitionEx RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 80:9: -> ^( BACKGROUND ( title )? givens ) + // 78:9: -> ^( BACKGROUND ( title )? givens ) { - // SpecFlowLangParser.g:80:12: ^( BACKGROUND ( title )? givens ) + // SpecFlowLangParser.g:78:12: ^( BACKGROUND ( title )? givens ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(BACKGROUND, "BACKGROUND"), root_1); - // SpecFlowLangParser.g:80:25: ( title )? + // SpecFlowLangParser.g:78:25: ( title )? if ( stream_title.HasNext() ) { adaptor.AddChild(root_1, stream_title.NextTree()); @@ -1313,7 +1313,7 @@ override public object Tree }; // $ANTLR start "scenarioKind" - // SpecFlowLangParser.g:83:1: scenarioKind : ( scenarioOutline | scenario ); + // SpecFlowLangParser.g:81:1: scenarioKind : ( scenarioOutline | scenario ); public SpecFlowLangParser.scenarioKind_return scenarioKind() // throws RecognitionException [1] { SpecFlowLangParser.scenarioKind_return retval = new SpecFlowLangParser.scenarioKind_return(); @@ -1329,17 +1329,17 @@ public SpecFlowLangParser.scenarioKind_return scenarioKind() // throws Recogniti try { - // SpecFlowLangParser.g:84:5: ( scenarioOutline | scenario ) + // SpecFlowLangParser.g:82:5: ( scenarioOutline | scenario ) int alt16 = 2; alt16 = dfa16.Predict(input); switch (alt16) { case 1 : - // SpecFlowLangParser.g:84:9: scenarioOutline + // SpecFlowLangParser.g:82:9: scenarioOutline { root_0 = (object)adaptor.GetNilNode(); - PushFollow(FOLLOW_scenarioOutline_in_scenarioKind631); + PushFollow(FOLLOW_scenarioOutline_in_scenarioKind629); scenarioOutline29 = scenarioOutline(); state.followingStackPointer--; if (state.failed) return retval; @@ -1348,11 +1348,11 @@ public SpecFlowLangParser.scenarioKind_return scenarioKind() // throws Recogniti } break; case 2 : - // SpecFlowLangParser.g:85:9: scenario + // SpecFlowLangParser.g:83:9: scenario { root_0 = (object)adaptor.GetNilNode(); - PushFollow(FOLLOW_scenario_in_scenarioKind642); + PushFollow(FOLLOW_scenario_in_scenarioKind640); scenario30 = scenario(); state.followingStackPointer--; if (state.failed) return retval; @@ -1394,7 +1394,7 @@ override public object Tree }; // $ANTLR start "scenario" - // SpecFlowLangParser.g:88:1: scenario : ( tags )? ( WS )? T_SCENARIO ( WS )? title newlineWithSpaces steps -> ^( SCENARIO ( tags )? title steps ) ; + // SpecFlowLangParser.g:86:1: scenario : ( tags )? ( WS )? T_SCENARIO ( WS )? title newlineWithSpaces steps -> ^( SCENARIO ( tags )? title steps ) ; public SpecFlowLangParser.scenario_return scenario() // throws RecognitionException [1] { SpecFlowLangParser.scenario_return retval = new SpecFlowLangParser.scenario_return(); @@ -1425,10 +1425,10 @@ public SpecFlowLangParser.scenario_return scenario() // throws RecognitionExcept RewriteRuleSubtreeStream stream_newlineWithSpaces = new RewriteRuleSubtreeStream(adaptor,"rule newlineWithSpaces"); try { - // SpecFlowLangParser.g:89:5: ( ( tags )? ( WS )? T_SCENARIO ( WS )? title newlineWithSpaces steps -> ^( SCENARIO ( tags )? title steps ) ) - // SpecFlowLangParser.g:89:9: ( tags )? ( WS )? T_SCENARIO ( WS )? title newlineWithSpaces steps + // SpecFlowLangParser.g:87:5: ( ( tags )? ( WS )? T_SCENARIO ( WS )? title newlineWithSpaces steps -> ^( SCENARIO ( tags )? title steps ) ) + // SpecFlowLangParser.g:87:9: ( tags )? ( WS )? T_SCENARIO ( WS )? title newlineWithSpaces steps { - // SpecFlowLangParser.g:89:9: ( tags )? + // SpecFlowLangParser.g:87:9: ( tags )? int alt17 = 2; int LA17_0 = input.LA(1); @@ -1450,7 +1450,7 @@ public SpecFlowLangParser.scenario_return scenario() // throws RecognitionExcept case 1 : // SpecFlowLangParser.g:0:0: tags { - PushFollow(FOLLOW_tags_in_scenario661); + PushFollow(FOLLOW_tags_in_scenario659); tags31 = tags(); state.followingStackPointer--; if (state.failed) return retval; @@ -1461,7 +1461,7 @@ public SpecFlowLangParser.scenario_return scenario() // throws RecognitionExcept } - // SpecFlowLangParser.g:89:15: ( WS )? + // SpecFlowLangParser.g:87:15: ( WS )? int alt18 = 2; int LA18_0 = input.LA(1); @@ -1474,7 +1474,7 @@ public SpecFlowLangParser.scenario_return scenario() // throws RecognitionExcept case 1 : // SpecFlowLangParser.g:0:0: WS { - WS32=(IToken)Match(input,WS,FOLLOW_WS_in_scenario664); if (state.failed) return retval; + WS32=(IToken)Match(input,WS,FOLLOW_WS_in_scenario662); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS32); @@ -1483,10 +1483,10 @@ public SpecFlowLangParser.scenario_return scenario() // throws RecognitionExcept } - T_SCENARIO33=(IToken)Match(input,T_SCENARIO,FOLLOW_T_SCENARIO_in_scenario667); if (state.failed) return retval; + T_SCENARIO33=(IToken)Match(input,T_SCENARIO,FOLLOW_T_SCENARIO_in_scenario665); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_T_SCENARIO.Add(T_SCENARIO33); - // SpecFlowLangParser.g:89:30: ( WS )? + // SpecFlowLangParser.g:87:30: ( WS )? int alt19 = 2; int LA19_0 = input.LA(1); @@ -1499,7 +1499,7 @@ public SpecFlowLangParser.scenario_return scenario() // throws RecognitionExcept case 1 : // SpecFlowLangParser.g:0:0: WS { - WS34=(IToken)Match(input,WS,FOLLOW_WS_in_scenario669); if (state.failed) return retval; + WS34=(IToken)Match(input,WS,FOLLOW_WS_in_scenario667); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS34); @@ -1508,17 +1508,17 @@ public SpecFlowLangParser.scenario_return scenario() // throws RecognitionExcept } - PushFollow(FOLLOW_title_in_scenario681); + PushFollow(FOLLOW_title_in_scenario679); title35 = title(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_title.Add(title35.Tree); - PushFollow(FOLLOW_newlineWithSpaces_in_scenario683); + PushFollow(FOLLOW_newlineWithSpaces_in_scenario681); newlineWithSpaces36 = newlineWithSpaces(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_newlineWithSpaces.Add(newlineWithSpaces36.Tree); - PushFollow(FOLLOW_steps_in_scenario694); + PushFollow(FOLLOW_steps_in_scenario692); steps37 = steps(); state.followingStackPointer--; if (state.failed) return retval; @@ -1526,7 +1526,7 @@ public SpecFlowLangParser.scenario_return scenario() // throws RecognitionExcept // AST REWRITE - // elements: steps, tags, title + // elements: title, tags, steps // token labels: // rule labels: retval // token list labels: @@ -1537,14 +1537,14 @@ public SpecFlowLangParser.scenario_return scenario() // throws RecognitionExcept RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 92:9: -> ^( SCENARIO ( tags )? title steps ) + // 90:9: -> ^( SCENARIO ( tags )? title steps ) { - // SpecFlowLangParser.g:92:12: ^( SCENARIO ( tags )? title steps ) + // SpecFlowLangParser.g:90:12: ^( SCENARIO ( tags )? title steps ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(SCENARIO, "SCENARIO"), root_1); - // SpecFlowLangParser.g:92:23: ( tags )? + // SpecFlowLangParser.g:90:23: ( tags )? if ( stream_tags.HasNext() ) { adaptor.AddChild(root_1, stream_tags.NextTree()); @@ -1594,7 +1594,7 @@ override public object Tree }; // $ANTLR start "scenarioOutline" - // SpecFlowLangParser.g:95:1: scenarioOutline : ( tags )? ( WS )? T_SCENARIO_OUTLINE ( WS )? title newlineWithSpaces steps examples -> ^( SCENARIOOUTLINE ( tags )? title steps examples ) ; + // SpecFlowLangParser.g:93:1: scenarioOutline : ( tags )? ( WS )? T_SCENARIO_OUTLINE ( WS )? title newlineWithSpaces steps examples -> ^( SCENARIOOUTLINE ( tags )? title steps examples ) ; public SpecFlowLangParser.scenarioOutline_return scenarioOutline() // throws RecognitionException [1] { SpecFlowLangParser.scenarioOutline_return retval = new SpecFlowLangParser.scenarioOutline_return(); @@ -1628,10 +1628,10 @@ public SpecFlowLangParser.scenarioOutline_return scenarioOutline() // throws Rec RewriteRuleSubtreeStream stream_newlineWithSpaces = new RewriteRuleSubtreeStream(adaptor,"rule newlineWithSpaces"); try { - // SpecFlowLangParser.g:96:5: ( ( tags )? ( WS )? T_SCENARIO_OUTLINE ( WS )? title newlineWithSpaces steps examples -> ^( SCENARIOOUTLINE ( tags )? title steps examples ) ) - // SpecFlowLangParser.g:97:9: ( tags )? ( WS )? T_SCENARIO_OUTLINE ( WS )? title newlineWithSpaces steps examples + // SpecFlowLangParser.g:94:5: ( ( tags )? ( WS )? T_SCENARIO_OUTLINE ( WS )? title newlineWithSpaces steps examples -> ^( SCENARIOOUTLINE ( tags )? title steps examples ) ) + // SpecFlowLangParser.g:95:9: ( tags )? ( WS )? T_SCENARIO_OUTLINE ( WS )? title newlineWithSpaces steps examples { - // SpecFlowLangParser.g:97:9: ( tags )? + // SpecFlowLangParser.g:95:9: ( tags )? int alt20 = 2; int LA20_0 = input.LA(1); @@ -1653,7 +1653,7 @@ public SpecFlowLangParser.scenarioOutline_return scenarioOutline() // throws Rec case 1 : // SpecFlowLangParser.g:0:0: tags { - PushFollow(FOLLOW_tags_in_scenarioOutline740); + PushFollow(FOLLOW_tags_in_scenarioOutline738); tags38 = tags(); state.followingStackPointer--; if (state.failed) return retval; @@ -1664,7 +1664,7 @@ public SpecFlowLangParser.scenarioOutline_return scenarioOutline() // throws Rec } - // SpecFlowLangParser.g:97:15: ( WS )? + // SpecFlowLangParser.g:95:15: ( WS )? int alt21 = 2; int LA21_0 = input.LA(1); @@ -1677,7 +1677,7 @@ public SpecFlowLangParser.scenarioOutline_return scenarioOutline() // throws Rec case 1 : // SpecFlowLangParser.g:0:0: WS { - WS39=(IToken)Match(input,WS,FOLLOW_WS_in_scenarioOutline743); if (state.failed) return retval; + WS39=(IToken)Match(input,WS,FOLLOW_WS_in_scenarioOutline741); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS39); @@ -1686,10 +1686,10 @@ public SpecFlowLangParser.scenarioOutline_return scenarioOutline() // throws Rec } - T_SCENARIO_OUTLINE40=(IToken)Match(input,T_SCENARIO_OUTLINE,FOLLOW_T_SCENARIO_OUTLINE_in_scenarioOutline746); if (state.failed) return retval; + T_SCENARIO_OUTLINE40=(IToken)Match(input,T_SCENARIO_OUTLINE,FOLLOW_T_SCENARIO_OUTLINE_in_scenarioOutline744); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_T_SCENARIO_OUTLINE.Add(T_SCENARIO_OUTLINE40); - // SpecFlowLangParser.g:97:38: ( WS )? + // SpecFlowLangParser.g:95:38: ( WS )? int alt22 = 2; int LA22_0 = input.LA(1); @@ -1702,7 +1702,7 @@ public SpecFlowLangParser.scenarioOutline_return scenarioOutline() // throws Rec case 1 : // SpecFlowLangParser.g:0:0: WS { - WS41=(IToken)Match(input,WS,FOLLOW_WS_in_scenarioOutline748); if (state.failed) return retval; + WS41=(IToken)Match(input,WS,FOLLOW_WS_in_scenarioOutline746); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS41); @@ -1711,22 +1711,22 @@ public SpecFlowLangParser.scenarioOutline_return scenarioOutline() // throws Rec } - PushFollow(FOLLOW_title_in_scenarioOutline759); + PushFollow(FOLLOW_title_in_scenarioOutline757); title42 = title(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_title.Add(title42.Tree); - PushFollow(FOLLOW_newlineWithSpaces_in_scenarioOutline761); + PushFollow(FOLLOW_newlineWithSpaces_in_scenarioOutline759); newlineWithSpaces43 = newlineWithSpaces(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_newlineWithSpaces.Add(newlineWithSpaces43.Tree); - PushFollow(FOLLOW_steps_in_scenarioOutline771); + PushFollow(FOLLOW_steps_in_scenarioOutline769); steps44 = steps(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_steps.Add(steps44.Tree); - PushFollow(FOLLOW_examples_in_scenarioOutline781); + PushFollow(FOLLOW_examples_in_scenarioOutline779); examples45 = examples(); state.followingStackPointer--; if (state.failed) return retval; @@ -1734,7 +1734,7 @@ public SpecFlowLangParser.scenarioOutline_return scenarioOutline() // throws Rec // AST REWRITE - // elements: tags, steps, examples, title + // elements: tags, title, examples, steps // token labels: // rule labels: retval // token list labels: @@ -1745,14 +1745,14 @@ public SpecFlowLangParser.scenarioOutline_return scenarioOutline() // throws Rec RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 101:9: -> ^( SCENARIOOUTLINE ( tags )? title steps examples ) + // 99:9: -> ^( SCENARIOOUTLINE ( tags )? title steps examples ) { - // SpecFlowLangParser.g:101:12: ^( SCENARIOOUTLINE ( tags )? title steps examples ) + // SpecFlowLangParser.g:99:12: ^( SCENARIOOUTLINE ( tags )? title steps examples ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(SCENARIOOUTLINE, "SCENARIOOUTLINE"), root_1); - // SpecFlowLangParser.g:101:30: ( tags )? + // SpecFlowLangParser.g:99:30: ( tags )? if ( stream_tags.HasNext() ) { adaptor.AddChild(root_1, stream_tags.NextTree()); @@ -1803,7 +1803,7 @@ override public object Tree }; // $ANTLR start "examples" - // SpecFlowLangParser.g:104:1: examples : ( exampleSet )+ -> ^( EXAMPLES ( exampleSet )+ ) ; + // SpecFlowLangParser.g:102:1: examples : ( exampleSet )+ -> ^( EXAMPLES ( exampleSet )+ ) ; public SpecFlowLangParser.examples_return examples() // throws RecognitionException [1] { SpecFlowLangParser.examples_return retval = new SpecFlowLangParser.examples_return(); @@ -1817,10 +1817,10 @@ public SpecFlowLangParser.examples_return examples() // throws RecognitionExcept RewriteRuleSubtreeStream stream_exampleSet = new RewriteRuleSubtreeStream(adaptor,"rule exampleSet"); try { - // SpecFlowLangParser.g:105:5: ( ( exampleSet )+ -> ^( EXAMPLES ( exampleSet )+ ) ) - // SpecFlowLangParser.g:105:9: ( exampleSet )+ + // SpecFlowLangParser.g:103:5: ( ( exampleSet )+ -> ^( EXAMPLES ( exampleSet )+ ) ) + // SpecFlowLangParser.g:103:9: ( exampleSet )+ { - // SpecFlowLangParser.g:105:9: ( exampleSet )+ + // SpecFlowLangParser.g:103:9: ( exampleSet )+ int cnt23 = 0; do { @@ -1849,7 +1849,7 @@ public SpecFlowLangParser.examples_return examples() // throws RecognitionExcept case 1 : // SpecFlowLangParser.g:0:0: exampleSet { - PushFollow(FOLLOW_exampleSet_in_examples823); + PushFollow(FOLLOW_exampleSet_in_examples821); exampleSet46 = exampleSet(); state.followingStackPointer--; if (state.failed) return retval; @@ -1885,9 +1885,9 @@ public SpecFlowLangParser.examples_return examples() // throws RecognitionExcept RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 106:9: -> ^( EXAMPLES ( exampleSet )+ ) + // 104:9: -> ^( EXAMPLES ( exampleSet )+ ) { - // SpecFlowLangParser.g:106:12: ^( EXAMPLES ( exampleSet )+ ) + // SpecFlowLangParser.g:104:12: ^( EXAMPLES ( exampleSet )+ ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(EXAMPLES, "EXAMPLES"), root_1); @@ -1942,7 +1942,7 @@ override public object Tree }; // $ANTLR start "exampleSet" - // SpecFlowLangParser.g:109:1: exampleSet : ( WS )? T_EXAMPLES ( WS )? ( text )? newlineWithSpaces table -> ^( EXAMPLESET ( text )? table ) ; + // SpecFlowLangParser.g:107:1: exampleSet : ( WS )? T_EXAMPLES ( WS )? ( text )? newlineWithSpaces table -> ^( EXAMPLESET ( text )? table ) ; public SpecFlowLangParser.exampleSet_return exampleSet() // throws RecognitionException [1] { SpecFlowLangParser.exampleSet_return retval = new SpecFlowLangParser.exampleSet_return(); @@ -1970,10 +1970,10 @@ public SpecFlowLangParser.exampleSet_return exampleSet() // throws RecognitionEx RewriteRuleSubtreeStream stream_newlineWithSpaces = new RewriteRuleSubtreeStream(adaptor,"rule newlineWithSpaces"); try { - // SpecFlowLangParser.g:110:5: ( ( WS )? T_EXAMPLES ( WS )? ( text )? newlineWithSpaces table -> ^( EXAMPLESET ( text )? table ) ) - // SpecFlowLangParser.g:110:9: ( WS )? T_EXAMPLES ( WS )? ( text )? newlineWithSpaces table + // SpecFlowLangParser.g:108:5: ( ( WS )? T_EXAMPLES ( WS )? ( text )? newlineWithSpaces table -> ^( EXAMPLESET ( text )? table ) ) + // SpecFlowLangParser.g:108:9: ( WS )? T_EXAMPLES ( WS )? ( text )? newlineWithSpaces table { - // SpecFlowLangParser.g:110:9: ( WS )? + // SpecFlowLangParser.g:108:9: ( WS )? int alt24 = 2; int LA24_0 = input.LA(1); @@ -1986,7 +1986,7 @@ public SpecFlowLangParser.exampleSet_return exampleSet() // throws RecognitionEx case 1 : // SpecFlowLangParser.g:0:0: WS { - WS47=(IToken)Match(input,WS,FOLLOW_WS_in_exampleSet860); if (state.failed) return retval; + WS47=(IToken)Match(input,WS,FOLLOW_WS_in_exampleSet858); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS47); @@ -1995,10 +1995,10 @@ public SpecFlowLangParser.exampleSet_return exampleSet() // throws RecognitionEx } - T_EXAMPLES48=(IToken)Match(input,T_EXAMPLES,FOLLOW_T_EXAMPLES_in_exampleSet863); if (state.failed) return retval; + T_EXAMPLES48=(IToken)Match(input,T_EXAMPLES,FOLLOW_T_EXAMPLES_in_exampleSet861); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_T_EXAMPLES.Add(T_EXAMPLES48); - // SpecFlowLangParser.g:110:24: ( WS )? + // SpecFlowLangParser.g:108:24: ( WS )? int alt25 = 2; int LA25_0 = input.LA(1); @@ -2016,7 +2016,7 @@ public SpecFlowLangParser.exampleSet_return exampleSet() // throws RecognitionEx case 1 : // SpecFlowLangParser.g:0:0: WS { - WS49=(IToken)Match(input,WS,FOLLOW_WS_in_exampleSet865); if (state.failed) return retval; + WS49=(IToken)Match(input,WS,FOLLOW_WS_in_exampleSet863); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS49); @@ -2025,7 +2025,7 @@ public SpecFlowLangParser.exampleSet_return exampleSet() // throws RecognitionEx } - // SpecFlowLangParser.g:111:9: ( text )? + // SpecFlowLangParser.g:109:9: ( text )? int alt26 = 2; int LA26_0 = input.LA(1); @@ -2038,7 +2038,7 @@ public SpecFlowLangParser.exampleSet_return exampleSet() // throws RecognitionEx case 1 : // SpecFlowLangParser.g:0:0: text { - PushFollow(FOLLOW_text_in_exampleSet876); + PushFollow(FOLLOW_text_in_exampleSet874); text50 = text(); state.followingStackPointer--; if (state.failed) return retval; @@ -2049,12 +2049,12 @@ public SpecFlowLangParser.exampleSet_return exampleSet() // throws RecognitionEx } - PushFollow(FOLLOW_newlineWithSpaces_in_exampleSet879); + PushFollow(FOLLOW_newlineWithSpaces_in_exampleSet877); newlineWithSpaces51 = newlineWithSpaces(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_newlineWithSpaces.Add(newlineWithSpaces51.Tree); - PushFollow(FOLLOW_table_in_exampleSet881); + PushFollow(FOLLOW_table_in_exampleSet879); table52 = table(); state.followingStackPointer--; if (state.failed) return retval; @@ -2062,7 +2062,7 @@ public SpecFlowLangParser.exampleSet_return exampleSet() // throws RecognitionEx // AST REWRITE - // elements: table, text + // elements: text, table // token labels: // rule labels: retval // token list labels: @@ -2073,14 +2073,14 @@ public SpecFlowLangParser.exampleSet_return exampleSet() // throws RecognitionEx RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 112:9: -> ^( EXAMPLESET ( text )? table ) + // 110:9: -> ^( EXAMPLESET ( text )? table ) { - // SpecFlowLangParser.g:112:12: ^( EXAMPLESET ( text )? table ) + // SpecFlowLangParser.g:110:12: ^( EXAMPLESET ( text )? table ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(EXAMPLESET, "EXAMPLESET"), root_1); - // SpecFlowLangParser.g:112:25: ( text )? + // SpecFlowLangParser.g:110:25: ( text )? if ( stream_text.HasNext() ) { adaptor.AddChild(root_1, stream_text.NextTree()); @@ -2129,7 +2129,7 @@ override public object Tree }; // $ANTLR start "steps" - // SpecFlowLangParser.g:115:1: steps : firstStep ( nextStep )* -> ^( STEPS firstStep ( nextStep )* ) ; + // SpecFlowLangParser.g:113:1: steps : firstStep ( nextStep )* -> ^( STEPS firstStep ( nextStep )* ) ; public SpecFlowLangParser.steps_return steps() // throws RecognitionException [1] { SpecFlowLangParser.steps_return retval = new SpecFlowLangParser.steps_return(); @@ -2146,15 +2146,15 @@ public SpecFlowLangParser.steps_return steps() // throws RecognitionException [1 RewriteRuleSubtreeStream stream_nextStep = new RewriteRuleSubtreeStream(adaptor,"rule nextStep"); try { - // SpecFlowLangParser.g:116:5: ( firstStep ( nextStep )* -> ^( STEPS firstStep ( nextStep )* ) ) - // SpecFlowLangParser.g:116:9: firstStep ( nextStep )* + // SpecFlowLangParser.g:114:5: ( firstStep ( nextStep )* -> ^( STEPS firstStep ( nextStep )* ) ) + // SpecFlowLangParser.g:114:9: firstStep ( nextStep )* { - PushFollow(FOLLOW_firstStep_in_steps919); + PushFollow(FOLLOW_firstStep_in_steps917); firstStep53 = firstStep(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_firstStep.Add(firstStep53.Tree); - // SpecFlowLangParser.g:116:19: ( nextStep )* + // SpecFlowLangParser.g:114:19: ( nextStep )* do { int alt27 = 2; @@ -2182,7 +2182,7 @@ public SpecFlowLangParser.steps_return steps() // throws RecognitionException [1 case 1 : // SpecFlowLangParser.g:0:0: nextStep { - PushFollow(FOLLOW_nextStep_in_steps921); + PushFollow(FOLLOW_nextStep_in_steps919); nextStep54 = nextStep(); state.followingStackPointer--; if (state.failed) return retval; @@ -2213,15 +2213,15 @@ public SpecFlowLangParser.steps_return steps() // throws RecognitionException [1 RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 117:9: -> ^( STEPS firstStep ( nextStep )* ) + // 115:9: -> ^( STEPS firstStep ( nextStep )* ) { - // SpecFlowLangParser.g:117:12: ^( STEPS firstStep ( nextStep )* ) + // SpecFlowLangParser.g:115:12: ^( STEPS firstStep ( nextStep )* ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(STEPS, "STEPS"), root_1); adaptor.AddChild(root_1, stream_firstStep.NextTree()); - // SpecFlowLangParser.g:117:30: ( nextStep )* + // SpecFlowLangParser.g:115:30: ( nextStep )* while ( stream_nextStep.HasNext() ) { adaptor.AddChild(root_1, stream_nextStep.NextTree()); @@ -2269,7 +2269,7 @@ override public object Tree }; // $ANTLR start "firstStep" - // SpecFlowLangParser.g:119:1: firstStep : ( firstGiven -> firstGiven | firstWhen -> firstWhen | firstThen -> firstThen ); + // SpecFlowLangParser.g:117:1: firstStep : ( firstGiven -> firstGiven | firstWhen -> firstWhen | firstThen -> firstThen ); public SpecFlowLangParser.firstStep_return firstStep() // throws RecognitionException [1] { SpecFlowLangParser.firstStep_return retval = new SpecFlowLangParser.firstStep_return(); @@ -2289,7 +2289,7 @@ public SpecFlowLangParser.firstStep_return firstStep() // throws RecognitionExce RewriteRuleSubtreeStream stream_firstGiven = new RewriteRuleSubtreeStream(adaptor,"rule firstGiven"); try { - // SpecFlowLangParser.g:120:2: ( firstGiven -> firstGiven | firstWhen -> firstWhen | firstThen -> firstThen ) + // SpecFlowLangParser.g:118:2: ( firstGiven -> firstGiven | firstWhen -> firstWhen | firstThen -> firstThen ) int alt28 = 3; switch ( input.LA(1) ) { @@ -2348,9 +2348,9 @@ public SpecFlowLangParser.firstStep_return firstStep() // throws RecognitionExce switch (alt28) { case 1 : - // SpecFlowLangParser.g:120:4: firstGiven + // SpecFlowLangParser.g:118:4: firstGiven { - PushFollow(FOLLOW_firstGiven_in_firstStep954); + PushFollow(FOLLOW_firstGiven_in_firstStep952); firstGiven55 = firstGiven(); state.followingStackPointer--; if (state.failed) return retval; @@ -2369,7 +2369,7 @@ public SpecFlowLangParser.firstStep_return firstStep() // throws RecognitionExce RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 120:15: -> firstGiven + // 118:15: -> firstGiven { adaptor.AddChild(root_0, stream_firstGiven.NextTree()); @@ -2379,9 +2379,9 @@ public SpecFlowLangParser.firstStep_return firstStep() // throws RecognitionExce } break; case 2 : - // SpecFlowLangParser.g:121:4: firstWhen + // SpecFlowLangParser.g:119:4: firstWhen { - PushFollow(FOLLOW_firstWhen_in_firstStep963); + PushFollow(FOLLOW_firstWhen_in_firstStep961); firstWhen56 = firstWhen(); state.followingStackPointer--; if (state.failed) return retval; @@ -2400,7 +2400,7 @@ public SpecFlowLangParser.firstStep_return firstStep() // throws RecognitionExce RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 121:14: -> firstWhen + // 119:14: -> firstWhen { adaptor.AddChild(root_0, stream_firstWhen.NextTree()); @@ -2410,9 +2410,9 @@ public SpecFlowLangParser.firstStep_return firstStep() // throws RecognitionExce } break; case 3 : - // SpecFlowLangParser.g:122:4: firstThen + // SpecFlowLangParser.g:120:4: firstThen { - PushFollow(FOLLOW_firstThen_in_firstStep972); + PushFollow(FOLLOW_firstThen_in_firstStep970); firstThen57 = firstThen(); state.followingStackPointer--; if (state.failed) return retval; @@ -2431,7 +2431,7 @@ public SpecFlowLangParser.firstStep_return firstStep() // throws RecognitionExce RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 122:14: -> firstThen + // 120:14: -> firstThen { adaptor.AddChild(root_0, stream_firstThen.NextTree()); @@ -2474,7 +2474,7 @@ override public object Tree }; // $ANTLR start "nextStep" - // SpecFlowLangParser.g:124:1: nextStep : ( firstStep -> firstStep | firstAnd -> firstAnd | firstBut -> firstBut ); + // SpecFlowLangParser.g:122:1: nextStep : ( firstStep -> firstStep | firstAnd -> firstAnd | firstBut -> firstBut ); public SpecFlowLangParser.nextStep_return nextStep() // throws RecognitionException [1] { SpecFlowLangParser.nextStep_return retval = new SpecFlowLangParser.nextStep_return(); @@ -2494,7 +2494,7 @@ public SpecFlowLangParser.nextStep_return nextStep() // throws RecognitionExcept RewriteRuleSubtreeStream stream_firstBut = new RewriteRuleSubtreeStream(adaptor,"rule firstBut"); try { - // SpecFlowLangParser.g:125:5: ( firstStep -> firstStep | firstAnd -> firstAnd | firstBut -> firstBut ) + // SpecFlowLangParser.g:123:5: ( firstStep -> firstStep | firstAnd -> firstAnd | firstBut -> firstBut ) int alt29 = 3; switch ( input.LA(1) ) { @@ -2557,9 +2557,9 @@ public SpecFlowLangParser.nextStep_return nextStep() // throws RecognitionExcept switch (alt29) { case 1 : - // SpecFlowLangParser.g:125:9: firstStep + // SpecFlowLangParser.g:123:9: firstStep { - PushFollow(FOLLOW_firstStep_in_nextStep994); + PushFollow(FOLLOW_firstStep_in_nextStep992); firstStep58 = firstStep(); state.followingStackPointer--; if (state.failed) return retval; @@ -2578,7 +2578,7 @@ public SpecFlowLangParser.nextStep_return nextStep() // throws RecognitionExcept RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 125:19: -> firstStep + // 123:19: -> firstStep { adaptor.AddChild(root_0, stream_firstStep.NextTree()); @@ -2588,9 +2588,9 @@ public SpecFlowLangParser.nextStep_return nextStep() // throws RecognitionExcept } break; case 2 : - // SpecFlowLangParser.g:126:4: firstAnd + // SpecFlowLangParser.g:124:4: firstAnd { - PushFollow(FOLLOW_firstAnd_in_nextStep1003); + PushFollow(FOLLOW_firstAnd_in_nextStep1001); firstAnd59 = firstAnd(); state.followingStackPointer--; if (state.failed) return retval; @@ -2609,7 +2609,7 @@ public SpecFlowLangParser.nextStep_return nextStep() // throws RecognitionExcept RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 126:13: -> firstAnd + // 124:13: -> firstAnd { adaptor.AddChild(root_0, stream_firstAnd.NextTree()); @@ -2619,9 +2619,9 @@ public SpecFlowLangParser.nextStep_return nextStep() // throws RecognitionExcept } break; case 3 : - // SpecFlowLangParser.g:127:4: firstBut + // SpecFlowLangParser.g:125:4: firstBut { - PushFollow(FOLLOW_firstBut_in_nextStep1012); + PushFollow(FOLLOW_firstBut_in_nextStep1010); firstBut60 = firstBut(); state.followingStackPointer--; if (state.failed) return retval; @@ -2640,7 +2640,7 @@ public SpecFlowLangParser.nextStep_return nextStep() // throws RecognitionExcept RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 127:13: -> firstBut + // 125:13: -> firstBut { adaptor.AddChild(root_0, stream_firstBut.NextTree()); @@ -2683,7 +2683,7 @@ override public object Tree }; // $ANTLR start "firstAnd" - // SpecFlowLangParser.g:130:1: firstAnd : ( WS )? T_AND WS sentenceEnd -> ^( AND sentenceEnd ) ; + // SpecFlowLangParser.g:128:1: firstAnd : ( WS )? T_AND WS sentenceEnd -> ^( AND sentenceEnd ) ; public SpecFlowLangParser.firstAnd_return firstAnd() // throws RecognitionException [1] { SpecFlowLangParser.firstAnd_return retval = new SpecFlowLangParser.firstAnd_return(); @@ -2705,10 +2705,10 @@ public SpecFlowLangParser.firstAnd_return firstAnd() // throws RecognitionExcept RewriteRuleSubtreeStream stream_sentenceEnd = new RewriteRuleSubtreeStream(adaptor,"rule sentenceEnd"); try { - // SpecFlowLangParser.g:131:5: ( ( WS )? T_AND WS sentenceEnd -> ^( AND sentenceEnd ) ) - // SpecFlowLangParser.g:131:9: ( WS )? T_AND WS sentenceEnd + // SpecFlowLangParser.g:129:5: ( ( WS )? T_AND WS sentenceEnd -> ^( AND sentenceEnd ) ) + // SpecFlowLangParser.g:129:9: ( WS )? T_AND WS sentenceEnd { - // SpecFlowLangParser.g:131:9: ( WS )? + // SpecFlowLangParser.g:129:9: ( WS )? int alt30 = 2; int LA30_0 = input.LA(1); @@ -2721,7 +2721,7 @@ public SpecFlowLangParser.firstAnd_return firstAnd() // throws RecognitionExcept case 1 : // SpecFlowLangParser.g:0:0: WS { - WS61=(IToken)Match(input,WS,FOLLOW_WS_in_firstAnd1035); if (state.failed) return retval; + WS61=(IToken)Match(input,WS,FOLLOW_WS_in_firstAnd1033); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS61); @@ -2730,13 +2730,13 @@ public SpecFlowLangParser.firstAnd_return firstAnd() // throws RecognitionExcept } - T_AND62=(IToken)Match(input,T_AND,FOLLOW_T_AND_in_firstAnd1038); if (state.failed) return retval; + T_AND62=(IToken)Match(input,T_AND,FOLLOW_T_AND_in_firstAnd1036); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_T_AND.Add(T_AND62); - WS63=(IToken)Match(input,WS,FOLLOW_WS_in_firstAnd1040); if (state.failed) return retval; + WS63=(IToken)Match(input,WS,FOLLOW_WS_in_firstAnd1038); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS63); - PushFollow(FOLLOW_sentenceEnd_in_firstAnd1042); + PushFollow(FOLLOW_sentenceEnd_in_firstAnd1040); sentenceEnd64 = sentenceEnd(); state.followingStackPointer--; if (state.failed) return retval; @@ -2755,9 +2755,9 @@ public SpecFlowLangParser.firstAnd_return firstAnd() // throws RecognitionExcept RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 132:9: -> ^( AND sentenceEnd ) + // 130:9: -> ^( AND sentenceEnd ) { - // SpecFlowLangParser.g:132:12: ^( AND sentenceEnd ) + // SpecFlowLangParser.g:130:12: ^( AND sentenceEnd ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(AND, "AND"), root_1); @@ -2804,7 +2804,7 @@ override public object Tree }; // $ANTLR start "firstBut" - // SpecFlowLangParser.g:135:1: firstBut : ( WS )? T_BUT WS sentenceEnd -> ^( BUT sentenceEnd ) ; + // SpecFlowLangParser.g:133:1: firstBut : ( WS )? T_BUT WS sentenceEnd -> ^( BUT sentenceEnd ) ; public SpecFlowLangParser.firstBut_return firstBut() // throws RecognitionException [1] { SpecFlowLangParser.firstBut_return retval = new SpecFlowLangParser.firstBut_return(); @@ -2826,10 +2826,10 @@ public SpecFlowLangParser.firstBut_return firstBut() // throws RecognitionExcept RewriteRuleSubtreeStream stream_sentenceEnd = new RewriteRuleSubtreeStream(adaptor,"rule sentenceEnd"); try { - // SpecFlowLangParser.g:136:5: ( ( WS )? T_BUT WS sentenceEnd -> ^( BUT sentenceEnd ) ) - // SpecFlowLangParser.g:136:9: ( WS )? T_BUT WS sentenceEnd + // SpecFlowLangParser.g:134:5: ( ( WS )? T_BUT WS sentenceEnd -> ^( BUT sentenceEnd ) ) + // SpecFlowLangParser.g:134:9: ( WS )? T_BUT WS sentenceEnd { - // SpecFlowLangParser.g:136:9: ( WS )? + // SpecFlowLangParser.g:134:9: ( WS )? int alt31 = 2; int LA31_0 = input.LA(1); @@ -2842,7 +2842,7 @@ public SpecFlowLangParser.firstBut_return firstBut() // throws RecognitionExcept case 1 : // SpecFlowLangParser.g:0:0: WS { - WS65=(IToken)Match(input,WS,FOLLOW_WS_in_firstBut1077); if (state.failed) return retval; + WS65=(IToken)Match(input,WS,FOLLOW_WS_in_firstBut1075); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS65); @@ -2851,13 +2851,13 @@ public SpecFlowLangParser.firstBut_return firstBut() // throws RecognitionExcept } - T_BUT66=(IToken)Match(input,T_BUT,FOLLOW_T_BUT_in_firstBut1080); if (state.failed) return retval; + T_BUT66=(IToken)Match(input,T_BUT,FOLLOW_T_BUT_in_firstBut1078); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_T_BUT.Add(T_BUT66); - WS67=(IToken)Match(input,WS,FOLLOW_WS_in_firstBut1082); if (state.failed) return retval; + WS67=(IToken)Match(input,WS,FOLLOW_WS_in_firstBut1080); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS67); - PushFollow(FOLLOW_sentenceEnd_in_firstBut1084); + PushFollow(FOLLOW_sentenceEnd_in_firstBut1082); sentenceEnd68 = sentenceEnd(); state.followingStackPointer--; if (state.failed) return retval; @@ -2876,9 +2876,9 @@ public SpecFlowLangParser.firstBut_return firstBut() // throws RecognitionExcept RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 137:9: -> ^( BUT sentenceEnd ) + // 135:9: -> ^( BUT sentenceEnd ) { - // SpecFlowLangParser.g:137:12: ^( BUT sentenceEnd ) + // SpecFlowLangParser.g:135:12: ^( BUT sentenceEnd ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(BUT, "BUT"), root_1); @@ -2925,7 +2925,7 @@ override public object Tree }; // $ANTLR start "givens" - // SpecFlowLangParser.g:140:1: givens : firstGiven ( nextStep )* -> ^( STEPS firstGiven ( nextStep )* ) ; + // SpecFlowLangParser.g:138:1: givens : firstGiven ( nextStep )* -> ^( STEPS firstGiven ( nextStep )* ) ; public SpecFlowLangParser.givens_return givens() // throws RecognitionException [1] { SpecFlowLangParser.givens_return retval = new SpecFlowLangParser.givens_return(); @@ -2942,15 +2942,15 @@ public SpecFlowLangParser.givens_return givens() // throws RecognitionException RewriteRuleSubtreeStream stream_firstGiven = new RewriteRuleSubtreeStream(adaptor,"rule firstGiven"); try { - // SpecFlowLangParser.g:141:5: ( firstGiven ( nextStep )* -> ^( STEPS firstGiven ( nextStep )* ) ) - // SpecFlowLangParser.g:141:9: firstGiven ( nextStep )* + // SpecFlowLangParser.g:139:5: ( firstGiven ( nextStep )* -> ^( STEPS firstGiven ( nextStep )* ) ) + // SpecFlowLangParser.g:139:9: firstGiven ( nextStep )* { - PushFollow(FOLLOW_firstGiven_in_givens1119); + PushFollow(FOLLOW_firstGiven_in_givens1117); firstGiven69 = firstGiven(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_firstGiven.Add(firstGiven69.Tree); - // SpecFlowLangParser.g:141:20: ( nextStep )* + // SpecFlowLangParser.g:139:20: ( nextStep )* do { int alt32 = 2; @@ -2978,7 +2978,7 @@ public SpecFlowLangParser.givens_return givens() // throws RecognitionException case 1 : // SpecFlowLangParser.g:0:0: nextStep { - PushFollow(FOLLOW_nextStep_in_givens1121); + PushFollow(FOLLOW_nextStep_in_givens1119); nextStep70 = nextStep(); state.followingStackPointer--; if (state.failed) return retval; @@ -3009,15 +3009,15 @@ public SpecFlowLangParser.givens_return givens() // throws RecognitionException RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 142:9: -> ^( STEPS firstGiven ( nextStep )* ) + // 140:9: -> ^( STEPS firstGiven ( nextStep )* ) { - // SpecFlowLangParser.g:142:12: ^( STEPS firstGiven ( nextStep )* ) + // SpecFlowLangParser.g:140:12: ^( STEPS firstGiven ( nextStep )* ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(STEPS, "STEPS"), root_1); adaptor.AddChild(root_1, stream_firstGiven.NextTree()); - // SpecFlowLangParser.g:142:31: ( nextStep )* + // SpecFlowLangParser.g:140:31: ( nextStep )* while ( stream_nextStep.HasNext() ) { adaptor.AddChild(root_1, stream_nextStep.NextTree()); @@ -3065,7 +3065,7 @@ override public object Tree }; // $ANTLR start "firstGiven" - // SpecFlowLangParser.g:144:1: firstGiven : ( WS )? T_GIVEN WS sentenceEnd -> ^( GIVEN sentenceEnd ) ; + // SpecFlowLangParser.g:142:1: firstGiven : ( WS )? T_GIVEN WS sentenceEnd -> ^( GIVEN sentenceEnd ) ; public SpecFlowLangParser.firstGiven_return firstGiven() // throws RecognitionException [1] { SpecFlowLangParser.firstGiven_return retval = new SpecFlowLangParser.firstGiven_return(); @@ -3087,10 +3087,10 @@ public SpecFlowLangParser.firstGiven_return firstGiven() // throws RecognitionEx RewriteRuleSubtreeStream stream_sentenceEnd = new RewriteRuleSubtreeStream(adaptor,"rule sentenceEnd"); try { - // SpecFlowLangParser.g:145:5: ( ( WS )? T_GIVEN WS sentenceEnd -> ^( GIVEN sentenceEnd ) ) - // SpecFlowLangParser.g:145:9: ( WS )? T_GIVEN WS sentenceEnd + // SpecFlowLangParser.g:143:5: ( ( WS )? T_GIVEN WS sentenceEnd -> ^( GIVEN sentenceEnd ) ) + // SpecFlowLangParser.g:143:9: ( WS )? T_GIVEN WS sentenceEnd { - // SpecFlowLangParser.g:145:9: ( WS )? + // SpecFlowLangParser.g:143:9: ( WS )? int alt33 = 2; int LA33_0 = input.LA(1); @@ -3103,7 +3103,7 @@ public SpecFlowLangParser.firstGiven_return firstGiven() // throws RecognitionEx case 1 : // SpecFlowLangParser.g:0:0: WS { - WS71=(IToken)Match(input,WS,FOLLOW_WS_in_firstGiven1159); if (state.failed) return retval; + WS71=(IToken)Match(input,WS,FOLLOW_WS_in_firstGiven1157); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS71); @@ -3112,13 +3112,13 @@ public SpecFlowLangParser.firstGiven_return firstGiven() // throws RecognitionEx } - T_GIVEN72=(IToken)Match(input,T_GIVEN,FOLLOW_T_GIVEN_in_firstGiven1162); if (state.failed) return retval; + T_GIVEN72=(IToken)Match(input,T_GIVEN,FOLLOW_T_GIVEN_in_firstGiven1160); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_T_GIVEN.Add(T_GIVEN72); - WS73=(IToken)Match(input,WS,FOLLOW_WS_in_firstGiven1164); if (state.failed) return retval; + WS73=(IToken)Match(input,WS,FOLLOW_WS_in_firstGiven1162); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS73); - PushFollow(FOLLOW_sentenceEnd_in_firstGiven1166); + PushFollow(FOLLOW_sentenceEnd_in_firstGiven1164); sentenceEnd74 = sentenceEnd(); state.followingStackPointer--; if (state.failed) return retval; @@ -3137,9 +3137,9 @@ public SpecFlowLangParser.firstGiven_return firstGiven() // throws RecognitionEx RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 146:9: -> ^( GIVEN sentenceEnd ) + // 144:9: -> ^( GIVEN sentenceEnd ) { - // SpecFlowLangParser.g:146:12: ^( GIVEN sentenceEnd ) + // SpecFlowLangParser.g:144:12: ^( GIVEN sentenceEnd ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(GIVEN, "GIVEN"), root_1); @@ -3186,7 +3186,7 @@ override public object Tree }; // $ANTLR start "firstWhen" - // SpecFlowLangParser.g:148:1: firstWhen : ( WS )? T_WHEN WS sentenceEnd -> ^( WHEN sentenceEnd ) ; + // SpecFlowLangParser.g:146:1: firstWhen : ( WS )? T_WHEN WS sentenceEnd -> ^( WHEN sentenceEnd ) ; public SpecFlowLangParser.firstWhen_return firstWhen() // throws RecognitionException [1] { SpecFlowLangParser.firstWhen_return retval = new SpecFlowLangParser.firstWhen_return(); @@ -3208,10 +3208,10 @@ public SpecFlowLangParser.firstWhen_return firstWhen() // throws RecognitionExce RewriteRuleSubtreeStream stream_sentenceEnd = new RewriteRuleSubtreeStream(adaptor,"rule sentenceEnd"); try { - // SpecFlowLangParser.g:149:5: ( ( WS )? T_WHEN WS sentenceEnd -> ^( WHEN sentenceEnd ) ) - // SpecFlowLangParser.g:149:9: ( WS )? T_WHEN WS sentenceEnd + // SpecFlowLangParser.g:147:5: ( ( WS )? T_WHEN WS sentenceEnd -> ^( WHEN sentenceEnd ) ) + // SpecFlowLangParser.g:147:9: ( WS )? T_WHEN WS sentenceEnd { - // SpecFlowLangParser.g:149:9: ( WS )? + // SpecFlowLangParser.g:147:9: ( WS )? int alt34 = 2; int LA34_0 = input.LA(1); @@ -3224,7 +3224,7 @@ public SpecFlowLangParser.firstWhen_return firstWhen() // throws RecognitionExce case 1 : // SpecFlowLangParser.g:0:0: WS { - WS75=(IToken)Match(input,WS,FOLLOW_WS_in_firstWhen1200); if (state.failed) return retval; + WS75=(IToken)Match(input,WS,FOLLOW_WS_in_firstWhen1198); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS75); @@ -3233,13 +3233,13 @@ public SpecFlowLangParser.firstWhen_return firstWhen() // throws RecognitionExce } - T_WHEN76=(IToken)Match(input,T_WHEN,FOLLOW_T_WHEN_in_firstWhen1203); if (state.failed) return retval; + T_WHEN76=(IToken)Match(input,T_WHEN,FOLLOW_T_WHEN_in_firstWhen1201); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_T_WHEN.Add(T_WHEN76); - WS77=(IToken)Match(input,WS,FOLLOW_WS_in_firstWhen1205); if (state.failed) return retval; + WS77=(IToken)Match(input,WS,FOLLOW_WS_in_firstWhen1203); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS77); - PushFollow(FOLLOW_sentenceEnd_in_firstWhen1207); + PushFollow(FOLLOW_sentenceEnd_in_firstWhen1205); sentenceEnd78 = sentenceEnd(); state.followingStackPointer--; if (state.failed) return retval; @@ -3258,9 +3258,9 @@ public SpecFlowLangParser.firstWhen_return firstWhen() // throws RecognitionExce RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 150:9: -> ^( WHEN sentenceEnd ) + // 148:9: -> ^( WHEN sentenceEnd ) { - // SpecFlowLangParser.g:150:12: ^( WHEN sentenceEnd ) + // SpecFlowLangParser.g:148:12: ^( WHEN sentenceEnd ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(WHEN, "WHEN"), root_1); @@ -3307,7 +3307,7 @@ override public object Tree }; // $ANTLR start "firstThen" - // SpecFlowLangParser.g:152:1: firstThen : ( WS )? T_THEN WS sentenceEnd -> ^( THEN sentenceEnd ) ; + // SpecFlowLangParser.g:150:1: firstThen : ( WS )? T_THEN WS sentenceEnd -> ^( THEN sentenceEnd ) ; public SpecFlowLangParser.firstThen_return firstThen() // throws RecognitionException [1] { SpecFlowLangParser.firstThen_return retval = new SpecFlowLangParser.firstThen_return(); @@ -3329,10 +3329,10 @@ public SpecFlowLangParser.firstThen_return firstThen() // throws RecognitionExce RewriteRuleSubtreeStream stream_sentenceEnd = new RewriteRuleSubtreeStream(adaptor,"rule sentenceEnd"); try { - // SpecFlowLangParser.g:153:5: ( ( WS )? T_THEN WS sentenceEnd -> ^( THEN sentenceEnd ) ) - // SpecFlowLangParser.g:153:9: ( WS )? T_THEN WS sentenceEnd + // SpecFlowLangParser.g:151:5: ( ( WS )? T_THEN WS sentenceEnd -> ^( THEN sentenceEnd ) ) + // SpecFlowLangParser.g:151:9: ( WS )? T_THEN WS sentenceEnd { - // SpecFlowLangParser.g:153:9: ( WS )? + // SpecFlowLangParser.g:151:9: ( WS )? int alt35 = 2; int LA35_0 = input.LA(1); @@ -3345,7 +3345,7 @@ public SpecFlowLangParser.firstThen_return firstThen() // throws RecognitionExce case 1 : // SpecFlowLangParser.g:0:0: WS { - WS79=(IToken)Match(input,WS,FOLLOW_WS_in_firstThen1241); if (state.failed) return retval; + WS79=(IToken)Match(input,WS,FOLLOW_WS_in_firstThen1239); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS79); @@ -3354,13 +3354,13 @@ public SpecFlowLangParser.firstThen_return firstThen() // throws RecognitionExce } - T_THEN80=(IToken)Match(input,T_THEN,FOLLOW_T_THEN_in_firstThen1244); if (state.failed) return retval; + T_THEN80=(IToken)Match(input,T_THEN,FOLLOW_T_THEN_in_firstThen1242); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_T_THEN.Add(T_THEN80); - WS81=(IToken)Match(input,WS,FOLLOW_WS_in_firstThen1246); if (state.failed) return retval; + WS81=(IToken)Match(input,WS,FOLLOW_WS_in_firstThen1244); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS81); - PushFollow(FOLLOW_sentenceEnd_in_firstThen1248); + PushFollow(FOLLOW_sentenceEnd_in_firstThen1246); sentenceEnd82 = sentenceEnd(); state.followingStackPointer--; if (state.failed) return retval; @@ -3379,9 +3379,9 @@ public SpecFlowLangParser.firstThen_return firstThen() // throws RecognitionExce RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 154:9: -> ^( THEN sentenceEnd ) + // 152:9: -> ^( THEN sentenceEnd ) { - // SpecFlowLangParser.g:154:12: ^( THEN sentenceEnd ) + // SpecFlowLangParser.g:152:12: ^( THEN sentenceEnd ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(THEN, "THEN"), root_1); @@ -3428,7 +3428,7 @@ override public object Tree }; // $ANTLR start "sentenceEnd" - // SpecFlowLangParser.g:157:1: sentenceEnd : text newlineWithSpaces ( multilineText )? ( table )? -> text ( multilineText )? ( table )? ; + // SpecFlowLangParser.g:155:1: sentenceEnd : text newlineWithSpaces ( multilineText )? ( table )? -> text ( multilineText )? ( table )? ; public SpecFlowLangParser.sentenceEnd_return sentenceEnd() // throws RecognitionException [1] { SpecFlowLangParser.sentenceEnd_return retval = new SpecFlowLangParser.sentenceEnd_return(); @@ -3451,20 +3451,20 @@ public SpecFlowLangParser.sentenceEnd_return sentenceEnd() // throws Recognition RewriteRuleSubtreeStream stream_newlineWithSpaces = new RewriteRuleSubtreeStream(adaptor,"rule newlineWithSpaces"); try { - // SpecFlowLangParser.g:158:5: ( text newlineWithSpaces ( multilineText )? ( table )? -> text ( multilineText )? ( table )? ) - // SpecFlowLangParser.g:158:9: text newlineWithSpaces ( multilineText )? ( table )? + // SpecFlowLangParser.g:156:5: ( text newlineWithSpaces ( multilineText )? ( table )? -> text ( multilineText )? ( table )? ) + // SpecFlowLangParser.g:156:9: text newlineWithSpaces ( multilineText )? ( table )? { - PushFollow(FOLLOW_text_in_sentenceEnd1283); + PushFollow(FOLLOW_text_in_sentenceEnd1281); text83 = text(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_text.Add(text83.Tree); - PushFollow(FOLLOW_newlineWithSpaces_in_sentenceEnd1285); + PushFollow(FOLLOW_newlineWithSpaces_in_sentenceEnd1283); newlineWithSpaces84 = newlineWithSpaces(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_newlineWithSpaces.Add(newlineWithSpaces84.Tree); - // SpecFlowLangParser.g:158:32: ( multilineText )? + // SpecFlowLangParser.g:156:32: ( multilineText )? int alt36 = 2; int LA36_0 = input.LA(1); @@ -3486,7 +3486,7 @@ public SpecFlowLangParser.sentenceEnd_return sentenceEnd() // throws Recognition case 1 : // SpecFlowLangParser.g:0:0: multilineText { - PushFollow(FOLLOW_multilineText_in_sentenceEnd1287); + PushFollow(FOLLOW_multilineText_in_sentenceEnd1285); multilineText85 = multilineText(); state.followingStackPointer--; if (state.failed) return retval; @@ -3497,7 +3497,7 @@ public SpecFlowLangParser.sentenceEnd_return sentenceEnd() // throws Recognition } - // SpecFlowLangParser.g:158:47: ( table )? + // SpecFlowLangParser.g:156:47: ( table )? int alt37 = 2; int LA37_0 = input.LA(1); @@ -3519,7 +3519,7 @@ public SpecFlowLangParser.sentenceEnd_return sentenceEnd() // throws Recognition case 1 : // SpecFlowLangParser.g:0:0: table { - PushFollow(FOLLOW_table_in_sentenceEnd1290); + PushFollow(FOLLOW_table_in_sentenceEnd1288); table86 = table(); state.followingStackPointer--; if (state.failed) return retval; @@ -3533,7 +3533,7 @@ public SpecFlowLangParser.sentenceEnd_return sentenceEnd() // throws Recognition // AST REWRITE - // elements: table, multilineText, text + // elements: text, table, multilineText // token labels: // rule labels: retval // token list labels: @@ -3544,17 +3544,17 @@ public SpecFlowLangParser.sentenceEnd_return sentenceEnd() // throws Recognition RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 159:9: -> text ( multilineText )? ( table )? + // 157:9: -> text ( multilineText )? ( table )? { adaptor.AddChild(root_0, stream_text.NextTree()); - // SpecFlowLangParser.g:159:17: ( multilineText )? + // SpecFlowLangParser.g:157:17: ( multilineText )? if ( stream_multilineText.HasNext() ) { adaptor.AddChild(root_0, stream_multilineText.NextTree()); } stream_multilineText.Reset(); - // SpecFlowLangParser.g:159:32: ( table )? + // SpecFlowLangParser.g:157:32: ( table )? if ( stream_table.HasNext() ) { adaptor.AddChild(root_0, stream_table.NextTree()); @@ -3599,7 +3599,7 @@ override public object Tree }; // $ANTLR start "multilineText" - // SpecFlowLangParser.g:162:1: multilineText : indent MLTEXT ( WS )? NEWLINE ( multilineTextLine )* ( WS )? MLTEXT ( WS )? newlineWithSpaces -> ^( MULTILINETEXT ( multilineTextLine )* indent ) ; + // SpecFlowLangParser.g:160:1: multilineText : indent MLTEXT ( WS )? NEWLINE ( multilineTextLine )* ( WS )? MLTEXT ( WS )? newlineWithSpaces -> ^( MULTILINETEXT ( multilineTextLine )* indent ) ; public SpecFlowLangParser.multilineText_return multilineText() // throws RecognitionException [1] { SpecFlowLangParser.multilineText_return retval = new SpecFlowLangParser.multilineText_return(); @@ -3634,18 +3634,18 @@ public SpecFlowLangParser.multilineText_return multilineText() // throws Recogni RewriteRuleSubtreeStream stream_newlineWithSpaces = new RewriteRuleSubtreeStream(adaptor,"rule newlineWithSpaces"); try { - // SpecFlowLangParser.g:163:5: ( indent MLTEXT ( WS )? NEWLINE ( multilineTextLine )* ( WS )? MLTEXT ( WS )? newlineWithSpaces -> ^( MULTILINETEXT ( multilineTextLine )* indent ) ) - // SpecFlowLangParser.g:163:9: indent MLTEXT ( WS )? NEWLINE ( multilineTextLine )* ( WS )? MLTEXT ( WS )? newlineWithSpaces + // SpecFlowLangParser.g:161:5: ( indent MLTEXT ( WS )? NEWLINE ( multilineTextLine )* ( WS )? MLTEXT ( WS )? newlineWithSpaces -> ^( MULTILINETEXT ( multilineTextLine )* indent ) ) + // SpecFlowLangParser.g:161:9: indent MLTEXT ( WS )? NEWLINE ( multilineTextLine )* ( WS )? MLTEXT ( WS )? newlineWithSpaces { - PushFollow(FOLLOW_indent_in_multilineText1328); + PushFollow(FOLLOW_indent_in_multilineText1326); indent87 = indent(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_indent.Add(indent87.Tree); - MLTEXT88=(IToken)Match(input,MLTEXT,FOLLOW_MLTEXT_in_multilineText1330); if (state.failed) return retval; + MLTEXT88=(IToken)Match(input,MLTEXT,FOLLOW_MLTEXT_in_multilineText1328); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_MLTEXT.Add(MLTEXT88); - // SpecFlowLangParser.g:163:23: ( WS )? + // SpecFlowLangParser.g:161:23: ( WS )? int alt38 = 2; int LA38_0 = input.LA(1); @@ -3658,7 +3658,7 @@ public SpecFlowLangParser.multilineText_return multilineText() // throws Recogni case 1 : // SpecFlowLangParser.g:0:0: WS { - WS89=(IToken)Match(input,WS,FOLLOW_WS_in_multilineText1332); if (state.failed) return retval; + WS89=(IToken)Match(input,WS,FOLLOW_WS_in_multilineText1330); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS89); @@ -3667,10 +3667,10 @@ public SpecFlowLangParser.multilineText_return multilineText() // throws Recogni } - NEWLINE90=(IToken)Match(input,NEWLINE,FOLLOW_NEWLINE_in_multilineText1335); if (state.failed) return retval; + NEWLINE90=(IToken)Match(input,NEWLINE,FOLLOW_NEWLINE_in_multilineText1333); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_NEWLINE.Add(NEWLINE90); - // SpecFlowLangParser.g:164:9: ( multilineTextLine )* + // SpecFlowLangParser.g:162:9: ( multilineTextLine )* do { int alt39 = 2; @@ -3698,7 +3698,7 @@ public SpecFlowLangParser.multilineText_return multilineText() // throws Recogni case 1 : // SpecFlowLangParser.g:0:0: multilineTextLine { - PushFollow(FOLLOW_multilineTextLine_in_multilineText1345); + PushFollow(FOLLOW_multilineTextLine_in_multilineText1343); multilineTextLine91 = multilineTextLine(); state.followingStackPointer--; if (state.failed) return retval; @@ -3715,7 +3715,7 @@ public SpecFlowLangParser.multilineText_return multilineText() // throws Recogni loop39: ; // Stops C# compiler whining that label 'loop39' has no statements - // SpecFlowLangParser.g:165:9: ( WS )? + // SpecFlowLangParser.g:163:9: ( WS )? int alt40 = 2; int LA40_0 = input.LA(1); @@ -3728,7 +3728,7 @@ public SpecFlowLangParser.multilineText_return multilineText() // throws Recogni case 1 : // SpecFlowLangParser.g:0:0: WS { - WS92=(IToken)Match(input,WS,FOLLOW_WS_in_multilineText1356); if (state.failed) return retval; + WS92=(IToken)Match(input,WS,FOLLOW_WS_in_multilineText1354); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS92); @@ -3737,10 +3737,10 @@ public SpecFlowLangParser.multilineText_return multilineText() // throws Recogni } - MLTEXT93=(IToken)Match(input,MLTEXT,FOLLOW_MLTEXT_in_multilineText1359); if (state.failed) return retval; + MLTEXT93=(IToken)Match(input,MLTEXT,FOLLOW_MLTEXT_in_multilineText1357); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_MLTEXT.Add(MLTEXT93); - // SpecFlowLangParser.g:165:20: ( WS )? + // SpecFlowLangParser.g:163:20: ( WS )? int alt41 = 2; int LA41_0 = input.LA(1); @@ -3758,7 +3758,7 @@ public SpecFlowLangParser.multilineText_return multilineText() // throws Recogni case 1 : // SpecFlowLangParser.g:0:0: WS { - WS94=(IToken)Match(input,WS,FOLLOW_WS_in_multilineText1361); if (state.failed) return retval; + WS94=(IToken)Match(input,WS,FOLLOW_WS_in_multilineText1359); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS94); @@ -3767,7 +3767,7 @@ public SpecFlowLangParser.multilineText_return multilineText() // throws Recogni } - PushFollow(FOLLOW_newlineWithSpaces_in_multilineText1364); + PushFollow(FOLLOW_newlineWithSpaces_in_multilineText1362); newlineWithSpaces95 = newlineWithSpaces(); state.followingStackPointer--; if (state.failed) return retval; @@ -3775,7 +3775,7 @@ public SpecFlowLangParser.multilineText_return multilineText() // throws Recogni // AST REWRITE - // elements: indent, multilineTextLine + // elements: multilineTextLine, indent // token labels: // rule labels: retval // token list labels: @@ -3786,14 +3786,14 @@ public SpecFlowLangParser.multilineText_return multilineText() // throws Recogni RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 166:9: -> ^( MULTILINETEXT ( multilineTextLine )* indent ) + // 164:9: -> ^( MULTILINETEXT ( multilineTextLine )* indent ) { - // SpecFlowLangParser.g:166:12: ^( MULTILINETEXT ( multilineTextLine )* indent ) + // SpecFlowLangParser.g:164:12: ^( MULTILINETEXT ( multilineTextLine )* indent ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(MULTILINETEXT, "MULTILINETEXT"), root_1); - // SpecFlowLangParser.g:166:28: ( multilineTextLine )* + // SpecFlowLangParser.g:164:28: ( multilineTextLine )* while ( stream_multilineTextLine.HasNext() ) { adaptor.AddChild(root_1, stream_multilineTextLine.NextTree()); @@ -3842,7 +3842,7 @@ override public object Tree }; // $ANTLR start "indent" - // SpecFlowLangParser.g:169:1: indent : ( WS )? -> ^( INDENT ( WS )? ) ; + // SpecFlowLangParser.g:167:1: indent : ( WS )? -> ^( INDENT ( WS )? ) ; public SpecFlowLangParser.indent_return indent() // throws RecognitionException [1] { SpecFlowLangParser.indent_return retval = new SpecFlowLangParser.indent_return(); @@ -3857,10 +3857,10 @@ public SpecFlowLangParser.indent_return indent() // throws RecognitionException try { - // SpecFlowLangParser.g:170:5: ( ( WS )? -> ^( INDENT ( WS )? ) ) - // SpecFlowLangParser.g:170:9: ( WS )? + // SpecFlowLangParser.g:168:5: ( ( WS )? -> ^( INDENT ( WS )? ) ) + // SpecFlowLangParser.g:168:9: ( WS )? { - // SpecFlowLangParser.g:170:9: ( WS )? + // SpecFlowLangParser.g:168:9: ( WS )? int alt42 = 2; int LA42_0 = input.LA(1); @@ -3873,7 +3873,7 @@ public SpecFlowLangParser.indent_return indent() // throws RecognitionException case 1 : // SpecFlowLangParser.g:0:0: WS { - WS96=(IToken)Match(input,WS,FOLLOW_WS_in_indent1402); if (state.failed) return retval; + WS96=(IToken)Match(input,WS,FOLLOW_WS_in_indent1400); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS96); @@ -3896,14 +3896,14 @@ public SpecFlowLangParser.indent_return indent() // throws RecognitionException RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 170:13: -> ^( INDENT ( WS )? ) + // 168:13: -> ^( INDENT ( WS )? ) { - // SpecFlowLangParser.g:170:16: ^( INDENT ( WS )? ) + // SpecFlowLangParser.g:168:16: ^( INDENT ( WS )? ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(INDENT, "INDENT"), root_1); - // SpecFlowLangParser.g:170:25: ( WS )? + // SpecFlowLangParser.g:168:25: ( WS )? if ( stream_WS.HasNext() ) { adaptor.AddChild(root_1, stream_WS.NextNode()); @@ -3951,7 +3951,7 @@ override public object Tree }; // $ANTLR start "multilineTextLine" - // SpecFlowLangParser.g:173:1: multilineTextLine : ( WS )? ( text )? NEWLINE -> ^( LINE ( WS )? ( text )? NEWLINE ) ; + // SpecFlowLangParser.g:171:1: multilineTextLine : ( WS )? ( text )? NEWLINE -> ^( LINE ( WS )? ( text )? NEWLINE ) ; public SpecFlowLangParser.multilineTextLine_return multilineTextLine() // throws RecognitionException [1] { SpecFlowLangParser.multilineTextLine_return retval = new SpecFlowLangParser.multilineTextLine_return(); @@ -3971,10 +3971,10 @@ public SpecFlowLangParser.multilineTextLine_return multilineTextLine() // throws RewriteRuleSubtreeStream stream_text = new RewriteRuleSubtreeStream(adaptor,"rule text"); try { - // SpecFlowLangParser.g:174:5: ( ( WS )? ( text )? NEWLINE -> ^( LINE ( WS )? ( text )? NEWLINE ) ) - // SpecFlowLangParser.g:174:9: ( WS )? ( text )? NEWLINE + // SpecFlowLangParser.g:172:5: ( ( WS )? ( text )? NEWLINE -> ^( LINE ( WS )? ( text )? NEWLINE ) ) + // SpecFlowLangParser.g:172:9: ( WS )? ( text )? NEWLINE { - // SpecFlowLangParser.g:174:9: ( WS )? + // SpecFlowLangParser.g:172:9: ( WS )? int alt43 = 2; int LA43_0 = input.LA(1); @@ -3987,7 +3987,7 @@ public SpecFlowLangParser.multilineTextLine_return multilineTextLine() // throws case 1 : // SpecFlowLangParser.g:0:0: WS { - WS97=(IToken)Match(input,WS,FOLLOW_WS_in_multilineTextLine1431); if (state.failed) return retval; + WS97=(IToken)Match(input,WS,FOLLOW_WS_in_multilineTextLine1429); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS97); @@ -3996,7 +3996,7 @@ public SpecFlowLangParser.multilineTextLine_return multilineTextLine() // throws } - // SpecFlowLangParser.g:174:13: ( text )? + // SpecFlowLangParser.g:172:13: ( text )? int alt44 = 2; int LA44_0 = input.LA(1); @@ -4009,7 +4009,7 @@ public SpecFlowLangParser.multilineTextLine_return multilineTextLine() // throws case 1 : // SpecFlowLangParser.g:0:0: text { - PushFollow(FOLLOW_text_in_multilineTextLine1434); + PushFollow(FOLLOW_text_in_multilineTextLine1432); text98 = text(); state.followingStackPointer--; if (state.failed) return retval; @@ -4020,13 +4020,13 @@ public SpecFlowLangParser.multilineTextLine_return multilineTextLine() // throws } - NEWLINE99=(IToken)Match(input,NEWLINE,FOLLOW_NEWLINE_in_multilineTextLine1437); if (state.failed) return retval; + NEWLINE99=(IToken)Match(input,NEWLINE,FOLLOW_NEWLINE_in_multilineTextLine1435); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_NEWLINE.Add(NEWLINE99); // AST REWRITE - // elements: NEWLINE, text, WS + // elements: WS, text, NEWLINE // token labels: // rule labels: retval // token list labels: @@ -4037,21 +4037,21 @@ public SpecFlowLangParser.multilineTextLine_return multilineTextLine() // throws RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 175:9: -> ^( LINE ( WS )? ( text )? NEWLINE ) + // 173:9: -> ^( LINE ( WS )? ( text )? NEWLINE ) { - // SpecFlowLangParser.g:175:12: ^( LINE ( WS )? ( text )? NEWLINE ) + // SpecFlowLangParser.g:173:12: ^( LINE ( WS )? ( text )? NEWLINE ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(LINE, "LINE"), root_1); - // SpecFlowLangParser.g:175:19: ( WS )? + // SpecFlowLangParser.g:173:19: ( WS )? if ( stream_WS.HasNext() ) { adaptor.AddChild(root_1, stream_WS.NextNode()); } stream_WS.Reset(); - // SpecFlowLangParser.g:175:23: ( text )? + // SpecFlowLangParser.g:173:23: ( text )? if ( stream_text.HasNext() ) { adaptor.AddChild(root_1, stream_text.NextTree()); @@ -4100,7 +4100,7 @@ override public object Tree }; // $ANTLR start "table" - // SpecFlowLangParser.g:178:1: table : tableRow ( tableRow )+ -> ^( TABLE ^( HEADER tableRow ) ^( BODY ( tableRow )+ ) ) ; + // SpecFlowLangParser.g:176:1: table : tableRow ( tableRow )+ -> ^( TABLE ^( HEADER tableRow ) ^( BODY ( tableRow )+ ) ) ; public SpecFlowLangParser.table_return table() // throws RecognitionException [1] { SpecFlowLangParser.table_return retval = new SpecFlowLangParser.table_return(); @@ -4116,15 +4116,15 @@ public SpecFlowLangParser.table_return table() // throws RecognitionException [1 RewriteRuleSubtreeStream stream_tableRow = new RewriteRuleSubtreeStream(adaptor,"rule tableRow"); try { - // SpecFlowLangParser.g:179:5: ( tableRow ( tableRow )+ -> ^( TABLE ^( HEADER tableRow ) ^( BODY ( tableRow )+ ) ) ) - // SpecFlowLangParser.g:179:9: tableRow ( tableRow )+ + // SpecFlowLangParser.g:177:5: ( tableRow ( tableRow )+ -> ^( TABLE ^( HEADER tableRow ) ^( BODY ( tableRow )+ ) ) ) + // SpecFlowLangParser.g:177:9: tableRow ( tableRow )+ { - PushFollow(FOLLOW_tableRow_in_table1478); + PushFollow(FOLLOW_tableRow_in_table1476); tableRow100 = tableRow(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_tableRow.Add(tableRow100.Tree); - // SpecFlowLangParser.g:179:18: ( tableRow )+ + // SpecFlowLangParser.g:177:18: ( tableRow )+ int cnt45 = 0; do { @@ -4153,7 +4153,7 @@ public SpecFlowLangParser.table_return table() // throws RecognitionException [1 case 1 : // SpecFlowLangParser.g:0:0: tableRow { - PushFollow(FOLLOW_tableRow_in_table1480); + PushFollow(FOLLOW_tableRow_in_table1478); tableRow101 = tableRow(); state.followingStackPointer--; if (state.failed) return retval; @@ -4189,14 +4189,14 @@ public SpecFlowLangParser.table_return table() // throws RecognitionException [1 RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 180:9: -> ^( TABLE ^( HEADER tableRow ) ^( BODY ( tableRow )+ ) ) + // 178:9: -> ^( TABLE ^( HEADER tableRow ) ^( BODY ( tableRow )+ ) ) { - // SpecFlowLangParser.g:180:12: ^( TABLE ^( HEADER tableRow ) ^( BODY ( tableRow )+ ) ) + // SpecFlowLangParser.g:178:12: ^( TABLE ^( HEADER tableRow ) ^( BODY ( tableRow )+ ) ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(TABLE, "TABLE"), root_1); - // SpecFlowLangParser.g:180:20: ^( HEADER tableRow ) + // SpecFlowLangParser.g:178:20: ^( HEADER tableRow ) { object root_2 = (object)adaptor.GetNilNode(); root_2 = (object)adaptor.BecomeRoot((object)adaptor.Create(HEADER, "HEADER"), root_2); @@ -4205,7 +4205,7 @@ public SpecFlowLangParser.table_return table() // throws RecognitionException [1 adaptor.AddChild(root_1, root_2); } - // SpecFlowLangParser.g:180:39: ^( BODY ( tableRow )+ ) + // SpecFlowLangParser.g:178:39: ^( BODY ( tableRow )+ ) { object root_2 = (object)adaptor.GetNilNode(); root_2 = (object)adaptor.BecomeRoot((object)adaptor.Create(BODY, "BODY"), root_2); @@ -4263,7 +4263,7 @@ override public object Tree }; // $ANTLR start "tableRow" - // SpecFlowLangParser.g:183:1: tableRow : ( WS )? CELLSEP ( tableCell )+ ( WS )? newlineWithSpaces -> ^( ROW ( tableCell )+ ) ; + // SpecFlowLangParser.g:181:1: tableRow : ( WS )? CELLSEP ( tableCell )+ ( WS )? newlineWithSpaces -> ^( ROW ( tableCell )+ ) ; public SpecFlowLangParser.tableRow_return tableRow() // throws RecognitionException [1] { SpecFlowLangParser.tableRow_return retval = new SpecFlowLangParser.tableRow_return(); @@ -4288,10 +4288,10 @@ public SpecFlowLangParser.tableRow_return tableRow() // throws RecognitionExcept RewriteRuleSubtreeStream stream_newlineWithSpaces = new RewriteRuleSubtreeStream(adaptor,"rule newlineWithSpaces"); try { - // SpecFlowLangParser.g:184:5: ( ( WS )? CELLSEP ( tableCell )+ ( WS )? newlineWithSpaces -> ^( ROW ( tableCell )+ ) ) - // SpecFlowLangParser.g:184:9: ( WS )? CELLSEP ( tableCell )+ ( WS )? newlineWithSpaces + // SpecFlowLangParser.g:182:5: ( ( WS )? CELLSEP ( tableCell )+ ( WS )? newlineWithSpaces -> ^( ROW ( tableCell )+ ) ) + // SpecFlowLangParser.g:182:9: ( WS )? CELLSEP ( tableCell )+ ( WS )? newlineWithSpaces { - // SpecFlowLangParser.g:184:9: ( WS )? + // SpecFlowLangParser.g:182:9: ( WS )? int alt46 = 2; int LA46_0 = input.LA(1); @@ -4304,7 +4304,7 @@ public SpecFlowLangParser.tableRow_return tableRow() // throws RecognitionExcept case 1 : // SpecFlowLangParser.g:0:0: WS { - WS102=(IToken)Match(input,WS,FOLLOW_WS_in_tableRow1527); if (state.failed) return retval; + WS102=(IToken)Match(input,WS,FOLLOW_WS_in_tableRow1525); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS102); @@ -4313,10 +4313,10 @@ public SpecFlowLangParser.tableRow_return tableRow() // throws RecognitionExcept } - CELLSEP103=(IToken)Match(input,CELLSEP,FOLLOW_CELLSEP_in_tableRow1530); if (state.failed) return retval; + CELLSEP103=(IToken)Match(input,CELLSEP,FOLLOW_CELLSEP_in_tableRow1528); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_CELLSEP.Add(CELLSEP103); - // SpecFlowLangParser.g:184:21: ( tableCell )+ + // SpecFlowLangParser.g:182:21: ( tableCell )+ int cnt47 = 0; do { @@ -4345,7 +4345,7 @@ public SpecFlowLangParser.tableRow_return tableRow() // throws RecognitionExcept case 1 : // SpecFlowLangParser.g:0:0: tableCell { - PushFollow(FOLLOW_tableCell_in_tableRow1532); + PushFollow(FOLLOW_tableCell_in_tableRow1530); tableCell104 = tableCell(); state.followingStackPointer--; if (state.failed) return retval; @@ -4367,7 +4367,7 @@ public SpecFlowLangParser.tableRow_return tableRow() // throws RecognitionExcept loop47: ; // Stops C# compiler whinging that label 'loop47' has no statements - // SpecFlowLangParser.g:184:32: ( WS )? + // SpecFlowLangParser.g:182:32: ( WS )? int alt48 = 2; int LA48_0 = input.LA(1); @@ -4385,7 +4385,7 @@ public SpecFlowLangParser.tableRow_return tableRow() // throws RecognitionExcept case 1 : // SpecFlowLangParser.g:0:0: WS { - WS105=(IToken)Match(input,WS,FOLLOW_WS_in_tableRow1535); if (state.failed) return retval; + WS105=(IToken)Match(input,WS,FOLLOW_WS_in_tableRow1533); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS105); @@ -4394,7 +4394,7 @@ public SpecFlowLangParser.tableRow_return tableRow() // throws RecognitionExcept } - PushFollow(FOLLOW_newlineWithSpaces_in_tableRow1538); + PushFollow(FOLLOW_newlineWithSpaces_in_tableRow1536); newlineWithSpaces106 = newlineWithSpaces(); state.followingStackPointer--; if (state.failed) return retval; @@ -4413,9 +4413,9 @@ public SpecFlowLangParser.tableRow_return tableRow() // throws RecognitionExcept RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 185:9: -> ^( ROW ( tableCell )+ ) + // 183:9: -> ^( ROW ( tableCell )+ ) { - // SpecFlowLangParser.g:185:12: ^( ROW ( tableCell )+ ) + // SpecFlowLangParser.g:183:12: ^( ROW ( tableCell )+ ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(ROW, "ROW"), root_1); @@ -4470,7 +4470,7 @@ override public object Tree }; // $ANTLR start "tableCell" - // SpecFlowLangParser.g:188:1: tableCell : ( WS )? text ( WS )? CELLSEP -> ^( CELL text ) ; + // SpecFlowLangParser.g:186:1: tableCell : ( WS )? text ( WS )? CELLSEP -> ^( CELL text ) ; public SpecFlowLangParser.tableCell_return tableCell() // throws RecognitionException [1] { SpecFlowLangParser.tableCell_return retval = new SpecFlowLangParser.tableCell_return(); @@ -4492,10 +4492,10 @@ public SpecFlowLangParser.tableCell_return tableCell() // throws RecognitionExce RewriteRuleSubtreeStream stream_text = new RewriteRuleSubtreeStream(adaptor,"rule text"); try { - // SpecFlowLangParser.g:189:5: ( ( WS )? text ( WS )? CELLSEP -> ^( CELL text ) ) - // SpecFlowLangParser.g:189:9: ( WS )? text ( WS )? CELLSEP + // SpecFlowLangParser.g:187:5: ( ( WS )? text ( WS )? CELLSEP -> ^( CELL text ) ) + // SpecFlowLangParser.g:187:9: ( WS )? text ( WS )? CELLSEP { - // SpecFlowLangParser.g:189:9: ( WS )? + // SpecFlowLangParser.g:187:9: ( WS )? int alt49 = 2; int LA49_0 = input.LA(1); @@ -4508,7 +4508,7 @@ public SpecFlowLangParser.tableCell_return tableCell() // throws RecognitionExce case 1 : // SpecFlowLangParser.g:0:0: WS { - WS107=(IToken)Match(input,WS,FOLLOW_WS_in_tableCell1574); if (state.failed) return retval; + WS107=(IToken)Match(input,WS,FOLLOW_WS_in_tableCell1572); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS107); @@ -4517,12 +4517,12 @@ public SpecFlowLangParser.tableCell_return tableCell() // throws RecognitionExce } - PushFollow(FOLLOW_text_in_tableCell1577); + PushFollow(FOLLOW_text_in_tableCell1575); text108 = text(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_text.Add(text108.Tree); - // SpecFlowLangParser.g:189:18: ( WS )? + // SpecFlowLangParser.g:187:18: ( WS )? int alt50 = 2; int LA50_0 = input.LA(1); @@ -4535,7 +4535,7 @@ public SpecFlowLangParser.tableCell_return tableCell() // throws RecognitionExce case 1 : // SpecFlowLangParser.g:0:0: WS { - WS109=(IToken)Match(input,WS,FOLLOW_WS_in_tableCell1579); if (state.failed) return retval; + WS109=(IToken)Match(input,WS,FOLLOW_WS_in_tableCell1577); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WS.Add(WS109); @@ -4544,7 +4544,7 @@ public SpecFlowLangParser.tableCell_return tableCell() // throws RecognitionExce } - CELLSEP110=(IToken)Match(input,CELLSEP,FOLLOW_CELLSEP_in_tableCell1582); if (state.failed) return retval; + CELLSEP110=(IToken)Match(input,CELLSEP,FOLLOW_CELLSEP_in_tableCell1580); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_CELLSEP.Add(CELLSEP110); @@ -4561,9 +4561,9 @@ public SpecFlowLangParser.tableCell_return tableCell() // throws RecognitionExce RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 190:9: -> ^( CELL text ) + // 188:9: -> ^( CELL text ) { - // SpecFlowLangParser.g:190:12: ^( CELL text ) + // SpecFlowLangParser.g:188:12: ^( CELL text ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(CELL, "CELL"), root_1); @@ -4610,7 +4610,7 @@ override public object Tree }; // $ANTLR start "descriptionLineText" - // SpecFlowLangParser.g:193:1: descriptionLineText : WORDCHAR ( textRest )* -> ^( TEXT WORDCHAR ( textRest )* ) ; + // SpecFlowLangParser.g:191:1: descriptionLineText : WORDCHAR ( textRest )* -> ^( TEXT WORDCHAR ( textRest )* ) ; public SpecFlowLangParser.descriptionLineText_return descriptionLineText() // throws RecognitionException [1] { SpecFlowLangParser.descriptionLineText_return retval = new SpecFlowLangParser.descriptionLineText_return(); @@ -4627,13 +4627,13 @@ public SpecFlowLangParser.descriptionLineText_return descriptionLineText() // th RewriteRuleSubtreeStream stream_textRest = new RewriteRuleSubtreeStream(adaptor,"rule textRest"); try { - // SpecFlowLangParser.g:194:5: ( WORDCHAR ( textRest )* -> ^( TEXT WORDCHAR ( textRest )* ) ) - // SpecFlowLangParser.g:194:9: WORDCHAR ( textRest )* + // SpecFlowLangParser.g:192:5: ( WORDCHAR ( textRest )* -> ^( TEXT WORDCHAR ( textRest )* ) ) + // SpecFlowLangParser.g:192:9: WORDCHAR ( textRest )* { - WORDCHAR111=(IToken)Match(input,WORDCHAR,FOLLOW_WORDCHAR_in_descriptionLineText1617); if (state.failed) return retval; + WORDCHAR111=(IToken)Match(input,WORDCHAR,FOLLOW_WORDCHAR_in_descriptionLineText1615); if (state.failed) return retval; if ( (state.backtracking==0) ) stream_WORDCHAR.Add(WORDCHAR111); - // SpecFlowLangParser.g:194:18: ( textRest )* + // SpecFlowLangParser.g:192:18: ( textRest )* do { int alt51 = 2; @@ -4661,7 +4661,7 @@ public SpecFlowLangParser.descriptionLineText_return descriptionLineText() // th case 1 : // SpecFlowLangParser.g:0:0: textRest { - PushFollow(FOLLOW_textRest_in_descriptionLineText1619); + PushFollow(FOLLOW_textRest_in_descriptionLineText1617); textRest112 = textRest(); state.followingStackPointer--; if (state.failed) return retval; @@ -4692,15 +4692,15 @@ public SpecFlowLangParser.descriptionLineText_return descriptionLineText() // th RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 195:9: -> ^( TEXT WORDCHAR ( textRest )* ) + // 193:9: -> ^( TEXT WORDCHAR ( textRest )* ) { - // SpecFlowLangParser.g:195:12: ^( TEXT WORDCHAR ( textRest )* ) + // SpecFlowLangParser.g:193:12: ^( TEXT WORDCHAR ( textRest )* ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(TEXT, "TEXT"), root_1); adaptor.AddChild(root_1, stream_WORDCHAR.NextNode()); - // SpecFlowLangParser.g:195:28: ( textRest )* + // SpecFlowLangParser.g:193:28: ( textRest )* while ( stream_textRest.HasNext() ) { adaptor.AddChild(root_1, stream_textRest.NextTree()); @@ -4748,7 +4748,7 @@ override public object Tree }; // $ANTLR start "text" - // SpecFlowLangParser.g:198:1: text : wordchar ( textRest )* -> ^( TEXT wordchar ( textRest )* ) ; + // SpecFlowLangParser.g:196:1: text : wordchar ( textRest )* -> ^( TEXT wordchar ( textRest )* ) ; public SpecFlowLangParser.text_return text() // throws RecognitionException [1] { SpecFlowLangParser.text_return retval = new SpecFlowLangParser.text_return(); @@ -4765,15 +4765,15 @@ public SpecFlowLangParser.text_return text() // throws RecognitionException [1] RewriteRuleSubtreeStream stream_wordchar = new RewriteRuleSubtreeStream(adaptor,"rule wordchar"); try { - // SpecFlowLangParser.g:199:5: ( wordchar ( textRest )* -> ^( TEXT wordchar ( textRest )* ) ) - // SpecFlowLangParser.g:199:9: wordchar ( textRest )* + // SpecFlowLangParser.g:197:5: ( wordchar ( textRest )* -> ^( TEXT wordchar ( textRest )* ) ) + // SpecFlowLangParser.g:197:9: wordchar ( textRest )* { - PushFollow(FOLLOW_wordchar_in_text1658); + PushFollow(FOLLOW_wordchar_in_text1656); wordchar113 = wordchar(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_wordchar.Add(wordchar113.Tree); - // SpecFlowLangParser.g:199:18: ( textRest )* + // SpecFlowLangParser.g:197:18: ( textRest )* do { int alt52 = 2; @@ -4801,7 +4801,7 @@ public SpecFlowLangParser.text_return text() // throws RecognitionException [1] case 1 : // SpecFlowLangParser.g:0:0: textRest { - PushFollow(FOLLOW_textRest_in_text1660); + PushFollow(FOLLOW_textRest_in_text1658); textRest114 = textRest(); state.followingStackPointer--; if (state.failed) return retval; @@ -4832,15 +4832,15 @@ public SpecFlowLangParser.text_return text() // throws RecognitionException [1] RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 200:9: -> ^( TEXT wordchar ( textRest )* ) + // 198:9: -> ^( TEXT wordchar ( textRest )* ) { - // SpecFlowLangParser.g:200:12: ^( TEXT wordchar ( textRest )* ) + // SpecFlowLangParser.g:198:12: ^( TEXT wordchar ( textRest )* ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(TEXT, "TEXT"), root_1); adaptor.AddChild(root_1, stream_wordchar.NextTree()); - // SpecFlowLangParser.g:200:28: ( textRest )* + // SpecFlowLangParser.g:198:28: ( textRest )* while ( stream_textRest.HasNext() ) { adaptor.AddChild(root_1, stream_textRest.NextTree()); @@ -4888,7 +4888,7 @@ override public object Tree }; // $ANTLR start "textRest" - // SpecFlowLangParser.g:202:1: textRest : ( WS textRest | wordchar ); + // SpecFlowLangParser.g:200:1: textRest : ( WS textRest | wordchar ); public SpecFlowLangParser.textRest_return textRest() // throws RecognitionException [1] { SpecFlowLangParser.textRest_return retval = new SpecFlowLangParser.textRest_return(); @@ -4906,7 +4906,7 @@ public SpecFlowLangParser.textRest_return textRest() // throws RecognitionExcept try { - // SpecFlowLangParser.g:203:5: ( WS textRest | wordchar ) + // SpecFlowLangParser.g:201:5: ( WS textRest | wordchar ) int alt53 = 2; int LA53_0 = input.LA(1); @@ -4929,16 +4929,16 @@ public SpecFlowLangParser.textRest_return textRest() // throws RecognitionExcept switch (alt53) { case 1 : - // SpecFlowLangParser.g:203:9: WS textRest + // SpecFlowLangParser.g:201:9: WS textRest { root_0 = (object)adaptor.GetNilNode(); - WS115=(IToken)Match(input,WS,FOLLOW_WS_in_textRest1698); if (state.failed) return retval; + WS115=(IToken)Match(input,WS,FOLLOW_WS_in_textRest1696); if (state.failed) return retval; if ( state.backtracking == 0 ) {WS115_tree = (object)adaptor.Create(WS115); adaptor.AddChild(root_0, WS115_tree); } - PushFollow(FOLLOW_textRest_in_textRest1700); + PushFollow(FOLLOW_textRest_in_textRest1698); textRest116 = textRest(); state.followingStackPointer--; if (state.failed) return retval; @@ -4947,11 +4947,11 @@ public SpecFlowLangParser.textRest_return textRest() // throws RecognitionExcept } break; case 2 : - // SpecFlowLangParser.g:204:9: wordchar + // SpecFlowLangParser.g:202:9: wordchar { root_0 = (object)adaptor.GetNilNode(); - PushFollow(FOLLOW_wordchar_in_textRest1710); + PushFollow(FOLLOW_wordchar_in_textRest1708); wordchar117 = wordchar(); state.followingStackPointer--; if (state.failed) return retval; @@ -4993,7 +4993,7 @@ override public object Tree }; // $ANTLR start "title" - // SpecFlowLangParser.g:207:1: title : wordchar ( titleRest )* -> ^( TEXT wordchar ( titleRest )* ) ; + // SpecFlowLangParser.g:205:1: title : wordchar ( titleRest )* -> ^( TEXT wordchar ( titleRest )* ) ; public SpecFlowLangParser.title_return title() // throws RecognitionException [1] { SpecFlowLangParser.title_return retval = new SpecFlowLangParser.title_return(); @@ -5010,15 +5010,15 @@ public SpecFlowLangParser.title_return title() // throws RecognitionException [1 RewriteRuleSubtreeStream stream_titleRest = new RewriteRuleSubtreeStream(adaptor,"rule titleRest"); try { - // SpecFlowLangParser.g:208:5: ( wordchar ( titleRest )* -> ^( TEXT wordchar ( titleRest )* ) ) - // SpecFlowLangParser.g:208:9: wordchar ( titleRest )* + // SpecFlowLangParser.g:206:5: ( wordchar ( titleRest )* -> ^( TEXT wordchar ( titleRest )* ) ) + // SpecFlowLangParser.g:206:9: wordchar ( titleRest )* { - PushFollow(FOLLOW_wordchar_in_title1729); + PushFollow(FOLLOW_wordchar_in_title1727); wordchar118 = wordchar(); state.followingStackPointer--; if (state.failed) return retval; if ( (state.backtracking==0) ) stream_wordchar.Add(wordchar118.Tree); - // SpecFlowLangParser.g:208:18: ( titleRest )* + // SpecFlowLangParser.g:206:18: ( titleRest )* do { int alt54 = 2; @@ -5028,7 +5028,7 @@ public SpecFlowLangParser.title_return title() // throws RecognitionException [1 case 1 : // SpecFlowLangParser.g:0:0: titleRest { - PushFollow(FOLLOW_titleRest_in_title1731); + PushFollow(FOLLOW_titleRest_in_title1729); titleRest119 = titleRest(); state.followingStackPointer--; if (state.failed) return retval; @@ -5059,15 +5059,15 @@ public SpecFlowLangParser.title_return title() // throws RecognitionException [1 RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null); root_0 = (object)adaptor.GetNilNode(); - // 209:9: -> ^( TEXT wordchar ( titleRest )* ) + // 207:9: -> ^( TEXT wordchar ( titleRest )* ) { - // SpecFlowLangParser.g:209:12: ^( TEXT wordchar ( titleRest )* ) + // SpecFlowLangParser.g:207:12: ^( TEXT wordchar ( titleRest )* ) { object root_1 = (object)adaptor.GetNilNode(); root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(TEXT, "TEXT"), root_1); adaptor.AddChild(root_1, stream_wordchar.NextTree()); - // SpecFlowLangParser.g:209:28: ( titleRest )* + // SpecFlowLangParser.g:207:28: ( titleRest )* while ( stream_titleRest.HasNext() ) { adaptor.AddChild(root_1, stream_titleRest.NextTree()); @@ -5115,7 +5115,7 @@ override public object Tree }; // $ANTLR start "titleRest" - // SpecFlowLangParser.g:212:1: titleRest : ( WS titleRest | NEWLINE titleRest | wordchar ); + // SpecFlowLangParser.g:210:1: titleRest : ( WS titleRest | NEWLINE titleRest | wordchar ); public SpecFlowLangParser.titleRest_return titleRest() // throws RecognitionException [1] { SpecFlowLangParser.titleRest_return retval = new SpecFlowLangParser.titleRest_return(); @@ -5137,7 +5137,7 @@ public SpecFlowLangParser.titleRest_return titleRest() // throws RecognitionExce try { - // SpecFlowLangParser.g:213:5: ( WS titleRest | NEWLINE titleRest | wordchar ) + // SpecFlowLangParser.g:211:5: ( WS titleRest | NEWLINE titleRest | wordchar ) int alt55 = 3; switch ( input.LA(1) ) { @@ -5168,16 +5168,16 @@ public SpecFlowLangParser.titleRest_return titleRest() // throws RecognitionExce switch (alt55) { case 1 : - // SpecFlowLangParser.g:213:9: WS titleRest + // SpecFlowLangParser.g:211:9: WS titleRest { root_0 = (object)adaptor.GetNilNode(); - WS120=(IToken)Match(input,WS,FOLLOW_WS_in_titleRest1770); if (state.failed) return retval; + WS120=(IToken)Match(input,WS,FOLLOW_WS_in_titleRest1768); if (state.failed) return retval; if ( state.backtracking == 0 ) {WS120_tree = (object)adaptor.Create(WS120); adaptor.AddChild(root_0, WS120_tree); } - PushFollow(FOLLOW_titleRest_in_titleRest1772); + PushFollow(FOLLOW_titleRest_in_titleRest1770); titleRest121 = titleRest(); state.followingStackPointer--; if (state.failed) return retval; @@ -5186,16 +5186,16 @@ public SpecFlowLangParser.titleRest_return titleRest() // throws RecognitionExce } break; case 2 : - // SpecFlowLangParser.g:214:9: NEWLINE titleRest + // SpecFlowLangParser.g:212:9: NEWLINE titleRest { root_0 = (object)adaptor.GetNilNode(); - NEWLINE122=(IToken)Match(input,NEWLINE,FOLLOW_NEWLINE_in_titleRest1782); if (state.failed) return retval; + NEWLINE122=(IToken)Match(input,NEWLINE,FOLLOW_NEWLINE_in_titleRest1780); if (state.failed) return retval; if ( state.backtracking == 0 ) {NEWLINE122_tree = (object)adaptor.Create(NEWLINE122); adaptor.AddChild(root_0, NEWLINE122_tree); } - PushFollow(FOLLOW_titleRest_in_titleRest1784); + PushFollow(FOLLOW_titleRest_in_titleRest1782); titleRest123 = titleRest(); state.followingStackPointer--; if (state.failed) return retval; @@ -5204,11 +5204,11 @@ public SpecFlowLangParser.titleRest_return titleRest() // throws RecognitionExce } break; case 3 : - // SpecFlowLangParser.g:215:9: wordchar + // SpecFlowLangParser.g:213:9: wordchar { root_0 = (object)adaptor.GetNilNode(); - PushFollow(FOLLOW_wordchar_in_titleRest1794); + PushFollow(FOLLOW_wordchar_in_titleRest1792); wordchar124 = wordchar(); state.followingStackPointer--; if (state.failed) return retval; @@ -5250,7 +5250,7 @@ override public object Tree }; // $ANTLR start "titleRestLine" - // SpecFlowLangParser.g:218:1: titleRestLine : ( NEWLINE titleRestLine | WS titleRestLine | WORDCHAR ); + // SpecFlowLangParser.g:216:1: titleRestLine : ( NEWLINE titleRestLine | WS titleRestLine | WORDCHAR ); public SpecFlowLangParser.titleRestLine_return titleRestLine() // throws RecognitionException [1] { SpecFlowLangParser.titleRestLine_return retval = new SpecFlowLangParser.titleRestLine_return(); @@ -5272,7 +5272,7 @@ public SpecFlowLangParser.titleRestLine_return titleRestLine() // throws Recogni try { - // SpecFlowLangParser.g:219:5: ( NEWLINE titleRestLine | WS titleRestLine | WORDCHAR ) + // SpecFlowLangParser.g:217:5: ( NEWLINE titleRestLine | WS titleRestLine | WORDCHAR ) int alt56 = 3; switch ( input.LA(1) ) { @@ -5302,16 +5302,16 @@ public SpecFlowLangParser.titleRestLine_return titleRestLine() // throws Recogni switch (alt56) { case 1 : - // SpecFlowLangParser.g:219:9: NEWLINE titleRestLine + // SpecFlowLangParser.g:217:9: NEWLINE titleRestLine { root_0 = (object)adaptor.GetNilNode(); - NEWLINE125=(IToken)Match(input,NEWLINE,FOLLOW_NEWLINE_in_titleRestLine1813); if (state.failed) return retval; + NEWLINE125=(IToken)Match(input,NEWLINE,FOLLOW_NEWLINE_in_titleRestLine1811); if (state.failed) return retval; if ( state.backtracking == 0 ) {NEWLINE125_tree = (object)adaptor.Create(NEWLINE125); adaptor.AddChild(root_0, NEWLINE125_tree); } - PushFollow(FOLLOW_titleRestLine_in_titleRestLine1815); + PushFollow(FOLLOW_titleRestLine_in_titleRestLine1813); titleRestLine126 = titleRestLine(); state.followingStackPointer--; if (state.failed) return retval; @@ -5320,16 +5320,16 @@ public SpecFlowLangParser.titleRestLine_return titleRestLine() // throws Recogni } break; case 2 : - // SpecFlowLangParser.g:220:9: WS titleRestLine + // SpecFlowLangParser.g:218:9: WS titleRestLine { root_0 = (object)adaptor.GetNilNode(); - WS127=(IToken)Match(input,WS,FOLLOW_WS_in_titleRestLine1825); if (state.failed) return retval; + WS127=(IToken)Match(input,WS,FOLLOW_WS_in_titleRestLine1823); if (state.failed) return retval; if ( state.backtracking == 0 ) {WS127_tree = (object)adaptor.Create(WS127); adaptor.AddChild(root_0, WS127_tree); } - PushFollow(FOLLOW_titleRestLine_in_titleRestLine1827); + PushFollow(FOLLOW_titleRestLine_in_titleRestLine1825); titleRestLine128 = titleRestLine(); state.followingStackPointer--; if (state.failed) return retval; @@ -5338,11 +5338,11 @@ public SpecFlowLangParser.titleRestLine_return titleRestLine() // throws Recogni } break; case 3 : - // SpecFlowLangParser.g:221:9: WORDCHAR + // SpecFlowLangParser.g:219:9: WORDCHAR { root_0 = (object)adaptor.GetNilNode(); - WORDCHAR129=(IToken)Match(input,WORDCHAR,FOLLOW_WORDCHAR_in_titleRestLine1837); if (state.failed) return retval; + WORDCHAR129=(IToken)Match(input,WORDCHAR,FOLLOW_WORDCHAR_in_titleRestLine1835); if (state.failed) return retval; if ( state.backtracking == 0 ) {WORDCHAR129_tree = (object)adaptor.Create(WORDCHAR129); adaptor.AddChild(root_0, WORDCHAR129_tree); @@ -5384,7 +5384,7 @@ override public object Tree }; // $ANTLR start "wordchar" - // SpecFlowLangParser.g:224:1: wordchar : ( WORDCHAR | AT ); + // SpecFlowLangParser.g:222:1: wordchar : ( WORDCHAR | AT ); public SpecFlowLangParser.wordchar_return wordchar() // throws RecognitionException [1] { SpecFlowLangParser.wordchar_return retval = new SpecFlowLangParser.wordchar_return(); @@ -5398,7 +5398,7 @@ public SpecFlowLangParser.wordchar_return wordchar() // throws RecognitionExcept try { - // SpecFlowLangParser.g:225:5: ( WORDCHAR | AT ) + // SpecFlowLangParser.g:223:5: ( WORDCHAR | AT ) // SpecFlowLangParser.g: { root_0 = (object)adaptor.GetNilNode(); @@ -5452,7 +5452,7 @@ override public object Tree }; // $ANTLR start "newlineWithSpaces" - // SpecFlowLangParser.g:229:1: newlineWithSpaces : ( WS )? NEWLINE ( ( WS )? NEWLINE )* ; + // SpecFlowLangParser.g:227:1: newlineWithSpaces : ( WS )? NEWLINE ( ( WS )? NEWLINE )* ; public SpecFlowLangParser.newlineWithSpaces_return newlineWithSpaces() // throws RecognitionException [1] { SpecFlowLangParser.newlineWithSpaces_return retval = new SpecFlowLangParser.newlineWithSpaces_return(); @@ -5472,12 +5472,12 @@ public SpecFlowLangParser.newlineWithSpaces_return newlineWithSpaces() // throws try { - // SpecFlowLangParser.g:230:5: ( ( WS )? NEWLINE ( ( WS )? NEWLINE )* ) - // SpecFlowLangParser.g:230:9: ( WS )? NEWLINE ( ( WS )? NEWLINE )* + // SpecFlowLangParser.g:228:5: ( ( WS )? NEWLINE ( ( WS )? NEWLINE )* ) + // SpecFlowLangParser.g:228:9: ( WS )? NEWLINE ( ( WS )? NEWLINE )* { root_0 = (object)adaptor.GetNilNode(); - // SpecFlowLangParser.g:230:9: ( WS )? + // SpecFlowLangParser.g:228:9: ( WS )? int alt57 = 2; int LA57_0 = input.LA(1); @@ -5490,7 +5490,7 @@ public SpecFlowLangParser.newlineWithSpaces_return newlineWithSpaces() // throws case 1 : // SpecFlowLangParser.g:0:0: WS { - WS131=(IToken)Match(input,WS,FOLLOW_WS_in_newlineWithSpaces1885); if (state.failed) return retval; + WS131=(IToken)Match(input,WS,FOLLOW_WS_in_newlineWithSpaces1883); if (state.failed) return retval; if ( state.backtracking == 0 ) {WS131_tree = (object)adaptor.Create(WS131); adaptor.AddChild(root_0, WS131_tree); @@ -5501,12 +5501,12 @@ public SpecFlowLangParser.newlineWithSpaces_return newlineWithSpaces() // throws } - NEWLINE132=(IToken)Match(input,NEWLINE,FOLLOW_NEWLINE_in_newlineWithSpaces1888); if (state.failed) return retval; + NEWLINE132=(IToken)Match(input,NEWLINE,FOLLOW_NEWLINE_in_newlineWithSpaces1886); if (state.failed) return retval; if ( state.backtracking == 0 ) {NEWLINE132_tree = (object)adaptor.Create(NEWLINE132); adaptor.AddChild(root_0, NEWLINE132_tree); } - // SpecFlowLangParser.g:230:21: ( ( WS )? NEWLINE )* + // SpecFlowLangParser.g:228:21: ( ( WS )? NEWLINE )* do { int alt59 = 2; @@ -5532,9 +5532,9 @@ public SpecFlowLangParser.newlineWithSpaces_return newlineWithSpaces() // throws switch (alt59) { case 1 : - // SpecFlowLangParser.g:230:22: ( WS )? NEWLINE + // SpecFlowLangParser.g:228:22: ( WS )? NEWLINE { - // SpecFlowLangParser.g:230:22: ( WS )? + // SpecFlowLangParser.g:228:22: ( WS )? int alt58 = 2; int LA58_0 = input.LA(1); @@ -5547,7 +5547,7 @@ public SpecFlowLangParser.newlineWithSpaces_return newlineWithSpaces() // throws case 1 : // SpecFlowLangParser.g:0:0: WS { - WS133=(IToken)Match(input,WS,FOLLOW_WS_in_newlineWithSpaces1891); if (state.failed) return retval; + WS133=(IToken)Match(input,WS,FOLLOW_WS_in_newlineWithSpaces1889); if (state.failed) return retval; if ( state.backtracking == 0 ) {WS133_tree = (object)adaptor.Create(WS133); adaptor.AddChild(root_0, WS133_tree); @@ -5558,7 +5558,7 @@ public SpecFlowLangParser.newlineWithSpaces_return newlineWithSpaces() // throws } - NEWLINE134=(IToken)Match(input,NEWLINE,FOLLOW_NEWLINE_in_newlineWithSpaces1894); if (state.failed) return retval; + NEWLINE134=(IToken)Match(input,NEWLINE,FOLLOW_NEWLINE_in_newlineWithSpaces1892); if (state.failed) return retval; if ( state.backtracking == 0 ) {NEWLINE134_tree = (object)adaptor.Create(NEWLINE134); adaptor.AddChild(root_0, NEWLINE134_tree); @@ -5601,10 +5601,10 @@ public SpecFlowLangParser.newlineWithSpaces_return newlineWithSpaces() // throws // $ANTLR start "synpred25_SpecFlowLangParser" public void synpred25_SpecFlowLangParser_fragment() { - // SpecFlowLangParser.g:110:24: ( WS ) - // SpecFlowLangParser.g:110:24: WS + // SpecFlowLangParser.g:108:24: ( WS ) + // SpecFlowLangParser.g:108:24: WS { - Match(input,WS,FOLLOW_WS_in_synpred25_SpecFlowLangParser865); if (state.failed) return ; + Match(input,WS,FOLLOW_WS_in_synpred25_SpecFlowLangParser863); if (state.failed) return ; } } @@ -5612,10 +5612,10 @@ public void synpred25_SpecFlowLangParser_fragment() { // $ANTLR start "synpred43_SpecFlowLangParser" public void synpred43_SpecFlowLangParser_fragment() { - // SpecFlowLangParser.g:165:20: ( WS ) - // SpecFlowLangParser.g:165:20: WS + // SpecFlowLangParser.g:163:20: ( WS ) + // SpecFlowLangParser.g:163:20: WS { - Match(input,WS,FOLLOW_WS_in_synpred43_SpecFlowLangParser1361); if (state.failed) return ; + Match(input,WS,FOLLOW_WS_in_synpred43_SpecFlowLangParser1359); if (state.failed) return ; } } @@ -5623,10 +5623,10 @@ public void synpred43_SpecFlowLangParser_fragment() { // $ANTLR start "synpred50_SpecFlowLangParser" public void synpred50_SpecFlowLangParser_fragment() { - // SpecFlowLangParser.g:184:32: ( WS ) - // SpecFlowLangParser.g:184:32: WS + // SpecFlowLangParser.g:182:32: ( WS ) + // SpecFlowLangParser.g:182:32: WS { - Match(input,WS,FOLLOW_WS_in_synpred50_SpecFlowLangParser1535); if (state.failed) return ; + Match(input,WS,FOLLOW_WS_in_synpred50_SpecFlowLangParser1533); if (state.failed) return ; } } @@ -5634,10 +5634,10 @@ public void synpred50_SpecFlowLangParser_fragment() { // $ANTLR start "synpred56_SpecFlowLangParser" public void synpred56_SpecFlowLangParser_fragment() { - // SpecFlowLangParser.g:208:18: ( titleRest ) - // SpecFlowLangParser.g:208:18: titleRest + // SpecFlowLangParser.g:206:18: ( titleRest ) + // SpecFlowLangParser.g:206:18: titleRest { - PushFollow(FOLLOW_titleRest_in_synpred56_SpecFlowLangParser1731); + PushFollow(FOLLOW_titleRest_in_synpred56_SpecFlowLangParser1729); titleRest(); state.followingStackPointer--; if (state.failed) return ; @@ -5785,7 +5785,7 @@ public DFA16(BaseRecognizer recognizer) override public string Description { - get { return "83:1: scenarioKind : ( scenarioOutline | scenario );"; } + get { return "81:1: scenarioKind : ( scenarioOutline | scenario );"; } } } @@ -5940,7 +5940,7 @@ public DFA54(BaseRecognizer recognizer) override public string Description { - get { return "()* loopback of 208:18: ( titleRest )*"; } + get { return "()* loopback of 206:18: ( titleRest )*"; } } } @@ -6441,144 +6441,144 @@ protected internal int DFA54_SpecialStateTransition(DFA dfa, int s, IIntStream _ } - public static readonly BitSet FOLLOW_newlineWithSpaces_in_feature254 = new BitSet(new ulong[]{0x0000000000500100UL}); - public static readonly BitSet FOLLOW_tags_in_feature265 = new BitSet(new ulong[]{0x0000000000400100UL}); - public static readonly BitSet FOLLOW_WS_in_feature276 = new BitSet(new ulong[]{0x0000000000000100UL}); - public static readonly BitSet FOLLOW_T_FEATURE_in_feature279 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_WS_in_feature281 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_text_in_feature284 = new BitSet(new ulong[]{0x0000000000C00000UL}); - public static readonly BitSet FOLLOW_newlineWithSpaces_in_feature286 = new BitSet(new ulong[]{0x0000000001500E00UL}); - public static readonly BitSet FOLLOW_descriptionLine_in_feature296 = new BitSet(new ulong[]{0x0000000001500E00UL}); - public static readonly BitSet FOLLOW_background_in_feature307 = new BitSet(new ulong[]{0x0000000000500C00UL}); - public static readonly BitSet FOLLOW_scenarioKind_in_feature318 = new BitSet(new ulong[]{0x0000000000500C00UL}); - public static readonly BitSet FOLLOW_WS_in_feature321 = new BitSet(new ulong[]{0x0000000000000000UL}); - public static readonly BitSet FOLLOW_EOF_in_feature324 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WS_in_tags401 = new BitSet(new ulong[]{0x0000000000500000UL}); - public static readonly BitSet FOLLOW_tag_in_tags404 = new BitSet(new ulong[]{0x0000000000500002UL}); - public static readonly BitSet FOLLOW_AT_in_tag441 = new BitSet(new ulong[]{0x0000000001000000UL}); - public static readonly BitSet FOLLOW_word_in_tag443 = new BitSet(new ulong[]{0x0000000000C00000UL}); - public static readonly BitSet FOLLOW_newlineWithSpaces_in_tag446 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WS_in_tag448 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WORDCHAR_in_word484 = new BitSet(new ulong[]{0x0000000001000002UL}); - public static readonly BitSet FOLLOW_WS_in_descriptionLine521 = new BitSet(new ulong[]{0x0000000001400000UL}); - public static readonly BitSet FOLLOW_descriptionLineText_in_descriptionLine524 = new BitSet(new ulong[]{0x0000000000C00000UL}); - public static readonly BitSet FOLLOW_newlineWithSpaces_in_descriptionLine526 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WS_in_background561 = new BitSet(new ulong[]{0x0000000000000200UL}); - public static readonly BitSet FOLLOW_T_BACKGROUND_in_background564 = new BitSet(new ulong[]{0x0000000000C00000UL}); - public static readonly BitSet FOLLOW_WS_in_background576 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_title_in_background578 = new BitSet(new ulong[]{0x0000000000C00000UL}); - public static readonly BitSet FOLLOW_newlineWithSpaces_in_background591 = new BitSet(new ulong[]{0x0000000000402000UL}); - public static readonly BitSet FOLLOW_givens_in_background593 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_scenarioOutline_in_scenarioKind631 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_scenario_in_scenarioKind642 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_tags_in_scenario661 = new BitSet(new ulong[]{0x0000000000400400UL}); - public static readonly BitSet FOLLOW_WS_in_scenario664 = new BitSet(new ulong[]{0x0000000000000400UL}); - public static readonly BitSet FOLLOW_T_SCENARIO_in_scenario667 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_WS_in_scenario669 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_title_in_scenario681 = new BitSet(new ulong[]{0x0000000000C00000UL}); - public static readonly BitSet FOLLOW_newlineWithSpaces_in_scenario683 = new BitSet(new ulong[]{0x000000000040E000UL}); - public static readonly BitSet FOLLOW_steps_in_scenario694 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_tags_in_scenarioOutline740 = new BitSet(new ulong[]{0x0000000000400800UL}); - public static readonly BitSet FOLLOW_WS_in_scenarioOutline743 = new BitSet(new ulong[]{0x0000000000000800UL}); - public static readonly BitSet FOLLOW_T_SCENARIO_OUTLINE_in_scenarioOutline746 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_WS_in_scenarioOutline748 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_title_in_scenarioOutline759 = new BitSet(new ulong[]{0x0000000000C00000UL}); - public static readonly BitSet FOLLOW_newlineWithSpaces_in_scenarioOutline761 = new BitSet(new ulong[]{0x000000000040E000UL}); - public static readonly BitSet FOLLOW_steps_in_scenarioOutline771 = new BitSet(new ulong[]{0x0000000000401000UL}); - public static readonly BitSet FOLLOW_examples_in_scenarioOutline781 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_exampleSet_in_examples823 = new BitSet(new ulong[]{0x0000000000401002UL}); - public static readonly BitSet FOLLOW_WS_in_exampleSet860 = new BitSet(new ulong[]{0x0000000000001000UL}); - public static readonly BitSet FOLLOW_T_EXAMPLES_in_exampleSet863 = new BitSet(new ulong[]{0x0000000001D00000UL}); - public static readonly BitSet FOLLOW_WS_in_exampleSet865 = new BitSet(new ulong[]{0x0000000001D00000UL}); - public static readonly BitSet FOLLOW_text_in_exampleSet876 = new BitSet(new ulong[]{0x0000000000C00000UL}); - public static readonly BitSet FOLLOW_newlineWithSpaces_in_exampleSet879 = new BitSet(new ulong[]{0x0000000000480000UL}); - public static readonly BitSet FOLLOW_table_in_exampleSet881 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_firstStep_in_steps919 = new BitSet(new ulong[]{0x000000000043E002UL}); - public static readonly BitSet FOLLOW_nextStep_in_steps921 = new BitSet(new ulong[]{0x000000000043E002UL}); - public static readonly BitSet FOLLOW_firstGiven_in_firstStep954 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_firstWhen_in_firstStep963 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_firstThen_in_firstStep972 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_firstStep_in_nextStep994 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_firstAnd_in_nextStep1003 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_firstBut_in_nextStep1012 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WS_in_firstAnd1035 = new BitSet(new ulong[]{0x0000000000010000UL}); - public static readonly BitSet FOLLOW_T_AND_in_firstAnd1038 = new BitSet(new ulong[]{0x0000000000400000UL}); - public static readonly BitSet FOLLOW_WS_in_firstAnd1040 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_sentenceEnd_in_firstAnd1042 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WS_in_firstBut1077 = new BitSet(new ulong[]{0x0000000000020000UL}); - public static readonly BitSet FOLLOW_T_BUT_in_firstBut1080 = new BitSet(new ulong[]{0x0000000000400000UL}); - public static readonly BitSet FOLLOW_WS_in_firstBut1082 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_sentenceEnd_in_firstBut1084 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_firstGiven_in_givens1119 = new BitSet(new ulong[]{0x000000000043E002UL}); - public static readonly BitSet FOLLOW_nextStep_in_givens1121 = new BitSet(new ulong[]{0x000000000043E002UL}); - public static readonly BitSet FOLLOW_WS_in_firstGiven1159 = new BitSet(new ulong[]{0x0000000000002000UL}); - public static readonly BitSet FOLLOW_T_GIVEN_in_firstGiven1162 = new BitSet(new ulong[]{0x0000000000400000UL}); - public static readonly BitSet FOLLOW_WS_in_firstGiven1164 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_sentenceEnd_in_firstGiven1166 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WS_in_firstWhen1200 = new BitSet(new ulong[]{0x0000000000004000UL}); - public static readonly BitSet FOLLOW_T_WHEN_in_firstWhen1203 = new BitSet(new ulong[]{0x0000000000400000UL}); - public static readonly BitSet FOLLOW_WS_in_firstWhen1205 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_sentenceEnd_in_firstWhen1207 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WS_in_firstThen1241 = new BitSet(new ulong[]{0x0000000000008000UL}); - public static readonly BitSet FOLLOW_T_THEN_in_firstThen1244 = new BitSet(new ulong[]{0x0000000000400000UL}); - public static readonly BitSet FOLLOW_WS_in_firstThen1246 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_sentenceEnd_in_firstThen1248 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_text_in_sentenceEnd1283 = new BitSet(new ulong[]{0x0000000000C00000UL}); - public static readonly BitSet FOLLOW_newlineWithSpaces_in_sentenceEnd1285 = new BitSet(new ulong[]{0x00000000004C0002UL}); - public static readonly BitSet FOLLOW_multilineText_in_sentenceEnd1287 = new BitSet(new ulong[]{0x0000000000480002UL}); - public static readonly BitSet FOLLOW_table_in_sentenceEnd1290 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_indent_in_multilineText1328 = new BitSet(new ulong[]{0x0000000000040000UL}); - public static readonly BitSet FOLLOW_MLTEXT_in_multilineText1330 = new BitSet(new ulong[]{0x0000000000C00000UL}); - public static readonly BitSet FOLLOW_WS_in_multilineText1332 = new BitSet(new ulong[]{0x0000000000800000UL}); - public static readonly BitSet FOLLOW_NEWLINE_in_multilineText1335 = new BitSet(new ulong[]{0x0000000001D40000UL}); - public static readonly BitSet FOLLOW_multilineTextLine_in_multilineText1345 = new BitSet(new ulong[]{0x0000000001D40000UL}); - public static readonly BitSet FOLLOW_WS_in_multilineText1356 = new BitSet(new ulong[]{0x0000000000040000UL}); - public static readonly BitSet FOLLOW_MLTEXT_in_multilineText1359 = new BitSet(new ulong[]{0x0000000000C00000UL}); - public static readonly BitSet FOLLOW_WS_in_multilineText1361 = new BitSet(new ulong[]{0x0000000000C00000UL}); - public static readonly BitSet FOLLOW_newlineWithSpaces_in_multilineText1364 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WS_in_indent1402 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WS_in_multilineTextLine1431 = new BitSet(new ulong[]{0x0000000001D00000UL}); - public static readonly BitSet FOLLOW_text_in_multilineTextLine1434 = new BitSet(new ulong[]{0x0000000000800000UL}); - public static readonly BitSet FOLLOW_NEWLINE_in_multilineTextLine1437 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_tableRow_in_table1478 = new BitSet(new ulong[]{0x0000000000480000UL}); - public static readonly BitSet FOLLOW_tableRow_in_table1480 = new BitSet(new ulong[]{0x0000000000480002UL}); - public static readonly BitSet FOLLOW_WS_in_tableRow1527 = new BitSet(new ulong[]{0x0000000000080000UL}); - public static readonly BitSet FOLLOW_CELLSEP_in_tableRow1530 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_tableCell_in_tableRow1532 = new BitSet(new ulong[]{0x0000000001D00000UL}); - public static readonly BitSet FOLLOW_WS_in_tableRow1535 = new BitSet(new ulong[]{0x0000000000C00000UL}); - public static readonly BitSet FOLLOW_newlineWithSpaces_in_tableRow1538 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WS_in_tableCell1574 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_text_in_tableCell1577 = new BitSet(new ulong[]{0x0000000000480000UL}); - public static readonly BitSet FOLLOW_WS_in_tableCell1579 = new BitSet(new ulong[]{0x0000000000080000UL}); - public static readonly BitSet FOLLOW_CELLSEP_in_tableCell1582 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WORDCHAR_in_descriptionLineText1617 = new BitSet(new ulong[]{0x0000000001500002UL}); - public static readonly BitSet FOLLOW_textRest_in_descriptionLineText1619 = new BitSet(new ulong[]{0x0000000001500002UL}); - public static readonly BitSet FOLLOW_wordchar_in_text1658 = new BitSet(new ulong[]{0x0000000001500002UL}); - public static readonly BitSet FOLLOW_textRest_in_text1660 = new BitSet(new ulong[]{0x0000000001500002UL}); - public static readonly BitSet FOLLOW_WS_in_textRest1698 = new BitSet(new ulong[]{0x0000000001500000UL}); - public static readonly BitSet FOLLOW_textRest_in_textRest1700 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_wordchar_in_textRest1710 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_wordchar_in_title1729 = new BitSet(new ulong[]{0x0000000001D00002UL}); - public static readonly BitSet FOLLOW_titleRest_in_title1731 = new BitSet(new ulong[]{0x0000000001D00002UL}); - public static readonly BitSet FOLLOW_WS_in_titleRest1770 = new BitSet(new ulong[]{0x0000000001D00000UL}); - public static readonly BitSet FOLLOW_titleRest_in_titleRest1772 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_NEWLINE_in_titleRest1782 = new BitSet(new ulong[]{0x0000000001D00000UL}); - public static readonly BitSet FOLLOW_titleRest_in_titleRest1784 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_wordchar_in_titleRest1794 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_NEWLINE_in_titleRestLine1813 = new BitSet(new ulong[]{0x0000000001C00000UL}); - public static readonly BitSet FOLLOW_titleRestLine_in_titleRestLine1815 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WS_in_titleRestLine1825 = new BitSet(new ulong[]{0x0000000001C00000UL}); - public static readonly BitSet FOLLOW_titleRestLine_in_titleRestLine1827 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WORDCHAR_in_titleRestLine1837 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_newlineWithSpaces_in_feature252 = new BitSet(new ulong[]{0x0000000000500100UL}); + public static readonly BitSet FOLLOW_tags_in_feature263 = new BitSet(new ulong[]{0x0000000000400100UL}); + public static readonly BitSet FOLLOW_WS_in_feature274 = new BitSet(new ulong[]{0x0000000000000100UL}); + public static readonly BitSet FOLLOW_T_FEATURE_in_feature277 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_WS_in_feature279 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_text_in_feature282 = new BitSet(new ulong[]{0x0000000000C00000UL}); + public static readonly BitSet FOLLOW_newlineWithSpaces_in_feature284 = new BitSet(new ulong[]{0x0000000001500E00UL}); + public static readonly BitSet FOLLOW_descriptionLine_in_feature294 = new BitSet(new ulong[]{0x0000000001500E00UL}); + public static readonly BitSet FOLLOW_background_in_feature305 = new BitSet(new ulong[]{0x0000000000500C00UL}); + public static readonly BitSet FOLLOW_scenarioKind_in_feature316 = new BitSet(new ulong[]{0x0000000000500C00UL}); + public static readonly BitSet FOLLOW_WS_in_feature319 = new BitSet(new ulong[]{0x0000000000000000UL}); + public static readonly BitSet FOLLOW_EOF_in_feature322 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WS_in_tags399 = new BitSet(new ulong[]{0x0000000000500000UL}); + public static readonly BitSet FOLLOW_tag_in_tags402 = new BitSet(new ulong[]{0x0000000000500002UL}); + public static readonly BitSet FOLLOW_AT_in_tag439 = new BitSet(new ulong[]{0x0000000001000000UL}); + public static readonly BitSet FOLLOW_word_in_tag441 = new BitSet(new ulong[]{0x0000000000C00000UL}); + public static readonly BitSet FOLLOW_newlineWithSpaces_in_tag444 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WS_in_tag446 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WORDCHAR_in_word482 = new BitSet(new ulong[]{0x0000000001000002UL}); + public static readonly BitSet FOLLOW_WS_in_descriptionLine519 = new BitSet(new ulong[]{0x0000000001400000UL}); + public static readonly BitSet FOLLOW_descriptionLineText_in_descriptionLine522 = new BitSet(new ulong[]{0x0000000000C00000UL}); + public static readonly BitSet FOLLOW_newlineWithSpaces_in_descriptionLine524 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WS_in_background559 = new BitSet(new ulong[]{0x0000000000000200UL}); + public static readonly BitSet FOLLOW_T_BACKGROUND_in_background562 = new BitSet(new ulong[]{0x0000000000C00000UL}); + public static readonly BitSet FOLLOW_WS_in_background574 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_title_in_background576 = new BitSet(new ulong[]{0x0000000000C00000UL}); + public static readonly BitSet FOLLOW_newlineWithSpaces_in_background589 = new BitSet(new ulong[]{0x0000000000402000UL}); + public static readonly BitSet FOLLOW_givens_in_background591 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_scenarioOutline_in_scenarioKind629 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_scenario_in_scenarioKind640 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_tags_in_scenario659 = new BitSet(new ulong[]{0x0000000000400400UL}); + public static readonly BitSet FOLLOW_WS_in_scenario662 = new BitSet(new ulong[]{0x0000000000000400UL}); + public static readonly BitSet FOLLOW_T_SCENARIO_in_scenario665 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_WS_in_scenario667 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_title_in_scenario679 = new BitSet(new ulong[]{0x0000000000C00000UL}); + public static readonly BitSet FOLLOW_newlineWithSpaces_in_scenario681 = new BitSet(new ulong[]{0x000000000040E000UL}); + public static readonly BitSet FOLLOW_steps_in_scenario692 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_tags_in_scenarioOutline738 = new BitSet(new ulong[]{0x0000000000400800UL}); + public static readonly BitSet FOLLOW_WS_in_scenarioOutline741 = new BitSet(new ulong[]{0x0000000000000800UL}); + public static readonly BitSet FOLLOW_T_SCENARIO_OUTLINE_in_scenarioOutline744 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_WS_in_scenarioOutline746 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_title_in_scenarioOutline757 = new BitSet(new ulong[]{0x0000000000C00000UL}); + public static readonly BitSet FOLLOW_newlineWithSpaces_in_scenarioOutline759 = new BitSet(new ulong[]{0x000000000040E000UL}); + public static readonly BitSet FOLLOW_steps_in_scenarioOutline769 = new BitSet(new ulong[]{0x0000000000401000UL}); + public static readonly BitSet FOLLOW_examples_in_scenarioOutline779 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_exampleSet_in_examples821 = new BitSet(new ulong[]{0x0000000000401002UL}); + public static readonly BitSet FOLLOW_WS_in_exampleSet858 = new BitSet(new ulong[]{0x0000000000001000UL}); + public static readonly BitSet FOLLOW_T_EXAMPLES_in_exampleSet861 = new BitSet(new ulong[]{0x0000000001D00000UL}); + public static readonly BitSet FOLLOW_WS_in_exampleSet863 = new BitSet(new ulong[]{0x0000000001D00000UL}); + public static readonly BitSet FOLLOW_text_in_exampleSet874 = new BitSet(new ulong[]{0x0000000000C00000UL}); + public static readonly BitSet FOLLOW_newlineWithSpaces_in_exampleSet877 = new BitSet(new ulong[]{0x0000000000480000UL}); + public static readonly BitSet FOLLOW_table_in_exampleSet879 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_firstStep_in_steps917 = new BitSet(new ulong[]{0x000000000043E002UL}); + public static readonly BitSet FOLLOW_nextStep_in_steps919 = new BitSet(new ulong[]{0x000000000043E002UL}); + public static readonly BitSet FOLLOW_firstGiven_in_firstStep952 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_firstWhen_in_firstStep961 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_firstThen_in_firstStep970 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_firstStep_in_nextStep992 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_firstAnd_in_nextStep1001 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_firstBut_in_nextStep1010 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WS_in_firstAnd1033 = new BitSet(new ulong[]{0x0000000000010000UL}); + public static readonly BitSet FOLLOW_T_AND_in_firstAnd1036 = new BitSet(new ulong[]{0x0000000000400000UL}); + public static readonly BitSet FOLLOW_WS_in_firstAnd1038 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_sentenceEnd_in_firstAnd1040 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WS_in_firstBut1075 = new BitSet(new ulong[]{0x0000000000020000UL}); + public static readonly BitSet FOLLOW_T_BUT_in_firstBut1078 = new BitSet(new ulong[]{0x0000000000400000UL}); + public static readonly BitSet FOLLOW_WS_in_firstBut1080 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_sentenceEnd_in_firstBut1082 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_firstGiven_in_givens1117 = new BitSet(new ulong[]{0x000000000043E002UL}); + public static readonly BitSet FOLLOW_nextStep_in_givens1119 = new BitSet(new ulong[]{0x000000000043E002UL}); + public static readonly BitSet FOLLOW_WS_in_firstGiven1157 = new BitSet(new ulong[]{0x0000000000002000UL}); + public static readonly BitSet FOLLOW_T_GIVEN_in_firstGiven1160 = new BitSet(new ulong[]{0x0000000000400000UL}); + public static readonly BitSet FOLLOW_WS_in_firstGiven1162 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_sentenceEnd_in_firstGiven1164 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WS_in_firstWhen1198 = new BitSet(new ulong[]{0x0000000000004000UL}); + public static readonly BitSet FOLLOW_T_WHEN_in_firstWhen1201 = new BitSet(new ulong[]{0x0000000000400000UL}); + public static readonly BitSet FOLLOW_WS_in_firstWhen1203 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_sentenceEnd_in_firstWhen1205 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WS_in_firstThen1239 = new BitSet(new ulong[]{0x0000000000008000UL}); + public static readonly BitSet FOLLOW_T_THEN_in_firstThen1242 = new BitSet(new ulong[]{0x0000000000400000UL}); + public static readonly BitSet FOLLOW_WS_in_firstThen1244 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_sentenceEnd_in_firstThen1246 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_text_in_sentenceEnd1281 = new BitSet(new ulong[]{0x0000000000C00000UL}); + public static readonly BitSet FOLLOW_newlineWithSpaces_in_sentenceEnd1283 = new BitSet(new ulong[]{0x00000000004C0002UL}); + public static readonly BitSet FOLLOW_multilineText_in_sentenceEnd1285 = new BitSet(new ulong[]{0x0000000000480002UL}); + public static readonly BitSet FOLLOW_table_in_sentenceEnd1288 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_indent_in_multilineText1326 = new BitSet(new ulong[]{0x0000000000040000UL}); + public static readonly BitSet FOLLOW_MLTEXT_in_multilineText1328 = new BitSet(new ulong[]{0x0000000000C00000UL}); + public static readonly BitSet FOLLOW_WS_in_multilineText1330 = new BitSet(new ulong[]{0x0000000000800000UL}); + public static readonly BitSet FOLLOW_NEWLINE_in_multilineText1333 = new BitSet(new ulong[]{0x0000000001D40000UL}); + public static readonly BitSet FOLLOW_multilineTextLine_in_multilineText1343 = new BitSet(new ulong[]{0x0000000001D40000UL}); + public static readonly BitSet FOLLOW_WS_in_multilineText1354 = new BitSet(new ulong[]{0x0000000000040000UL}); + public static readonly BitSet FOLLOW_MLTEXT_in_multilineText1357 = new BitSet(new ulong[]{0x0000000000C00000UL}); + public static readonly BitSet FOLLOW_WS_in_multilineText1359 = new BitSet(new ulong[]{0x0000000000C00000UL}); + public static readonly BitSet FOLLOW_newlineWithSpaces_in_multilineText1362 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WS_in_indent1400 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WS_in_multilineTextLine1429 = new BitSet(new ulong[]{0x0000000001D00000UL}); + public static readonly BitSet FOLLOW_text_in_multilineTextLine1432 = new BitSet(new ulong[]{0x0000000000800000UL}); + public static readonly BitSet FOLLOW_NEWLINE_in_multilineTextLine1435 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_tableRow_in_table1476 = new BitSet(new ulong[]{0x0000000000480000UL}); + public static readonly BitSet FOLLOW_tableRow_in_table1478 = new BitSet(new ulong[]{0x0000000000480002UL}); + public static readonly BitSet FOLLOW_WS_in_tableRow1525 = new BitSet(new ulong[]{0x0000000000080000UL}); + public static readonly BitSet FOLLOW_CELLSEP_in_tableRow1528 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_tableCell_in_tableRow1530 = new BitSet(new ulong[]{0x0000000001D00000UL}); + public static readonly BitSet FOLLOW_WS_in_tableRow1533 = new BitSet(new ulong[]{0x0000000000C00000UL}); + public static readonly BitSet FOLLOW_newlineWithSpaces_in_tableRow1536 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WS_in_tableCell1572 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_text_in_tableCell1575 = new BitSet(new ulong[]{0x0000000000480000UL}); + public static readonly BitSet FOLLOW_WS_in_tableCell1577 = new BitSet(new ulong[]{0x0000000000080000UL}); + public static readonly BitSet FOLLOW_CELLSEP_in_tableCell1580 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WORDCHAR_in_descriptionLineText1615 = new BitSet(new ulong[]{0x0000000001500002UL}); + public static readonly BitSet FOLLOW_textRest_in_descriptionLineText1617 = new BitSet(new ulong[]{0x0000000001500002UL}); + public static readonly BitSet FOLLOW_wordchar_in_text1656 = new BitSet(new ulong[]{0x0000000001500002UL}); + public static readonly BitSet FOLLOW_textRest_in_text1658 = new BitSet(new ulong[]{0x0000000001500002UL}); + public static readonly BitSet FOLLOW_WS_in_textRest1696 = new BitSet(new ulong[]{0x0000000001500000UL}); + public static readonly BitSet FOLLOW_textRest_in_textRest1698 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_wordchar_in_textRest1708 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_wordchar_in_title1727 = new BitSet(new ulong[]{0x0000000001D00002UL}); + public static readonly BitSet FOLLOW_titleRest_in_title1729 = new BitSet(new ulong[]{0x0000000001D00002UL}); + public static readonly BitSet FOLLOW_WS_in_titleRest1768 = new BitSet(new ulong[]{0x0000000001D00000UL}); + public static readonly BitSet FOLLOW_titleRest_in_titleRest1770 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_NEWLINE_in_titleRest1780 = new BitSet(new ulong[]{0x0000000001D00000UL}); + public static readonly BitSet FOLLOW_titleRest_in_titleRest1782 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_wordchar_in_titleRest1792 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_NEWLINE_in_titleRestLine1811 = new BitSet(new ulong[]{0x0000000001C00000UL}); + public static readonly BitSet FOLLOW_titleRestLine_in_titleRestLine1813 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WS_in_titleRestLine1823 = new BitSet(new ulong[]{0x0000000001C00000UL}); + public static readonly BitSet FOLLOW_titleRestLine_in_titleRestLine1825 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WORDCHAR_in_titleRestLine1835 = new BitSet(new ulong[]{0x0000000000000002UL}); public static readonly BitSet FOLLOW_set_in_wordchar0 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WS_in_newlineWithSpaces1885 = new BitSet(new ulong[]{0x0000000000800000UL}); - public static readonly BitSet FOLLOW_NEWLINE_in_newlineWithSpaces1888 = new BitSet(new ulong[]{0x0000000000C00002UL}); - public static readonly BitSet FOLLOW_WS_in_newlineWithSpaces1891 = new BitSet(new ulong[]{0x0000000000800000UL}); - public static readonly BitSet FOLLOW_NEWLINE_in_newlineWithSpaces1894 = new BitSet(new ulong[]{0x0000000000C00002UL}); - public static readonly BitSet FOLLOW_WS_in_synpred25_SpecFlowLangParser865 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WS_in_synpred43_SpecFlowLangParser1361 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_WS_in_synpred50_SpecFlowLangParser1535 = new BitSet(new ulong[]{0x0000000000000002UL}); - public static readonly BitSet FOLLOW_titleRest_in_synpred56_SpecFlowLangParser1731 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WS_in_newlineWithSpaces1883 = new BitSet(new ulong[]{0x0000000000800000UL}); + public static readonly BitSet FOLLOW_NEWLINE_in_newlineWithSpaces1886 = new BitSet(new ulong[]{0x0000000000C00002UL}); + public static readonly BitSet FOLLOW_WS_in_newlineWithSpaces1889 = new BitSet(new ulong[]{0x0000000000800000UL}); + public static readonly BitSet FOLLOW_NEWLINE_in_newlineWithSpaces1892 = new BitSet(new ulong[]{0x0000000000C00002UL}); + public static readonly BitSet FOLLOW_WS_in_synpred25_SpecFlowLangParser863 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WS_in_synpred43_SpecFlowLangParser1359 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_WS_in_synpred50_SpecFlowLangParser1533 = new BitSet(new ulong[]{0x0000000000000002UL}); + public static readonly BitSet FOLLOW_titleRest_in_synpred56_SpecFlowLangParser1729 = new BitSet(new ulong[]{0x0000000000000002UL}); } } \ No newline at end of file diff --git a/Parser/Grammar/SpecFlowLangParser.g b/Parser/Grammar/SpecFlowLangParser.g index a66b4d0d9..65ab6f1b4 100644 --- a/Parser/Grammar/SpecFlowLangParser.g +++ b/Parser/Grammar/SpecFlowLangParser.g @@ -1,14 +1,12 @@ parser grammar SpecFlowLangParser; options { - tokenVocab = SpecFlowLangLexer; + tokenVocab = SpecFlowLangLexer_en; language = CSharp2; output = AST; backtrack = true; } -//import SpecFlowLangLexer; - tokens { FEATURE; DESCRIPTIONLINE; diff --git a/Parser/Grammar/SpecFlowLangWalker.cs b/Parser/Grammar/SpecFlowLangWalker.cs index db080c7de..ab6efadb0 100644 --- a/Parser/Grammar/SpecFlowLangWalker.cs +++ b/Parser/Grammar/SpecFlowLangWalker.cs @@ -1,4 +1,4 @@ -// $ANTLR 3.1.2 SpecFlowLangWalker.g 2009-11-05 16:13:48 +// $ANTLR 3.1.2 SpecFlowLangWalker.g 2009-11-09 17:26:29 // The variable 'variable' is assigned but its value is never used. #pragma warning disable 168, 219 diff --git a/Parser/Grammar/compile.cmd b/Parser/Grammar/compile.cmd index fcf91cd90..704fd8675 100644 --- a/Parser/Grammar/compile.cmd +++ b/Parser/Grammar/compile.cmd @@ -1,7 +1,25 @@ pushd "%~dp0" -java -cp ..\..\lib\antlr\antlr-3.1.2.jar org.antlr.Tool SpecFlowLangLexer.g +..\..\lib\msxsl\msxsl.exe ..\Languages.xml LexerTransformation.xslt language=en -o SpecFlowLangLexer_en.g +java -cp ..\..\lib\antlr\antlr-3.1.2.jar org.antlr.Tool SpecFlowLangLexer_en.g +del SpecFlowLangLexer_en.g + +..\..\lib\msxsl\msxsl.exe ..\Languages.xml LexerTransformation.xslt language=de -o SpecFlowLangLexer_de.g +java -cp ..\..\lib\antlr\antlr-3.1.2.jar org.antlr.Tool SpecFlowLangLexer_de.g +del SpecFlowLangLexer_de.g + +..\..\lib\msxsl\msxsl.exe ..\Languages.xml LexerTransformation.xslt language=fr -o SpecFlowLangLexer_fr.g +java -cp ..\..\lib\antlr\antlr-3.1.2.jar org.antlr.Tool SpecFlowLangLexer_fr.g +del SpecFlowLangLexer_fr.g + +..\..\lib\msxsl\msxsl.exe ..\Languages.xml LexerTransformation.xslt language=hu -o SpecFlowLangLexer_hu.g +java -cp ..\..\lib\antlr\antlr-3.1.2.jar org.antlr.Tool SpecFlowLangLexer_hu.g +del SpecFlowLangLexer_hu.g + + java -cp ..\..\lib\antlr\antlr-3.1.2.jar org.antlr.Tool SpecFlowLangParser.g java -cp ..\..\lib\antlr\antlr-3.1.2.jar org.antlr.Tool SpecFlowLangWalker.g +del *.tokens + popd diff --git a/Parser/Languages.xml b/Parser/Languages.xml new file mode 100644 index 000000000..0ead99e66 --- /dev/null +++ b/Parser/Languages.xml @@ -0,0 +1,52 @@ + + + + Feature + Background + Scenario + Scenario Outline + Examples + Scenarios + Given + When + Then + And + But + + + Funktionalität + Grundlage + Szenario + Szenariogrundriss + Beispiele + Gegeben sei + Wenn + Dann + Und + Aber + + + Fonctionnalité + Contexte + Scénario + Plan du Scénario + Exemples + Soit + Lorsque + Alors + Et + Mais + + + Jellemző + Háttér + Forgatókönyv + Forgatókönyv vázlat + Példák + Ha + Majd + Akkor + És + De + + diff --git a/Parser/SpecFlowLangParser.cs b/Parser/SpecFlowLangParser.cs index c85e638ef..d96dd554b 100644 --- a/Parser/SpecFlowLangParser.cs +++ b/Parser/SpecFlowLangParser.cs @@ -1,17 +1,31 @@ using System; +using System.Globalization; using System.Linq; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Text; +using System.Text.RegularExpressions; using Antlr.Runtime; using Antlr.Runtime.Tree; +using TechTalk.SpecFlow.Parser.Grammar; using TechTalk.SpecFlow.Parser.SyntaxElements; namespace TechTalk.SpecFlow.Parser { public class SpecFlowLangParser { + private CultureInfo defaultLanguage; + + public SpecFlowLangParser() : this(new CultureInfo("en-US")) + { + } + + public SpecFlowLangParser(CultureInfo defaultLanguage) + { + this.defaultLanguage = defaultLanguage; + } + public Feature Parse(TextReader featureFileReader, string sourceFileName) { var feature = Parse(featureFileReader); @@ -19,14 +33,20 @@ public Feature Parse(TextReader featureFileReader, string sourceFileName) return feature; } + static private readonly Regex languageRe = new Regex(@"^\s*#\s*language:\s*(?[\w-]+)\s*\n"); + public Feature Parse(TextReader featureFileReader) { - //TODO: german - var fileContent = featureFileReader.ReadToEnd() + Environment.NewLine; + CultureInfo language = defaultLanguage; + + var langMatch = languageRe.Match(fileContent); + if (langMatch.Success) + language = new CultureInfo(langMatch.Groups["lang"].Value); + var inputStream = new ANTLRReaderStream(new StringReader(fileContent)); - var lexer = new Grammar.SpecFlowLangLexer(inputStream); + var lexer = GetLexter(language, inputStream); var tokenStream = new CommonTokenStream(lexer); var parser = new Grammar.SpecFlowLangParser(tokenStream); @@ -46,5 +66,34 @@ public Feature Parse(TextReader featureFileReader) return feature; } + + static readonly Dictionary lexters = new Dictionary() + { + {new CultureInfo("en"), typeof(SpecFlowLangLexer_en)}, + {new CultureInfo("de"), typeof(SpecFlowLangLexer_de)}, + {new CultureInfo("fr"), typeof(SpecFlowLangLexer_fr)}, + {new CultureInfo("hu"), typeof(SpecFlowLangLexer_hu)}, + }; + + private SpecFlowLangLexer GetLexter(CultureInfo language, ANTLRReaderStream inputStream) + { + Type lexterType; + if (!lexters.TryGetValue(language, out lexterType)) + { + CultureInfo calculatedLanguage = language; + + while (calculatedLanguage.Parent != calculatedLanguage) + { + calculatedLanguage = calculatedLanguage.Parent; + if (lexters.TryGetValue(calculatedLanguage, out lexterType)) + break; + } + + if (lexterType == null) + throw new SpecFlowParserException(string.Format("The specified feature file language ('{0}') is not supported.", language)); + } + + return (SpecFlowLangLexer)Activator.CreateInstance(lexterType, inputStream); + } } } diff --git a/Parser/TechTalk.SpecFlow.Parser.csproj b/Parser/TechTalk.SpecFlow.Parser.csproj index 48878310b..4788dd65b 100644 --- a/Parser/TechTalk.SpecFlow.Parser.csproj +++ b/Parser/TechTalk.SpecFlow.Parser.csproj @@ -73,6 +73,10 @@ + + + + Code @@ -106,10 +110,13 @@ - + + + +