zclsyntax: separate tokens for assign = and equality test ==

This commit is contained in:
Martin Atkins 2017-06-04 16:00:40 -07:00
parent c3f4694e06
commit cac847b163
5 changed files with 411 additions and 398 deletions

View File

@ -45,7 +45,7 @@ func init() {
TokenAnd: OpLogicalAnd, TokenAnd: OpLogicalAnd,
}, },
{ {
TokenEqual: OpEqual, TokenEqualOp: OpEqual,
TokenNotEqual: OpNotEqual, TokenNotEqual: OpNotEqual,
}, },
{ {

File diff suppressed because it is too large Load Diff

View File

@ -39,6 +39,7 @@ func scanTokens(data []byte, filename string, start zcl.Pos, mode scanMode) []To
# Symbols that just represent themselves are handled as a single rule. # Symbols that just represent themselves are handled as a single rule.
SelfToken = "[" | "]" | "(" | ")" | "." | "," | "*" | "/" | "+" | "-" | "=" | "<" | ">" | "!" | "?" | ":" | "\n" | "&" | "|" | "~" | "^" | ";" | "`"; SelfToken = "[" | "]" | "(" | ")" | "." | "," | "*" | "/" | "+" | "-" | "=" | "<" | ">" | "!" | "?" | ":" | "\n" | "&" | "|" | "~" | "^" | ";" | "`";
EqualOp = "==";
NotEqual = "!="; NotEqual = "!=";
GreaterThanEqual = ">="; GreaterThanEqual = ">=";
LessThanEqual = "<="; LessThanEqual = "<=";
@ -241,6 +242,7 @@ func scanTokens(data []byte, filename string, start zcl.Pos, mode scanMode) []To
Comment => { token(TokenComment) }; Comment => { token(TokenComment) };
Newline => { token(TokenNewline) }; Newline => { token(TokenNewline) };
EqualOp => { token(TokenEqualOp); };
NotEqual => { token(TokenNotEqual); }; NotEqual => { token(TokenNotEqual); };
GreaterThanEqual => { token(TokenGreaterThanEq); }; GreaterThanEqual => { token(TokenGreaterThanEq); };
LessThanEqual => { token(TokenLessThanEq); }; LessThanEqual => { token(TokenLessThanEq); };

View File

@ -47,6 +47,7 @@ const (
TokenPercent TokenType = '%' TokenPercent TokenType = '%'
TokenEqual TokenType = '=' TokenEqual TokenType = '='
TokenEqualOp TokenType = '≔'
TokenNotEqual TokenType = '≠' TokenNotEqual TokenType = '≠'
TokenLessThan TokenType = '<' TokenLessThan TokenType = '<'
TokenLessThanEq TokenType = '≤' TokenLessThanEq TokenType = '≤'

View File

@ -4,7 +4,7 @@ package zclsyntax
import "fmt" import "fmt"
const _TokenType_name = "TokenNilTokenNewlineTokenBangTokenPercentTokenBitwiseAndTokenOParenTokenCParenTokenStarTokenPlusTokenCommaTokenMinusTokenDotTokenSlashTokenColonTokenSemicolonTokenLessThanTokenEqualTokenGreaterThanTokenQuestionTokenCommentTokenOHeredocTokenIdentTokenNumberLitTokenQuotedLitTokenStringLitTokenOBrackTokenCBrackTokenBitwiseXorTokenBacktickTokenCHeredocTokenOBraceTokenBitwiseOrTokenCBraceTokenBitwiseNotTokenOQuoteTokenCQuoteTokenTemplateControlTokenTemplateSeqEndTokenAndTokenOrTokenTemplateInterpTokenNotEqualTokenLessThanEqTokenGreaterThanEqTokenEOFTokenTabsTokenStarStarTokenInvalidTokenBadUTF8" const _TokenType_name = "TokenNilTokenNewlineTokenBangTokenPercentTokenBitwiseAndTokenOParenTokenCParenTokenStarTokenPlusTokenCommaTokenMinusTokenDotTokenSlashTokenColonTokenSemicolonTokenLessThanTokenEqualTokenGreaterThanTokenQuestionTokenCommentTokenOHeredocTokenIdentTokenNumberLitTokenQuotedLitTokenStringLitTokenOBrackTokenCBrackTokenBitwiseXorTokenBacktickTokenCHeredocTokenOBraceTokenBitwiseOrTokenCBraceTokenBitwiseNotTokenOQuoteTokenCQuoteTokenTemplateControlTokenTemplateSeqEndTokenAndTokenOrTokenTemplateInterpTokenEqualOpTokenNotEqualTokenLessThanEqTokenGreaterThanEqTokenEOFTokenTabsTokenStarStarTokenInvalidTokenBadUTF8"
var _TokenType_map = map[TokenType]string{ var _TokenType_map = map[TokenType]string{
0: _TokenType_name[0:8], 0: _TokenType_name[0:8],
@ -48,14 +48,15 @@ var _TokenType_map = map[TokenType]string{
8743: _TokenType_name[462:470], 8743: _TokenType_name[462:470],
8744: _TokenType_name[470:477], 8744: _TokenType_name[470:477],
8747: _TokenType_name[477:496], 8747: _TokenType_name[477:496],
8800: _TokenType_name[496:509], 8788: _TokenType_name[496:508],
8804: _TokenType_name[509:524], 8800: _TokenType_name[508:521],
8805: _TokenType_name[524:542], 8804: _TokenType_name[521:536],
9220: _TokenType_name[542:550], 8805: _TokenType_name[536:554],
9225: _TokenType_name[550:559], 9220: _TokenType_name[554:562],
10138: _TokenType_name[559:572], 9225: _TokenType_name[562:571],
65533: _TokenType_name[572:584], 10138: _TokenType_name[571:584],
128169: _TokenType_name[584:596], 65533: _TokenType_name[584:596],
128169: _TokenType_name[596:608],
} }
func (i TokenType) String() string { func (i TokenType) String() string {