Singularity/Library/PackageCache/com.unity.visualscripting@1.../Runtime/VisualScripting.Flow/Dependencies/NCalc/NCalcParser.cs
2024-05-06 11:45:45 -07:00

2663 lines
117 KiB
C#
Raw Permalink Blame History

#pragma warning disable 219
// $ANTLR 3.2 Sep 23, 2009 12:02:23 C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g 2009-11-11 17:56:42
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using Unity.VisualScripting.Antlr3.Runtime;
using Unity.VisualScripting.Antlr3.Runtime.Tree;
namespace Unity.VisualScripting.Dependencies.NCalc
{
public class NCalcParser : Parser
{
// delegates
// delegators
public NCalcParser(ITokenStream input)
: this(input, new RecognizerSharedState()) { }
public NCalcParser(ITokenStream input, RecognizerSharedState state)
: base(input, state)
{
InitializeCyclicDFAs();
}
protected ITreeAdaptor adaptor = new CommonTreeAdaptor();
public ITreeAdaptor TreeAdaptor
{
get
{
return adaptor;
}
set
{
adaptor = value;
}
}
override public string[] TokenNames
{
get
{
return tokenNames;
}
}
override public string GrammarFileName
{
get
{
return "C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g";
}
}
public List<string> Errors { get; private set; }
// $ANTLR end "arguments"
// Delegated rules
private void InitializeCyclicDFAs() { }
private string extractString(string text)
{
var sb = new StringBuilder(text);
var startIndex = 1; // Skip initial quote
var slashIndex = -1;
while ((slashIndex = sb.ToString().IndexOf(BS, startIndex)) != -1)
{
var escapeType = sb[slashIndex + 1];
switch (escapeType)
{
case 'u':
var hcode = String.Concat(sb[slashIndex + 4], sb[slashIndex + 5]);
var lcode = String.Concat(sb[slashIndex + 2], sb[slashIndex + 3]);
var unicodeChar = Encoding.Unicode.GetChars(new[] { Convert.ToByte(hcode, 16), Convert.ToByte(lcode, 16) })[0];
sb.Remove(slashIndex, 6).Insert(slashIndex, unicodeChar);
break;
case 'n':
sb.Remove(slashIndex, 2).Insert(slashIndex, '\n');
break;
case 'r':
sb.Remove(slashIndex, 2).Insert(slashIndex, '\r');
break;
case 't':
sb.Remove(slashIndex, 2).Insert(slashIndex, '\t');
break;
case '\'':
sb.Remove(slashIndex, 2).Insert(slashIndex, '\'');
break;
case '\\':
sb.Remove(slashIndex, 2).Insert(slashIndex, '\\');
break;
default:
throw new RecognitionException("Unvalid escape sequence: \\" + escapeType);
}
startIndex = slashIndex + 1;
}
sb.Remove(0, 1);
sb.Remove(sb.Length - 1, 1);
return sb.ToString();
}
public override void DisplayRecognitionError(String[] tokenNames, RecognitionException e)
{
base.DisplayRecognitionError(tokenNames, e);
if (Errors == null)
{
Errors = new List<string>();
}
var hdr = GetErrorHeader(e);
var msg = GetErrorMessage(e, tokenNames);
Errors.Add(msg + " at " + hdr);
}
// $ANTLR start "ncalcExpression"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:77:1: ncalcExpression returns [LogicalExpression value] : logicalExpression EOF ;
public ncalcExpression_return ncalcExpression() // throws RecognitionException [1]
{
var retval = new ncalcExpression_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken EOF2 = null;
logicalExpression_return logicalExpression1 = null;
CommonTree EOF2_tree = null;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:78:2: ( logicalExpression EOF )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:78:4: logicalExpression EOF
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_logicalExpression_in_ncalcExpression56);
logicalExpression1 = logicalExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, logicalExpression1.Tree);
EOF2 = (IToken)Match(input, EOF, FOLLOW_EOF_in_ncalcExpression58);
retval.value = logicalExpression1 != null ? logicalExpression1.value : null;
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "logicalExpression"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:81:1: logicalExpression returns [LogicalExpression value] : left= conditionalExpression ( '?' middle= conditionalExpression ':' right= conditionalExpression )? ;
public logicalExpression_return logicalExpression() // throws RecognitionException [1]
{
var retval = new logicalExpression_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken char_literal3 = null;
IToken char_literal4 = null;
conditionalExpression_return left = null;
conditionalExpression_return middle = null;
conditionalExpression_return right = null;
CommonTree char_literal3_tree = null;
CommonTree char_literal4_tree = null;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:82:2: (left= conditionalExpression ( '?' middle= conditionalExpression ':' right= conditionalExpression )? )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:82:4: left= conditionalExpression ( '?' middle= conditionalExpression ':' right= conditionalExpression )?
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_conditionalExpression_in_logicalExpression78);
left = conditionalExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, left.Tree);
retval.value = left != null ? left.value : null;
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:82:57: ( '?' middle= conditionalExpression ':' right= conditionalExpression )?
var alt1 = 2;
var LA1_0 = input.LA(1);
if (LA1_0 == 19)
{
alt1 = 1;
}
switch (alt1)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:82:59: '?' middle= conditionalExpression ':' right= conditionalExpression
{
char_literal3 = (IToken)Match(input, 19, FOLLOW_19_in_logicalExpression84);
char_literal3_tree = (CommonTree)adaptor.Create(char_literal3);
adaptor.AddChild(root_0, char_literal3_tree);
PushFollow(FOLLOW_conditionalExpression_in_logicalExpression88);
middle = conditionalExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, middle.Tree);
char_literal4 = (IToken)Match(input, 20, FOLLOW_20_in_logicalExpression90);
char_literal4_tree = (CommonTree)adaptor.Create(char_literal4);
adaptor.AddChild(root_0, char_literal4_tree);
PushFollow(FOLLOW_conditionalExpression_in_logicalExpression94);
right = conditionalExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, right.Tree);
retval.value = new TernaryExpression(left != null ? left.value : null, middle != null ? middle.value : null, right != null ? right.value : null);
}
break;
}
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "conditionalExpression"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:85:1: conditionalExpression returns [LogicalExpression value] : left= booleanAndExpression ( ( '||' | 'or' ) right= conditionalExpression )* ;
public conditionalExpression_return conditionalExpression() // throws RecognitionException [1]
{
var retval = new conditionalExpression_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken set5 = null;
booleanAndExpression_return left = null;
conditionalExpression_return right = null;
CommonTree set5_tree = null;
var type = BinaryExpressionType.Unknown;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:89:2: (left= booleanAndExpression ( ( '||' | 'or' ) right= conditionalExpression )* )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:89:4: left= booleanAndExpression ( ( '||' | 'or' ) right= conditionalExpression )*
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_booleanAndExpression_in_conditionalExpression121);
left = booleanAndExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, left.Tree);
retval.value = left != null ? left.value : null;
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:89:56: ( ( '||' | 'or' ) right= conditionalExpression )*
do
{
var alt2 = 2;
var LA2_0 = input.LA(1);
if (LA2_0 >= 21 && LA2_0 <= 22)
{
alt2 = 1;
}
switch (alt2)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:90:4: ( '||' | 'or' ) right= conditionalExpression
{
set5 = (IToken)input.LT(1);
if (input.LA(1) >= 21 && input.LA(1) <= 22)
{
input.Consume();
adaptor.AddChild(root_0, (CommonTree)adaptor.Create(set5));
state.errorRecovery = false;
}
else
{
var mse = new MismatchedSetException(null, input);
throw mse;
}
type = BinaryExpressionType.Or;
PushFollow(FOLLOW_conditionalExpression_in_conditionalExpression146);
right = conditionalExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, right.Tree);
retval.value = new BinaryExpression(type, retval.value, right != null ? right.value : null);
}
break;
default:
goto loop2;
}
}
while (true);
loop2:
; // Stops C# compiler whining that label 'loop2' has no statements
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "booleanAndExpression"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:95:1: booleanAndExpression returns [LogicalExpression value] : left= bitwiseOrExpression ( ( '&&' | 'and' ) right= bitwiseOrExpression )* ;
public booleanAndExpression_return booleanAndExpression() // throws RecognitionException [1]
{
var retval = new booleanAndExpression_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken set6 = null;
bitwiseOrExpression_return left = null;
bitwiseOrExpression_return right = null;
CommonTree set6_tree = null;
var type = BinaryExpressionType.Unknown;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:99:2: (left= bitwiseOrExpression ( ( '&&' | 'and' ) right= bitwiseOrExpression )* )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:99:4: left= bitwiseOrExpression ( ( '&&' | 'and' ) right= bitwiseOrExpression )*
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_bitwiseOrExpression_in_booleanAndExpression180);
left = bitwiseOrExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, left.Tree);
retval.value = left != null ? left.value : null;
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:99:55: ( ( '&&' | 'and' ) right= bitwiseOrExpression )*
do
{
var alt3 = 2;
var LA3_0 = input.LA(1);
if (LA3_0 >= 23 && LA3_0 <= 24)
{
alt3 = 1;
}
switch (alt3)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:100:4: ( '&&' | 'and' ) right= bitwiseOrExpression
{
set6 = (IToken)input.LT(1);
if (input.LA(1) >= 23 && input.LA(1) <= 24)
{
input.Consume();
adaptor.AddChild(root_0, (CommonTree)adaptor.Create(set6));
state.errorRecovery = false;
}
else
{
var mse = new MismatchedSetException(null, input);
throw mse;
}
type = BinaryExpressionType.And;
PushFollow(FOLLOW_bitwiseOrExpression_in_booleanAndExpression205);
right = bitwiseOrExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, right.Tree);
retval.value = new BinaryExpression(type, retval.value, right != null ? right.value : null);
}
break;
default:
goto loop3;
}
}
while (true);
loop3:
; // Stops C# compiler whining that label 'loop3' has no statements
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "bitwiseOrExpression"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:105:1: bitwiseOrExpression returns [LogicalExpression value] : left= bitwiseXOrExpression ( '|' right= bitwiseOrExpression )* ;
public bitwiseOrExpression_return bitwiseOrExpression() // throws RecognitionException [1]
{
var retval = new bitwiseOrExpression_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken char_literal7 = null;
bitwiseXOrExpression_return left = null;
bitwiseOrExpression_return right = null;
CommonTree char_literal7_tree = null;
var type = BinaryExpressionType.Unknown;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:109:2: (left= bitwiseXOrExpression ( '|' right= bitwiseOrExpression )* )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:109:4: left= bitwiseXOrExpression ( '|' right= bitwiseOrExpression )*
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_bitwiseXOrExpression_in_bitwiseOrExpression237);
left = bitwiseXOrExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, left.Tree);
retval.value = left != null ? left.value : null;
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:109:56: ( '|' right= bitwiseOrExpression )*
do
{
var alt4 = 2;
var LA4_0 = input.LA(1);
if (LA4_0 == 25)
{
alt4 = 1;
}
switch (alt4)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:110:4: '|' right= bitwiseOrExpression
{
char_literal7 = (IToken)Match(input, 25, FOLLOW_25_in_bitwiseOrExpression246);
char_literal7_tree = (CommonTree)adaptor.Create(char_literal7);
adaptor.AddChild(root_0, char_literal7_tree);
type = BinaryExpressionType.BitwiseOr;
PushFollow(FOLLOW_bitwiseOrExpression_in_bitwiseOrExpression256);
right = bitwiseOrExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, right.Tree);
retval.value = new BinaryExpression(type, retval.value, right != null ? right.value : null);
}
break;
default:
goto loop4;
}
}
while (true);
loop4:
; // Stops C# compiler whining that label 'loop4' has no statements
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "bitwiseXOrExpression"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:115:1: bitwiseXOrExpression returns [LogicalExpression value] : left= bitwiseAndExpression ( '^' right= bitwiseAndExpression )* ;
public bitwiseXOrExpression_return bitwiseXOrExpression() // throws RecognitionException [1]
{
var retval = new bitwiseXOrExpression_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken char_literal8 = null;
bitwiseAndExpression_return left = null;
bitwiseAndExpression_return right = null;
CommonTree char_literal8_tree = null;
var type = BinaryExpressionType.Unknown;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:119:2: (left= bitwiseAndExpression ( '^' right= bitwiseAndExpression )* )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:119:4: left= bitwiseAndExpression ( '^' right= bitwiseAndExpression )*
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_bitwiseAndExpression_in_bitwiseXOrExpression290);
left = bitwiseAndExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, left.Tree);
retval.value = left != null ? left.value : null;
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:119:56: ( '^' right= bitwiseAndExpression )*
do
{
var alt5 = 2;
var LA5_0 = input.LA(1);
if (LA5_0 == 26)
{
alt5 = 1;
}
switch (alt5)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:120:4: '^' right= bitwiseAndExpression
{
char_literal8 = (IToken)Match(input, 26, FOLLOW_26_in_bitwiseXOrExpression299);
char_literal8_tree = (CommonTree)adaptor.Create(char_literal8);
adaptor.AddChild(root_0, char_literal8_tree);
type = BinaryExpressionType.BitwiseXOr;
PushFollow(FOLLOW_bitwiseAndExpression_in_bitwiseXOrExpression309);
right = bitwiseAndExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, right.Tree);
retval.value = new BinaryExpression(type, retval.value, right != null ? right.value : null);
}
break;
default:
goto loop5;
}
}
while (true);
loop5:
; // Stops C# compiler whining that label 'loop5' has no statements
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "bitwiseAndExpression"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:125:1: bitwiseAndExpression returns [LogicalExpression value] : left= equalityExpression ( '&' right= equalityExpression )* ;
public bitwiseAndExpression_return bitwiseAndExpression() // throws RecognitionException [1]
{
var retval = new bitwiseAndExpression_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken char_literal9 = null;
equalityExpression_return left = null;
equalityExpression_return right = null;
CommonTree char_literal9_tree = null;
var type = BinaryExpressionType.Unknown;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:129:2: (left= equalityExpression ( '&' right= equalityExpression )* )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:129:4: left= equalityExpression ( '&' right= equalityExpression )*
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_equalityExpression_in_bitwiseAndExpression341);
left = equalityExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, left.Tree);
retval.value = left != null ? left.value : null;
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:129:54: ( '&' right= equalityExpression )*
do
{
var alt6 = 2;
var LA6_0 = input.LA(1);
if (LA6_0 == 27)
{
alt6 = 1;
}
switch (alt6)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:130:4: '&' right= equalityExpression
{
char_literal9 = (IToken)Match(input, 27, FOLLOW_27_in_bitwiseAndExpression350);
char_literal9_tree = (CommonTree)adaptor.Create(char_literal9);
adaptor.AddChild(root_0, char_literal9_tree);
type = BinaryExpressionType.BitwiseAnd;
PushFollow(FOLLOW_equalityExpression_in_bitwiseAndExpression360);
right = equalityExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, right.Tree);
retval.value = new BinaryExpression(type, retval.value, right != null ? right.value : null);
}
break;
default:
goto loop6;
}
}
while (true);
loop6:
; // Stops C# compiler whining that label 'loop6' has no statements
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "equalityExpression"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:135:1: equalityExpression returns [LogicalExpression value] : left= relationalExpression ( ( ( '==' | '=' ) | ( '!=' | '<>' ) ) right= relationalExpression )* ;
public equalityExpression_return equalityExpression() // throws RecognitionException [1]
{
var retval = new equalityExpression_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken set10 = null;
IToken set11 = null;
relationalExpression_return left = null;
relationalExpression_return right = null;
CommonTree set10_tree = null;
CommonTree set11_tree = null;
var type = BinaryExpressionType.Unknown;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:139:2: (left= relationalExpression ( ( ( '==' | '=' ) | ( '!=' | '<>' ) ) right= relationalExpression )* )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:139:4: left= relationalExpression ( ( ( '==' | '=' ) | ( '!=' | '<>' ) ) right= relationalExpression )*
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_relationalExpression_in_equalityExpression394);
left = relationalExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, left.Tree);
retval.value = left != null ? left.value : null;
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:139:56: ( ( ( '==' | '=' ) | ( '!=' | '<>' ) ) right= relationalExpression )*
do
{
var alt8 = 2;
var LA8_0 = input.LA(1);
if (LA8_0 >= 28 && LA8_0 <= 31)
{
alt8 = 1;
}
switch (alt8)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:140:4: ( ( '==' | '=' ) | ( '!=' | '<>' ) ) right= relationalExpression
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:140:4: ( ( '==' | '=' ) | ( '!=' | '<>' ) )
var alt7 = 2;
var LA7_0 = input.LA(1);
if (LA7_0 >= 28 && LA7_0 <= 29)
{
alt7 = 1;
}
else if (LA7_0 >= 30 && LA7_0 <= 31)
{
alt7 = 2;
}
else
{
var nvae_d7s0 =
new NoViableAltException("", 7, 0, input);
throw nvae_d7s0;
}
switch (alt7)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:140:6: ( '==' | '=' )
{
set10 = (IToken)input.LT(1);
if (input.LA(1) >= 28 && input.LA(1) <= 29)
{
input.Consume();
adaptor.AddChild(root_0, (CommonTree)adaptor.Create(set10));
state.errorRecovery = false;
}
else
{
var mse = new MismatchedSetException(null, input);
throw mse;
}
type = BinaryExpressionType.Equal;
}
break;
case 2:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:141:6: ( '!=' | '<>' )
{
set11 = (IToken)input.LT(1);
if (input.LA(1) >= 30 && input.LA(1) <= 31)
{
input.Consume();
adaptor.AddChild(root_0, (CommonTree)adaptor.Create(set11));
state.errorRecovery = false;
}
else
{
var mse = new MismatchedSetException(null, input);
throw mse;
}
type = BinaryExpressionType.NotEqual;
}
break;
}
PushFollow(FOLLOW_relationalExpression_in_equalityExpression441);
right = relationalExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, right.Tree);
retval.value = new BinaryExpression(type, retval.value, right != null ? right.value : null);
}
break;
default:
goto loop8;
}
}
while (true);
loop8:
; // Stops C# compiler whining that label 'loop8' has no statements
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "relationalExpression"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:146:1: relationalExpression returns [LogicalExpression value] : left= shiftExpression ( ( '<' | '<=' | '>' | '>=' ) right= shiftExpression )* ;
public relationalExpression_return relationalExpression() // throws RecognitionException [1]
{
var retval = new relationalExpression_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken char_literal12 = null;
IToken string_literal13 = null;
IToken char_literal14 = null;
IToken string_literal15 = null;
shiftExpression_return left = null;
shiftExpression_return right = null;
CommonTree char_literal12_tree = null;
CommonTree string_literal13_tree = null;
CommonTree char_literal14_tree = null;
CommonTree string_literal15_tree = null;
var type = BinaryExpressionType.Unknown;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:150:2: (left= shiftExpression ( ( '<' | '<=' | '>' | '>=' ) right= shiftExpression )* )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:150:4: left= shiftExpression ( ( '<' | '<=' | '>' | '>=' ) right= shiftExpression )*
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_shiftExpression_in_relationalExpression474);
left = shiftExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, left.Tree);
retval.value = left != null ? left.value : null;
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:150:51: ( ( '<' | '<=' | '>' | '>=' ) right= shiftExpression )*
do
{
var alt10 = 2;
var LA10_0 = input.LA(1);
if (LA10_0 >= 32 && LA10_0 <= 35)
{
alt10 = 1;
}
switch (alt10)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:151:4: ( '<' | '<=' | '>' | '>=' ) right= shiftExpression
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:151:4: ( '<' | '<=' | '>' | '>=' )
var alt9 = 4;
switch (input.LA(1))
{
case 32:
{
alt9 = 1;
}
break;
case 33:
{
alt9 = 2;
}
break;
case 34:
{
alt9 = 3;
}
break;
case 35:
{
alt9 = 4;
}
break;
default:
var nvae_d9s0 =
new NoViableAltException("", 9, 0, input);
throw nvae_d9s0;
}
switch (alt9)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:151:6: '<'
{
char_literal12 = (IToken)Match(input, 32, FOLLOW_32_in_relationalExpression485);
char_literal12_tree = (CommonTree)adaptor.Create(char_literal12);
adaptor.AddChild(root_0, char_literal12_tree);
type = BinaryExpressionType.Lesser;
}
break;
case 2:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:152:6: '<='
{
string_literal13 = (IToken)Match(input, 33, FOLLOW_33_in_relationalExpression495);
string_literal13_tree = (CommonTree)adaptor.Create(string_literal13);
adaptor.AddChild(root_0, string_literal13_tree);
type = BinaryExpressionType.LesserOrEqual;
}
break;
case 3:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:153:6: '>'
{
char_literal14 = (IToken)Match(input, 34, FOLLOW_34_in_relationalExpression506);
char_literal14_tree = (CommonTree)adaptor.Create(char_literal14);
adaptor.AddChild(root_0, char_literal14_tree);
type = BinaryExpressionType.Greater;
}
break;
case 4:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:154:6: '>='
{
string_literal15 = (IToken)Match(input, 35, FOLLOW_35_in_relationalExpression516);
string_literal15_tree = (CommonTree)adaptor.Create(string_literal15);
adaptor.AddChild(root_0, string_literal15_tree);
type = BinaryExpressionType.GreaterOrEqual;
}
break;
}
PushFollow(FOLLOW_shiftExpression_in_relationalExpression528);
right = shiftExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, right.Tree);
retval.value = new BinaryExpression(type, retval.value, right != null ? right.value : null);
}
break;
default:
goto loop10;
}
}
while (true);
loop10:
; // Stops C# compiler whining that label 'loop10' has no statements
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "shiftExpression"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:159:1: shiftExpression returns [LogicalExpression value] : left= additiveExpression ( ( '<<' | '>>' ) right= additiveExpression )* ;
public shiftExpression_return shiftExpression() // throws RecognitionException [1]
{
var retval = new shiftExpression_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken string_literal16 = null;
IToken string_literal17 = null;
additiveExpression_return left = null;
additiveExpression_return right = null;
CommonTree string_literal16_tree = null;
CommonTree string_literal17_tree = null;
var type = BinaryExpressionType.Unknown;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:163:2: (left= additiveExpression ( ( '<<' | '>>' ) right= additiveExpression )* )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:163:4: left= additiveExpression ( ( '<<' | '>>' ) right= additiveExpression )*
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_additiveExpression_in_shiftExpression560);
left = additiveExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, left.Tree);
retval.value = left != null ? left.value : null;
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:163:54: ( ( '<<' | '>>' ) right= additiveExpression )*
do
{
var alt12 = 2;
var LA12_0 = input.LA(1);
if (LA12_0 >= 36 && LA12_0 <= 37)
{
alt12 = 1;
}
switch (alt12)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:164:4: ( '<<' | '>>' ) right= additiveExpression
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:164:4: ( '<<' | '>>' )
var alt11 = 2;
var LA11_0 = input.LA(1);
if (LA11_0 == 36)
{
alt11 = 1;
}
else if (LA11_0 == 37)
{
alt11 = 2;
}
else
{
var nvae_d11s0 =
new NoViableAltException("", 11, 0, input);
throw nvae_d11s0;
}
switch (alt11)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:164:6: '<<'
{
string_literal16 = (IToken)Match(input, 36, FOLLOW_36_in_shiftExpression571);
string_literal16_tree = (CommonTree)adaptor.Create(string_literal16);
adaptor.AddChild(root_0, string_literal16_tree);
type = BinaryExpressionType.LeftShift;
}
break;
case 2:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:165:6: '>>'
{
string_literal17 = (IToken)Match(input, 37, FOLLOW_37_in_shiftExpression581);
string_literal17_tree = (CommonTree)adaptor.Create(string_literal17);
adaptor.AddChild(root_0, string_literal17_tree);
type = BinaryExpressionType.RightShift;
}
break;
}
PushFollow(FOLLOW_additiveExpression_in_shiftExpression593);
right = additiveExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, right.Tree);
retval.value = new BinaryExpression(type, retval.value, right != null ? right.value : null);
}
break;
default:
goto loop12;
}
}
while (true);
loop12:
; // Stops C# compiler whining that label 'loop12' has no statements
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "additiveExpression"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:170:1: additiveExpression returns [LogicalExpression value] : left= multiplicativeExpression ( ( '+' | '-' ) right= multiplicativeExpression )* ;
public additiveExpression_return additiveExpression() // throws RecognitionException [1]
{
var retval = new additiveExpression_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken char_literal18 = null;
IToken char_literal19 = null;
multiplicativeExpression_return left = null;
multiplicativeExpression_return right = null;
CommonTree char_literal18_tree = null;
CommonTree char_literal19_tree = null;
var type = BinaryExpressionType.Unknown;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:174:2: (left= multiplicativeExpression ( ( '+' | '-' ) right= multiplicativeExpression )* )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:174:4: left= multiplicativeExpression ( ( '+' | '-' ) right= multiplicativeExpression )*
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression625);
left = multiplicativeExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, left.Tree);
retval.value = left != null ? left.value : null;
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:174:60: ( ( '+' | '-' ) right= multiplicativeExpression )*
do
{
var alt14 = 2;
var LA14_0 = input.LA(1);
if (LA14_0 >= 38 && LA14_0 <= 39)
{
alt14 = 1;
}
switch (alt14)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:175:4: ( '+' | '-' ) right= multiplicativeExpression
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:175:4: ( '+' | '-' )
var alt13 = 2;
var LA13_0 = input.LA(1);
if (LA13_0 == 38)
{
alt13 = 1;
}
else if (LA13_0 == 39)
{
alt13 = 2;
}
else
{
var nvae_d13s0 =
new NoViableAltException("", 13, 0, input);
throw nvae_d13s0;
}
switch (alt13)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:175:6: '+'
{
char_literal18 = (IToken)Match(input, 38, FOLLOW_38_in_additiveExpression636);
char_literal18_tree = (CommonTree)adaptor.Create(char_literal18);
adaptor.AddChild(root_0, char_literal18_tree);
type = BinaryExpressionType.Plus;
}
break;
case 2:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:176:6: '-'
{
char_literal19 = (IToken)Match(input, 39, FOLLOW_39_in_additiveExpression646);
char_literal19_tree = (CommonTree)adaptor.Create(char_literal19);
adaptor.AddChild(root_0, char_literal19_tree);
type = BinaryExpressionType.Minus;
}
break;
}
PushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression658);
right = multiplicativeExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, right.Tree);
retval.value = new BinaryExpression(type, retval.value, right != null ? right.value : null);
}
break;
default:
goto loop14;
}
}
while (true);
loop14:
; // Stops C# compiler whining that label 'loop14' has no statements
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "multiplicativeExpression"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:181:1: multiplicativeExpression returns [LogicalExpression value] : left= unaryExpression ( ( '*' | '/' | '%' ) right= unaryExpression )* ;
public multiplicativeExpression_return multiplicativeExpression() // throws RecognitionException [1]
{
var retval = new multiplicativeExpression_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken char_literal20 = null;
IToken char_literal21 = null;
IToken char_literal22 = null;
unaryExpression_return left = null;
unaryExpression_return right = null;
CommonTree char_literal20_tree = null;
CommonTree char_literal21_tree = null;
CommonTree char_literal22_tree = null;
var type = BinaryExpressionType.Unknown;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:185:2: (left= unaryExpression ( ( '*' | '/' | '%' ) right= unaryExpression )* )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:185:4: left= unaryExpression ( ( '*' | '/' | '%' ) right= unaryExpression )*
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression690);
left = unaryExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, left.Tree);
retval.value = left != null ? left.value : null;
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:185:52: ( ( '*' | '/' | '%' ) right= unaryExpression )*
do
{
var alt16 = 2;
var LA16_0 = input.LA(1);
if (LA16_0 >= 40 && LA16_0 <= 42)
{
alt16 = 1;
}
switch (alt16)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:186:4: ( '*' | '/' | '%' ) right= unaryExpression
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:186:4: ( '*' | '/' | '%' )
var alt15 = 3;
switch (input.LA(1))
{
case 40:
{
alt15 = 1;
}
break;
case 41:
{
alt15 = 2;
}
break;
case 42:
{
alt15 = 3;
}
break;
default:
var nvae_d15s0 =
new NoViableAltException("", 15, 0, input);
throw nvae_d15s0;
}
switch (alt15)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:186:6: '*'
{
char_literal20 = (IToken)Match(input, 40, FOLLOW_40_in_multiplicativeExpression701);
char_literal20_tree = (CommonTree)adaptor.Create(char_literal20);
adaptor.AddChild(root_0, char_literal20_tree);
type = BinaryExpressionType.Times;
}
break;
case 2:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:187:6: '/'
{
char_literal21 = (IToken)Match(input, 41, FOLLOW_41_in_multiplicativeExpression711);
char_literal21_tree = (CommonTree)adaptor.Create(char_literal21);
adaptor.AddChild(root_0, char_literal21_tree);
type = BinaryExpressionType.Div;
}
break;
case 3:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:188:6: '%'
{
char_literal22 = (IToken)Match(input, 42, FOLLOW_42_in_multiplicativeExpression721);
char_literal22_tree = (CommonTree)adaptor.Create(char_literal22);
adaptor.AddChild(root_0, char_literal22_tree);
type = BinaryExpressionType.Modulo;
}
break;
}
PushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression733);
right = unaryExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, right.Tree);
retval.value = new BinaryExpression(type, retval.value, right != null ? right.value : null);
}
break;
default:
goto loop16;
}
}
while (true);
loop16:
; // Stops C# compiler whining that label 'loop16' has no statements
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "unaryExpression"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:194:1: unaryExpression returns [LogicalExpression value] : ( primaryExpression | ( '!' | 'not' ) primaryExpression | ( '~' ) primaryExpression | '-' primaryExpression );
public unaryExpression_return unaryExpression() // throws RecognitionException [1]
{
var retval = new unaryExpression_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken set24 = null;
IToken char_literal26 = null;
IToken char_literal28 = null;
primaryExpression_return primaryExpression23 = null;
primaryExpression_return primaryExpression25 = null;
primaryExpression_return primaryExpression27 = null;
primaryExpression_return primaryExpression29 = null;
CommonTree set24_tree = null;
CommonTree char_literal26_tree = null;
CommonTree char_literal28_tree = null;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:195:2: ( primaryExpression | ( '!' | 'not' ) primaryExpression | ( '~' ) primaryExpression | '-' primaryExpression )
var alt17 = 4;
switch (input.LA(1))
{
case INTEGER:
case FLOAT:
case STRING:
case DATETIME:
case TRUE:
case FALSE:
case ID:
case NAME:
case 46:
{
alt17 = 1;
}
break;
case 43:
case 44:
{
alt17 = 2;
}
break;
case 45:
{
alt17 = 3;
}
break;
case 39:
{
alt17 = 4;
}
break;
default:
var nvae_d17s0 =
new NoViableAltException("", 17, 0, input);
throw nvae_d17s0;
}
switch (alt17)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:195:4: primaryExpression
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_primaryExpression_in_unaryExpression760);
primaryExpression23 = primaryExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, primaryExpression23.Tree);
retval.value = primaryExpression23 != null ? primaryExpression23.value : null;
}
break;
case 2:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:196:8: ( '!' | 'not' ) primaryExpression
{
root_0 = (CommonTree)adaptor.GetNilNode();
set24 = (IToken)input.LT(1);
if (input.LA(1) >= 43 && input.LA(1) <= 44)
{
input.Consume();
adaptor.AddChild(root_0, (CommonTree)adaptor.Create(set24));
state.errorRecovery = false;
}
else
{
var mse = new MismatchedSetException(null, input);
throw mse;
}
PushFollow(FOLLOW_primaryExpression_in_unaryExpression779);
primaryExpression25 = primaryExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, primaryExpression25.Tree);
retval.value = new UnaryExpression(UnaryExpressionType.Not, primaryExpression25 != null ? primaryExpression25.value : null);
}
break;
case 3:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:197:8: ( '~' ) primaryExpression
{
root_0 = (CommonTree)adaptor.GetNilNode();
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:197:8: ( '~' )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:197:9: '~'
{
char_literal26 = (IToken)Match(input, 45, FOLLOW_45_in_unaryExpression791);
char_literal26_tree = (CommonTree)adaptor.Create(char_literal26);
adaptor.AddChild(root_0, char_literal26_tree);
}
PushFollow(FOLLOW_primaryExpression_in_unaryExpression794);
primaryExpression27 = primaryExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, primaryExpression27.Tree);
retval.value = new UnaryExpression(UnaryExpressionType.BitwiseNot, primaryExpression27 != null ? primaryExpression27.value : null);
}
break;
case 4:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:198:8: '-' primaryExpression
{
root_0 = (CommonTree)adaptor.GetNilNode();
char_literal28 = (IToken)Match(input, 39, FOLLOW_39_in_unaryExpression805);
char_literal28_tree = (CommonTree)adaptor.Create(char_literal28);
adaptor.AddChild(root_0, char_literal28_tree);
PushFollow(FOLLOW_primaryExpression_in_unaryExpression807);
primaryExpression29 = primaryExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, primaryExpression29.Tree);
retval.value = new UnaryExpression(UnaryExpressionType.Negate, primaryExpression29 != null ? primaryExpression29.value : null);
}
break;
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "primaryExpression"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:201:1: primaryExpression returns [LogicalExpression value] : ( '(' logicalExpression ')' | expr= value | identifier ( arguments )? );
public primaryExpression_return primaryExpression() // throws RecognitionException [1]
{
var retval = new primaryExpression_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken char_literal30 = null;
IToken char_literal32 = null;
value_return expr = null;
logicalExpression_return logicalExpression31 = null;
identifier_return identifier33 = null;
arguments_return arguments34 = null;
CommonTree char_literal30_tree = null;
CommonTree char_literal32_tree = null;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:202:2: ( '(' logicalExpression ')' | expr= value | identifier ( arguments )? )
var alt19 = 3;
switch (input.LA(1))
{
case 46:
{
alt19 = 1;
}
break;
case INTEGER:
case FLOAT:
case STRING:
case DATETIME:
case TRUE:
case FALSE:
{
alt19 = 2;
}
break;
case ID:
case NAME:
{
alt19 = 3;
}
break;
default:
var nvae_d19s0 =
new NoViableAltException("", 19, 0, input);
throw nvae_d19s0;
}
switch (alt19)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:202:4: '(' logicalExpression ')'
{
root_0 = (CommonTree)adaptor.GetNilNode();
char_literal30 = (IToken)Match(input, 46, FOLLOW_46_in_primaryExpression829);
char_literal30_tree = (CommonTree)adaptor.Create(char_literal30);
adaptor.AddChild(root_0, char_literal30_tree);
PushFollow(FOLLOW_logicalExpression_in_primaryExpression831);
logicalExpression31 = logicalExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, logicalExpression31.Tree);
char_literal32 = (IToken)Match(input, 47, FOLLOW_47_in_primaryExpression833);
char_literal32_tree = (CommonTree)adaptor.Create(char_literal32);
adaptor.AddChild(root_0, char_literal32_tree);
retval.value = logicalExpression31 != null ? logicalExpression31.value : null;
}
break;
case 2:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:203:4: expr= value
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_value_in_primaryExpression843);
expr = value();
state.followingStackPointer--;
adaptor.AddChild(root_0, expr.Tree);
retval.value = expr != null ? expr.value : null;
}
break;
case 3:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:204:4: identifier ( arguments )?
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_identifier_in_primaryExpression851);
identifier33 = identifier();
state.followingStackPointer--;
adaptor.AddChild(root_0, identifier33.Tree);
retval.value = (LogicalExpression)(identifier33 != null ? identifier33.value : null);
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:204:66: ( arguments )?
var alt18 = 2;
var LA18_0 = input.LA(1);
if (LA18_0 == 46)
{
alt18 = 1;
}
switch (alt18)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:204:67: arguments
{
PushFollow(FOLLOW_arguments_in_primaryExpression856);
arguments34 = arguments();
state.followingStackPointer--;
adaptor.AddChild(root_0, arguments34.Tree);
retval.value = new FunctionExpression(identifier33 != null ? identifier33.value : null, (arguments34 != null ? arguments34.value : null).ToArray());
}
break;
}
}
break;
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "value"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:207:1: value returns [ValueExpression value] : ( INTEGER | FLOAT | STRING | DATETIME | TRUE | FALSE );
public value_return value() // throws RecognitionException [1]
{
var retval = new value_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken INTEGER35 = null;
IToken FLOAT36 = null;
IToken STRING37 = null;
IToken DATETIME38 = null;
IToken TRUE39 = null;
IToken FALSE40 = null;
CommonTree INTEGER35_tree = null;
CommonTree FLOAT36_tree = null;
CommonTree STRING37_tree = null;
CommonTree DATETIME38_tree = null;
CommonTree TRUE39_tree = null;
CommonTree FALSE40_tree = null;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:208:2: ( INTEGER | FLOAT | STRING | DATETIME | TRUE | FALSE )
var alt20 = 6;
switch (input.LA(1))
{
case INTEGER:
{
alt20 = 1;
}
break;
case FLOAT:
{
alt20 = 2;
}
break;
case STRING:
{
alt20 = 3;
}
break;
case DATETIME:
{
alt20 = 4;
}
break;
case TRUE:
{
alt20 = 5;
}
break;
case FALSE:
{
alt20 = 6;
}
break;
default:
var nvae_d20s0 =
new NoViableAltException("", 20, 0, input);
throw nvae_d20s0;
}
switch (alt20)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:208:5: INTEGER
{
root_0 = (CommonTree)adaptor.GetNilNode();
INTEGER35 = (IToken)Match(input, INTEGER, FOLLOW_INTEGER_in_value876);
INTEGER35_tree = (CommonTree)adaptor.Create(INTEGER35);
adaptor.AddChild(root_0, INTEGER35_tree);
try
{
retval.value = new ValueExpression(int.Parse(INTEGER35 != null ? INTEGER35.Text : null));
}
catch (OverflowException)
{
retval.value = new ValueExpression(long.Parse(INTEGER35 != null ? INTEGER35.Text : null));
}
}
break;
case 2:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:209:4: FLOAT
{
root_0 = (CommonTree)adaptor.GetNilNode();
FLOAT36 = (IToken)Match(input, FLOAT, FOLLOW_FLOAT_in_value884);
FLOAT36_tree = (CommonTree)adaptor.Create(FLOAT36);
adaptor.AddChild(root_0, FLOAT36_tree);
retval.value = new ValueExpression(double.Parse(FLOAT36 != null ? FLOAT36.Text : null, NumberStyles.Float, numberFormatInfo));
}
break;
case 3:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:210:4: STRING
{
root_0 = (CommonTree)adaptor.GetNilNode();
STRING37 = (IToken)Match(input, STRING, FOLLOW_STRING_in_value892);
STRING37_tree = (CommonTree)adaptor.Create(STRING37);
adaptor.AddChild(root_0, STRING37_tree);
retval.value = new ValueExpression(extractString(STRING37 != null ? STRING37.Text : null));
}
break;
case 4:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:211:5: DATETIME
{
root_0 = (CommonTree)adaptor.GetNilNode();
DATETIME38 = (IToken)Match(input, DATETIME, FOLLOW_DATETIME_in_value901);
DATETIME38_tree = (CommonTree)adaptor.Create(DATETIME38);
adaptor.AddChild(root_0, DATETIME38_tree);
retval.value = new ValueExpression(DateTime.Parse((DATETIME38 != null ? DATETIME38.Text : null).Substring(1, (DATETIME38 != null ? DATETIME38.Text : null).Length - 2)));
}
break;
case 5:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:212:4: TRUE
{
root_0 = (CommonTree)adaptor.GetNilNode();
TRUE39 = (IToken)Match(input, TRUE, FOLLOW_TRUE_in_value908);
TRUE39_tree = (CommonTree)adaptor.Create(TRUE39);
adaptor.AddChild(root_0, TRUE39_tree);
retval.value = new ValueExpression(true);
}
break;
case 6:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:213:4: FALSE
{
root_0 = (CommonTree)adaptor.GetNilNode();
FALSE40 = (IToken)Match(input, FALSE, FOLLOW_FALSE_in_value916);
FALSE40_tree = (CommonTree)adaptor.Create(FALSE40);
adaptor.AddChild(root_0, FALSE40_tree);
retval.value = new ValueExpression(false);
}
break;
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "identifier"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:216:1: identifier returns [Identifier value] : ( ID | NAME );
public identifier_return identifier() // throws RecognitionException [1]
{
var retval = new identifier_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken ID41 = null;
IToken NAME42 = null;
CommonTree ID41_tree = null;
CommonTree NAME42_tree = null;
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:217:2: ( ID | NAME )
var alt21 = 2;
var LA21_0 = input.LA(1);
if (LA21_0 == ID)
{
alt21 = 1;
}
else if (LA21_0 == NAME)
{
alt21 = 2;
}
else
{
var nvae_d21s0 =
new NoViableAltException("", 21, 0, input);
throw nvae_d21s0;
}
switch (alt21)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:217:5: ID
{
root_0 = (CommonTree)adaptor.GetNilNode();
ID41 = (IToken)Match(input, ID, FOLLOW_ID_in_identifier934);
ID41_tree = (CommonTree)adaptor.Create(ID41);
adaptor.AddChild(root_0, ID41_tree);
retval.value = new IdentifierExpression(ID41 != null ? ID41.Text : null);
}
break;
case 2:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:218:5: NAME
{
root_0 = (CommonTree)adaptor.GetNilNode();
NAME42 = (IToken)Match(input, NAME, FOLLOW_NAME_in_identifier942);
NAME42_tree = (CommonTree)adaptor.Create(NAME42);
adaptor.AddChild(root_0, NAME42_tree);
retval.value = new IdentifierExpression((NAME42 != null ? NAME42.Text : null).Substring(1, (NAME42 != null ? NAME42.Text : null).Length - 2));
}
break;
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "expressionList"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:221:1: expressionList returns [List<LogicalExpression> value] : first= logicalExpression ( ',' follow= logicalExpression )* ;
public expressionList_return expressionList() // throws RecognitionException [1]
{
var retval = new expressionList_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken char_literal43 = null;
logicalExpression_return first = null;
logicalExpression_return follow = null;
CommonTree char_literal43_tree = null;
var expressions = new List<LogicalExpression>();
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:225:2: (first= logicalExpression ( ',' follow= logicalExpression )* )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:225:4: first= logicalExpression ( ',' follow= logicalExpression )*
{
root_0 = (CommonTree)adaptor.GetNilNode();
PushFollow(FOLLOW_logicalExpression_in_expressionList966);
first = logicalExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, first.Tree);
expressions.Add(first != null ? first.value : null);
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:225:62: ( ',' follow= logicalExpression )*
do
{
var alt22 = 2;
var LA22_0 = input.LA(1);
if (LA22_0 == 48)
{
alt22 = 1;
}
switch (alt22)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:225:64: ',' follow= logicalExpression
{
char_literal43 = (IToken)Match(input, 48, FOLLOW_48_in_expressionList973);
char_literal43_tree = (CommonTree)adaptor.Create(char_literal43);
adaptor.AddChild(root_0, char_literal43_tree);
PushFollow(FOLLOW_logicalExpression_in_expressionList977);
follow = logicalExpression();
state.followingStackPointer--;
adaptor.AddChild(root_0, follow.Tree);
expressions.Add(follow != null ? follow.value : null);
}
break;
default:
goto loop22;
}
}
while (true);
loop22:
; // Stops C# compiler whining that label 'loop22' has no statements
retval.value = expressions;
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
// $ANTLR start "arguments"
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:229:1: arguments returns [List<LogicalExpression> value] : '(' ( expressionList )? ')' ;
public arguments_return arguments() // throws RecognitionException [1]
{
var retval = new arguments_return();
retval.Start = input.LT(1);
CommonTree root_0 = null;
IToken char_literal44 = null;
IToken char_literal46 = null;
expressionList_return expressionList45 = null;
CommonTree char_literal44_tree = null;
CommonTree char_literal46_tree = null;
retval.value = new List<LogicalExpression>();
try
{
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:233:2: ( '(' ( expressionList )? ')' )
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:233:4: '(' ( expressionList )? ')'
{
root_0 = (CommonTree)adaptor.GetNilNode();
char_literal44 = (IToken)Match(input, 46, FOLLOW_46_in_arguments1006);
char_literal44_tree = (CommonTree)adaptor.Create(char_literal44);
adaptor.AddChild(root_0, char_literal44_tree);
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:233:8: ( expressionList )?
var alt23 = 2;
var LA23_0 = input.LA(1);
if (LA23_0 >= INTEGER && LA23_0 <= NAME || LA23_0 == 39 || LA23_0 >= 43 && LA23_0 <= 46)
{
alt23 = 1;
}
switch (alt23)
{
case 1:
// C:\\Users\\s.ros\\Documents\\D<>veloppement\\NCalc\\Grammar\\NCalc.g:233:10: expressionList
{
PushFollow(FOLLOW_expressionList_in_arguments1010);
expressionList45 = expressionList();
state.followingStackPointer--;
adaptor.AddChild(root_0, expressionList45.Tree);
retval.value = expressionList45 != null ? expressionList45.value : null;
}
break;
}
char_literal46 = (IToken)Match(input, 47, FOLLOW_47_in_arguments1017);
char_literal46_tree = (CommonTree)adaptor.Create(char_literal46);
adaptor.AddChild(root_0, char_literal46_tree);
}
retval.Stop = input.LT(-1);
retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
adaptor.SetTokenBoundaries(retval.Tree, (IToken)retval.Start, (IToken)retval.Stop);
}
catch (RecognitionException re)
{
ReportError(re);
Recover(input, re);
// Conversion of the second argument necessary, but harmless
retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken)retval.Start, input.LT(-1), re);
}
finally { }
return retval;
}
public const int T__29 = 29;
public const int T__28 = 28;
public const int T__27 = 27;
public const int T__26 = 26;
public const int T__25 = 25;
public const int T__24 = 24;
public const int T__23 = 23;
public const int LETTER = 12;
public const int T__22 = 22;
public const int T__21 = 21;
public const int T__20 = 20;
public const int FLOAT = 5;
public const int ID = 10;
public const int EOF = -1;
public const int HexDigit = 17;
public const int T__19 = 19;
public const int NAME = 11;
public const int DIGIT = 13;
public const int T__42 = 42;
public const int INTEGER = 4;
public const int E = 14;
public const int T__43 = 43;
public const int T__40 = 40;
public const int T__41 = 41;
public const int T__46 = 46;
public const int T__47 = 47;
public const int T__44 = 44;
public const int T__45 = 45;
public const int T__48 = 48;
public const int DATETIME = 7;
public const int TRUE = 8;
public const int T__30 = 30;
public const int T__31 = 31;
public const int T__32 = 32;
public const int WS = 18;
public const int T__33 = 33;
public const int T__34 = 34;
public const int T__35 = 35;
public const int T__36 = 36;
public const int T__37 = 37;
public const int T__38 = 38;
public const int T__39 = 39;
public const int UnicodeEscape = 16;
public const int FALSE = 9;
public const int EscapeSequence = 15;
public const int STRING = 6;
private const char BS = '\\';
public static readonly string[] tokenNames = new[]
{
"<invalid>",
"<EOR>",
"<DOWN>",
"<UP>",
"INTEGER",
"FLOAT",
"STRING",
"DATETIME",
"TRUE",
"FALSE",
"ID",
"NAME",
"LETTER",
"DIGIT",
"E",
"EscapeSequence",
"UnicodeEscape",
"HexDigit",
"WS",
"'?'",
"':'",
"'||'",
"'or'",
"'&&'",
"'and'",
"'|'",
"'^'",
"'&'",
"'=='",
"'='",
"'!='",
"'<>'",
"'<'",
"'<='",
"'>'",
"'>='",
"'<<'",
"'>>'",
"'+'",
"'-'",
"'*'",
"'/'",
"'%'",
"'!'",
"'not'",
"'~'",
"'('",
"')'",
"','"
};
private static NumberFormatInfo numberFormatInfo = new NumberFormatInfo();
public static readonly BitSet FOLLOW_logicalExpression_in_ncalcExpression56 = new BitSet(new[] { 0x0000000000000000UL });
public static readonly BitSet FOLLOW_EOF_in_ncalcExpression58 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_conditionalExpression_in_logicalExpression78 = new BitSet(new[] { 0x0000000000080002UL });
public static readonly BitSet FOLLOW_19_in_logicalExpression84 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_conditionalExpression_in_logicalExpression88 = new BitSet(new[] { 0x0000000000100000UL });
public static readonly BitSet FOLLOW_20_in_logicalExpression90 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_conditionalExpression_in_logicalExpression94 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_booleanAndExpression_in_conditionalExpression121 = new BitSet(new[] { 0x0000000000600002UL });
public static readonly BitSet FOLLOW_set_in_conditionalExpression130 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_conditionalExpression_in_conditionalExpression146 = new BitSet(new[] { 0x0000000000600002UL });
public static readonly BitSet FOLLOW_bitwiseOrExpression_in_booleanAndExpression180 = new BitSet(new[] { 0x0000000001800002UL });
public static readonly BitSet FOLLOW_set_in_booleanAndExpression189 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_bitwiseOrExpression_in_booleanAndExpression205 = new BitSet(new[] { 0x0000000001800002UL });
public static readonly BitSet FOLLOW_bitwiseXOrExpression_in_bitwiseOrExpression237 = new BitSet(new[] { 0x0000000002000002UL });
public static readonly BitSet FOLLOW_25_in_bitwiseOrExpression246 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_bitwiseOrExpression_in_bitwiseOrExpression256 = new BitSet(new[] { 0x0000000002000002UL });
public static readonly BitSet FOLLOW_bitwiseAndExpression_in_bitwiseXOrExpression290 = new BitSet(new[] { 0x0000000004000002UL });
public static readonly BitSet FOLLOW_26_in_bitwiseXOrExpression299 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_bitwiseAndExpression_in_bitwiseXOrExpression309 = new BitSet(new[] { 0x0000000004000002UL });
public static readonly BitSet FOLLOW_equalityExpression_in_bitwiseAndExpression341 = new BitSet(new[] { 0x0000000008000002UL });
public static readonly BitSet FOLLOW_27_in_bitwiseAndExpression350 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_equalityExpression_in_bitwiseAndExpression360 = new BitSet(new[] { 0x0000000008000002UL });
public static readonly BitSet FOLLOW_relationalExpression_in_equalityExpression394 = new BitSet(new[] { 0x00000000F0000002UL });
public static readonly BitSet FOLLOW_set_in_equalityExpression405 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_set_in_equalityExpression422 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_relationalExpression_in_equalityExpression441 = new BitSet(new[] { 0x00000000F0000002UL });
public static readonly BitSet FOLLOW_shiftExpression_in_relationalExpression474 = new BitSet(new[] { 0x0000000F00000002UL });
public static readonly BitSet FOLLOW_32_in_relationalExpression485 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_33_in_relationalExpression495 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_34_in_relationalExpression506 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_35_in_relationalExpression516 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_shiftExpression_in_relationalExpression528 = new BitSet(new[] { 0x0000000F00000002UL });
public static readonly BitSet FOLLOW_additiveExpression_in_shiftExpression560 = new BitSet(new[] { 0x0000003000000002UL });
public static readonly BitSet FOLLOW_36_in_shiftExpression571 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_37_in_shiftExpression581 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_additiveExpression_in_shiftExpression593 = new BitSet(new[] { 0x0000003000000002UL });
public static readonly BitSet FOLLOW_multiplicativeExpression_in_additiveExpression625 = new BitSet(new[] { 0x000000C000000002UL });
public static readonly BitSet FOLLOW_38_in_additiveExpression636 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_39_in_additiveExpression646 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_multiplicativeExpression_in_additiveExpression658 = new BitSet(new[] { 0x000000C000000002UL });
public static readonly BitSet FOLLOW_unaryExpression_in_multiplicativeExpression690 = new BitSet(new[] { 0x0000070000000002UL });
public static readonly BitSet FOLLOW_40_in_multiplicativeExpression701 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_41_in_multiplicativeExpression711 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_42_in_multiplicativeExpression721 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_unaryExpression_in_multiplicativeExpression733 = new BitSet(new[] { 0x0000070000000002UL });
public static readonly BitSet FOLLOW_primaryExpression_in_unaryExpression760 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_set_in_unaryExpression771 = new BitSet(new[] { 0x0000400000000FF0UL });
public static readonly BitSet FOLLOW_primaryExpression_in_unaryExpression779 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_45_in_unaryExpression791 = new BitSet(new[] { 0x0000400000000FF0UL });
public static readonly BitSet FOLLOW_primaryExpression_in_unaryExpression794 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_39_in_unaryExpression805 = new BitSet(new[] { 0x0000400000000FF0UL });
public static readonly BitSet FOLLOW_primaryExpression_in_unaryExpression807 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_46_in_primaryExpression829 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_logicalExpression_in_primaryExpression831 = new BitSet(new[] { 0x0000800000000000UL });
public static readonly BitSet FOLLOW_47_in_primaryExpression833 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_value_in_primaryExpression843 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_identifier_in_primaryExpression851 = new BitSet(new[] { 0x0000400000000002UL });
public static readonly BitSet FOLLOW_arguments_in_primaryExpression856 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_INTEGER_in_value876 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_FLOAT_in_value884 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_STRING_in_value892 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_DATETIME_in_value901 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_TRUE_in_value908 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_FALSE_in_value916 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_ID_in_identifier934 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_NAME_in_identifier942 = new BitSet(new[] { 0x0000000000000002UL });
public static readonly BitSet FOLLOW_logicalExpression_in_expressionList966 = new BitSet(new[] { 0x0001000000000002UL });
public static readonly BitSet FOLLOW_48_in_expressionList973 = new BitSet(new[] { 0x0000788000000FF0UL });
public static readonly BitSet FOLLOW_logicalExpression_in_expressionList977 = new BitSet(new[] { 0x0001000000000002UL });
public static readonly BitSet FOLLOW_46_in_arguments1006 = new BitSet(new[] { 0x0000F88000000FF0UL });
public static readonly BitSet FOLLOW_expressionList_in_arguments1010 = new BitSet(new[] { 0x0000800000000000UL });
public static readonly BitSet FOLLOW_47_in_arguments1017 = new BitSet(new[] { 0x0000000000000002UL });
public class ncalcExpression_return : ParserRuleReturnScope
{
public LogicalExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "ncalcExpression"
public class logicalExpression_return : ParserRuleReturnScope
{
public LogicalExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "logicalExpression"
public class conditionalExpression_return : ParserRuleReturnScope
{
public LogicalExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "conditionalExpression"
public class booleanAndExpression_return : ParserRuleReturnScope
{
public LogicalExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "booleanAndExpression"
public class bitwiseOrExpression_return : ParserRuleReturnScope
{
public LogicalExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "bitwiseOrExpression"
public class bitwiseXOrExpression_return : ParserRuleReturnScope
{
public LogicalExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "bitwiseXOrExpression"
public class bitwiseAndExpression_return : ParserRuleReturnScope
{
public LogicalExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "bitwiseAndExpression"
public class equalityExpression_return : ParserRuleReturnScope
{
public LogicalExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "equalityExpression"
public class relationalExpression_return : ParserRuleReturnScope
{
public LogicalExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "relationalExpression"
public class shiftExpression_return : ParserRuleReturnScope
{
public LogicalExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "shiftExpression"
public class additiveExpression_return : ParserRuleReturnScope
{
public LogicalExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "additiveExpression"
public class multiplicativeExpression_return : ParserRuleReturnScope
{
public LogicalExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "multiplicativeExpression"
public class unaryExpression_return : ParserRuleReturnScope
{
public LogicalExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "unaryExpression"
public class primaryExpression_return : ParserRuleReturnScope
{
public LogicalExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "primaryExpression"
public class value_return : ParserRuleReturnScope
{
public ValueExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "value"
public class identifier_return : ParserRuleReturnScope
{
public IdentifierExpression value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "identifier"
public class expressionList_return : ParserRuleReturnScope
{
public List<LogicalExpression> value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
// $ANTLR end "expressionList"
public class arguments_return : ParserRuleReturnScope
{
public List<LogicalExpression> value;
private CommonTree tree;
override public object Tree
{
get
{
return tree;
}
set
{
tree = (CommonTree)value;
}
}
};
}
}