86 lines
3.0 KiB
Go
86 lines
3.0 KiB
Go
// Copyright (c) 2024 Celestino Amoroso (celestino.amoroso@gmail.com).
|
|
// All rights reserved.
|
|
|
|
// 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,
|
|
}
|
|
}
|