83 lines
2.9 KiB
Go
83 lines
2.9 KiB
Go
|
// Symbol.go
|
||
|
package expr
|
||
|
|
||
|
type Symbol int16
|
||
|
|
||
|
const (
|
||
|
SymUnknown Symbol = iota - 1 // -1: Unknown symbol
|
||
|
SymNone // 0: Null value for variable of type symbol
|
||
|
SymError // 1: Error reading from stream
|
||
|
SymEos // 2: End of stream
|
||
|
SymMinus // 3: '-'
|
||
|
SymMinusEqual // 4: '-='
|
||
|
SymDoubleMinus // 5: '--'
|
||
|
SymPlus // 6: '+'
|
||
|
SymPlusEqual // 7: '+='
|
||
|
SymDoublePlus // 8: '++'
|
||
|
SymStar // 9: '*'
|
||
|
SymDoubleStar // 10: '**'
|
||
|
SymSlash // 11: '/'
|
||
|
SymBackSlash // 12: '\'
|
||
|
SymVertBar // 13: '|'
|
||
|
SymDoubleVertBar // 14: '||'
|
||
|
SymComma // 15: ','
|
||
|
SymColon // 16: ':'
|
||
|
SymSemiColon // 17: ';'
|
||
|
SymDot // 18: '.'
|
||
|
SymQuote // 19: '\''
|
||
|
SymDoubleQuote // 20: '"'
|
||
|
SymBackTick // 0: '`'
|
||
|
SymExclamation // 0: '!'
|
||
|
SymQuestion // 0: '?'
|
||
|
SymAmpersand // 0: '&&'
|
||
|
SymDoubleAmpersand // 0: '&&'
|
||
|
SymPercent // 0: '%'
|
||
|
SymAt // 0: '@'
|
||
|
SymUndescore // 0: '_'
|
||
|
SymEqual // 0: '='
|
||
|
SymDoubleEqual // 0: '=='
|
||
|
SymLess // 0: '<'
|
||
|
SymLessOrEqual // 0: '<='
|
||
|
SymGreater // 0: '>'
|
||
|
SymGreaterOrEqual // 0: '>='
|
||
|
SymLessGreater // 0: '<>'
|
||
|
SymNotEqual // 0: '!='
|
||
|
SymDollar // 0: '$'
|
||
|
SymHash // 0: '#'
|
||
|
SymOpenRound // 0: '('
|
||
|
SymClosedRound // 0: ')'
|
||
|
SymOpenSquare // 0: '['
|
||
|
SymClosedSquare // 0: ']'
|
||
|
SymOpenBrace // 0: '{'
|
||
|
SymClosedBrace // 0: '}'
|
||
|
SymChangeSign
|
||
|
SymUnchangeSign
|
||
|
SymIdentifier
|
||
|
SymBool
|
||
|
SymInteger
|
||
|
SymFloat
|
||
|
SymString
|
||
|
SymKwAnd
|
||
|
SymKwNot
|
||
|
SymKwOr
|
||
|
SymOr
|
||
|
SymAnd
|
||
|
SymNot
|
||
|
SymComment
|
||
|
SymFunction
|
||
|
// SymOpenComment // 0: '/*'
|
||
|
// SymClosedComment // 0: '*/'
|
||
|
// SymOneLineComment // 0: '//'
|
||
|
)
|
||
|
|
||
|
var keywords map[string]Symbol
|
||
|
|
||
|
func init() {
|
||
|
//keywords = make(map[string]Symbol)
|
||
|
keywords = map[string]Symbol{
|
||
|
"AND": SymKwAnd,
|
||
|
"OR": SymKwOr,
|
||
|
"NOT": SymKwNot,
|
||
|
}
|
||
|
}
|