コード例 #1
0
ファイル: QuickTest.cs プロジェクト: jorik041/QuickTest
 static Expression ParseRelational(Token[] toks, ref int p)
 {
     var end = toks.Length;
     var e = ParseAdditive (toks, ref p);
     if (p < end && (toks[p].Type == TokenType.LessThan || toks[p].Type == TokenType.LessThanOrEqual ||
         toks[p].Type == TokenType.GreaterThan || toks[p].Type == TokenType.GreaterThanOrEqual)) {
         var op = toks[p].Type;
         p++;
         var o = ParseAdditive (toks, ref p);
         e = new BinOpExpression (op, e, o);
     }
     return e;
 }
コード例 #2
0
ファイル: QuickTest.cs プロジェクト: jorik041/QuickTest
 static Expression ParseMultiplicative(Token[] toks, ref int p)
 {
     var end = toks.Length;
     var e = ParseUnary (toks, ref p);
     while (p < end && (toks[p].Type == TokenType.Multiply || toks[p].Type == TokenType.Divide)) {
         var op = toks[p].Type;
         p++;
         var o = ParseUnary (toks, ref p);
         e = new BinOpExpression (op, e, o);
     }
     return e;
 }
コード例 #3
0
ファイル: QuickTest.cs プロジェクト: jorik041/QuickTest
 static Expression ParseConditionalOr(Token[] toks, ref int p)
 {
     var end = toks.Length;
     var e = ParseConditionalAnd (toks, ref p);
     while (p < end && toks[p].Type == TokenType.LogicalOr) {
         p++;
         var o = ParseConditionalAnd (toks, ref p);
         e = new BinOpExpression (TokenType.LogicalOr, e, o);
     }
     return e;
 }
コード例 #4
0
ファイル: QuickTest.cs プロジェクト: jorik041/QuickTest
 static Expression ParseEquality(Token[] toks, ref int p)
 {
     var end = toks.Length;
     var e = ParseRelational (toks, ref p);
     if (p < end && (toks[p].Type == TokenType.Equal || toks[p].Type == TokenType.NotEqual)) {
         var op = toks[p].Type;
         p++;
         var o = ParseRelational (toks, ref p);
         e = new BinOpExpression (op, e, o);
     }
     return e;
 }
コード例 #5
0
ファイル: QuickTest.cs プロジェクト: jorik041/QuickTest
 static Expression ParseAdditive(Token[] toks, ref int p)
 {
     var end = toks.Length;
     var e = ParseMultiplicative (toks, ref p);
     while (p < end && (toks[p].Type == TokenType.Add || toks[p].Type == TokenType.Subtract)) {
         var op = toks[p].Type;
         p++;
         var o = ParseMultiplicative (toks, ref p);
         e = new BinOpExpression (op, e, o);
     }
     return e;
 }