Exemple #1
0
 public virtual CExpression Bin(CTokenType op, CExpression left, CExpression right)
 {
     return new CBinaryExpression
     {
         Operation = op,
         Left = left,
         Right = right
     };
 }
Exemple #2
0
 public CToken(CTokenType type) : this(type, null)
 {
 }
Exemple #3
0
 private CToken Tok(CTokenType type)
 {
     return new CToken(type);
 }
 private void Expect(CTokenType expected, object expectedValue)
 {
     var token = lexer.Read();
     if (token.Type != expected)
         throw new FormatException(string.Format("Expected '{0}' but got '{1}'.", expected, token.Type));
     if (!expectedValue.Equals(token.Value))
         throw new FormatException(string.Format("Expected '{0}' but got '{1}.", expectedValue, token.Value));
 }
 private object Expect(CTokenType expected)
 {
     var token = lexer.Read();
     return Expect(expected, token);
 }
Exemple #6
0
 public void ExpectCurrentType(CTokenType ExpectedType)
 {
     if (Current.Type != ExpectedType) throw(new Exception(String.Format("Expecting token type {0} but found {1}", ExpectedType, Current.Type)));
 }
Exemple #7
0
 public CExpression Unary(CTokenType operation, CExpression expr)
 {
     return new CUnaryExpression { Operation = operation, Expression = expr };
 }
Exemple #8
0
 private Exception Unexpected(CTokenType expected, CTokenType actual)
 {
     throw new FormatException(string.Format("Expected token '{0}' but saw '{1}' on line {2}.", expected, actual, lexer.LineNumber));
 }
Exemple #9
0
 public CToken(CTokenType type, object value)
 {
     this.type  = type;
     this.value = value;
 }
Exemple #10
0
 public CToken(CTokenType type) : this(type, null)
 {
 }
Exemple #11
0
 public CExpression Unary(CTokenType operation, CExpression expr)
 {
     return(new CUnaryExpression {
         Operation = operation, Expression = expr
     });
 }
Exemple #12
0
 public TypeSpec SimpleType(CTokenType type)
 {
     return(new SimpleTypeSpec {
         Type = type
     });
 }
Exemple #13
0
 public TypeQualifier TypeQualifier(CTokenType qualifier)
 {
     return(new TypeQualifier {
         Qualifier = qualifier
     });
 }
Exemple #14
0
 public DeclSpec StorageClass(CTokenType token)
 {
     return(new StorageClassSpec {
         Type = token
     });
 }
Exemple #15
0
 public CExpression PreIncrement(CTokenType token, CExpression uexpr)
 {
     throw new NotImplementedException();
 }
Exemple #16
0
 private void Expect(CTokenType expectedType, object expectedValue)
 {
     var token = lexer.Read();
     Assert.AreEqual(expectedType, token.Type);
     Assert.AreEqual(expectedValue, token.Value);
 }
Exemple #17
0
 public void AssertToken(CTokenType expType, object expectedValue)
 {
     var token = lex.Read();
     Assert.AreEqual(expType, token.Type);
     Assert.AreEqual(expectedValue, token.Value);
 }
Exemple #18
0
 private CToken Tok(CTokenType type)
 {
     return(new CToken(type));
 }
Exemple #19
0
        private void AssertToken(CTokenType exp)
        {
            var token = lex.Read();

            Assert.AreEqual(exp, token.Type);
        }
Exemple #20
0
 private CToken Tok(CTokenType type, object value)
 {
     return(new CToken(type, value));
 }
Exemple #21
0
 public CExpression PostIncrement(CExpression e, CTokenType token)
 {
     return new IncrementExpression
     {
         Expression = e,
         Incrementor = token,
         Prefix = false
     };
 }
Exemple #22
0
        private void Expect(CTokenType expectedType)
        {
            var token = lexer.Read();

            Assert.AreEqual(expectedType, token.Type);
        }
 private TypeSpec SType(CTokenType type)
 {
     return new SimpleTypeSpec { Type = type };
 }
 private void Peek(int n, CTokenType expectedType, string expectedValue)
 {
     var token = lexer.Peek(n);
     Assert.AreEqual(expectedType, token.Type);
     Assert.AreEqual(expectedValue, token.Value);
 }
Exemple #25
0
 private object Expect(CTokenType expected, CToken actualToken)
 {
     if (actualToken.Type != expected)
         throw new FormatException(string.Format("Expected '{0}' but got '{1}'.", expected, actualToken.Type));
     return actualToken.Value;
 }
Exemple #26
0
 public CExpression PreIncrement(CTokenType token, CExpression uexpr)
 {
     throw new NotImplementedException();
 }
        private static Token<CTokenType> GenerateToken(CTokenType type, string value = "", int line = 0)
        {
            var token = CToken.Create(new Token<TokenType>
            {
                LineNumber = line,
                PositionInLine = 0,
                Type = TokenType.INVALID,
                Value = value
            });

            token.Type = type;

            return token;
        }
Exemple #28
0
 public DeclSpec StorageClass(CTokenType token)
 {
     return new StorageClassSpec {  Type = token };
 }
Exemple #29
0
 private CToken Tok(CTokenType type, object value)
 {
     return new CToken(type, value);
 }
Exemple #30
0
 public TypeQualifier TypeQualifier(CTokenType qualifier)
 {
     return new TypeQualifier { Qualifier = qualifier };
 }
Exemple #31
0
 public CToken(CTokenType type, object value)
 {
     this.type = type;
     this.value = value;
 }
Exemple #32
0
 public TypeSpec SimpleType(CTokenType type)
 {
     return new SimpleTypeSpec { Type = type };
 }
Exemple #33
0
 private void AssertToken(CTokenType exp)
 {
     var token = lex.Read();
     Assert.AreEqual(exp, token.Type);
 }
Exemple #34
0
 public TypeSpec ComplexType(CTokenType token, int alignment, string tag, List<StructDecl> decls)
 {
     return new ComplexTypeSpec
     {
         Type = token,
         Name = tag,
         Alignment = alignment,
         DeclList = decls,
     };
 }
Exemple #35
0
 private object ExpectToken(CTokenType token)
 {
     var t = lexer.Read();
     if (t.Type != token)
         throw Unexpected(token, t.Type);
     return t.Value;
 }
Exemple #36
0
 public Declarator CallConventionDeclarator(CTokenType conv, Declarator decl)
 {
     return new CallConventionDeclarator
     {
         Convention = conv,
         Declarator = decl,
     };
 }
Exemple #37
0
 private bool PeekThenDiscard(CTokenType type)
 {
     if (lexer.Peek(0).Type != type)
         return false;
     lexer.Read();
     return true;
 }
Exemple #38
0
        private object Expect(CTokenType expected)
        {
            var token = lexer.Read();

            return(Expect(expected, token));
        }