コード例 #1
0
ファイル: CSharp3.cs プロジェクト: vadimskipin/coco-csharp
        bool PPUnaryExpression(PPScanner scan)
        {
            bool not = false;
              PPToken ppt = scan.peek();

              while (ppt.getKind() == PPToken.eNot) {
             scan.next();
             not = !not;
             ppt = scan.peek();
              }

              return not ^ PPPrimaryExpression(scan);
        }
コード例 #2
0
ファイル: CSharp3.cs プロジェクト: vadimskipin/coco-csharp
        bool PPEqualityExpression(PPScanner scan)
        {
            bool e1, e2;

              e1 = PPUnaryExpression(scan);
              int tk = scan.peek().getKind();

              while (tk == PPToken.eEQ || tk == PPToken.eNE) {
             scan.next();
             e2 = PPUnaryExpression(scan);
             if (tk == PPToken.eEQ) {
            e1 = e1 == e2;
             } else {
            // tk == PPToken.eNE
            e1 = e1 != e2;
             }
             tk = scan.peek().getKind();
              }

              return e1;
        }
コード例 #3
0
ファイル: CSharp3.cs プロジェクト: vadimskipin/coco-csharp
        // preprocessor expression parser start
        bool PPOrExpression(PPScanner scan)
        {
            bool e1, e2;

              e1 = PPAndExpression(scan);
              while (scan.peek().getKind() == PPToken.eOr) {
             scan.next();
             e2 = PPAndExpression(scan);
             e1 = e1 || e2;
              }

              return e1;
        }
コード例 #4
0
ファイル: CSharp3.cs プロジェクト: vadimskipin/coco-csharp
        bool PPAndExpression(PPScanner scan)
        {
            bool e1, e2;
              e1 = PPEqualityExpression(scan);

              while (scan.peek().getKind() == PPToken.eAnd) {
             scan.next();
             e2 = PPEqualityExpression(scan);
             e1 = e1 && e2;
              }

              return e1;
        }