示例#1
0
 public static KeywordLexeme Create(ReservedKeyword keyword, int lineNumber, int index)
 {
     return(keyword switch
     {
         ReservedKeyword.And => new OperatorKeywordLexeme(OperatorPrecedenceGroup.LogicalAnd, keyword, lineNumber, index),
         ReservedKeyword.Or => new OperatorKeywordLexeme(OperatorPrecedenceGroup.LogicalOr, keyword, lineNumber, index),
         ReservedKeyword.Xor => new OperatorKeywordLexeme(OperatorPrecedenceGroup.LogicalXor, keyword, lineNumber, index),
         ReservedKeyword.Not => new OperatorKeywordLexeme(OperatorPrecedenceGroup.LogicalNot, keyword, lineNumber, index),
         ReservedKeyword.Div or ReservedKeyword.Mod => new OperatorKeywordLexeme(OperatorPrecedenceGroup.Multiplicative, keyword, lineNumber, index),
         _ => new KeywordLexeme(keyword, lineNumber, index),
     });
示例#2
0
 private KeywordLexeme(ReservedKeyword keyword, int lineNumber, int index) : base(lineNumber, index)
 {
     Keyword = keyword;
 }
示例#3
0
 public OperatorKeywordLexeme(OperatorPrecedenceGroup precedenceGroup, ReservedKeyword keyword, int lineNumber, int index) : base(keyword, lineNumber, index)
 {
     PrecedenceGroup = precedenceGroup;
 }