new type LinkedList, preliminary implementation
This commit is contained in:
+101
-98
@@ -7,104 +7,107 @@ package scan
|
||||
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: '.'
|
||||
SymDotSlash // 19: './'
|
||||
SymQuote // 20: '\''
|
||||
SymDoubleQuote // 21: '"'
|
||||
SymBackTick // 22: '`'
|
||||
SymExclamation // 23: '!'
|
||||
SymQuestion // 24: '?'
|
||||
SymAmpersand // 25: '&'
|
||||
SymDoubleAmpersand // 26: '&&'
|
||||
SymPercent // 27: '%'
|
||||
SymAt // 28: '@'
|
||||
SymUndescore // 29: '_'
|
||||
SymEqual // 30: '='
|
||||
SymColonEqual // 31: ':='
|
||||
SymDoubleEqual // 32: '=='
|
||||
SymLess // 33: '<'
|
||||
SymLessOrEqual // 34: '<='
|
||||
SymGreater // 35: '>'
|
||||
SymGreaterOrEqual // 36: '>='
|
||||
SymLessGreater // 37: '<>'
|
||||
SymNotEqual // 38: '!='
|
||||
SymDollar // 39: '$'
|
||||
SymHash // 40: '#'
|
||||
SymOpenRound // 41: '('
|
||||
SymClosedRound // 42: ')'
|
||||
SymOpenSquare // 43: '['
|
||||
SymClosedSquare // 44: ']'
|
||||
SymOpenBrace // 45: '{'
|
||||
SymClosedBrace // 46: '}'
|
||||
SymTilde // 47: '~'
|
||||
SymDoubleQuestion // 48: '??'
|
||||
SymQuestionEqual // 49: '?='
|
||||
SymQuestionExclam // 50: '?!'
|
||||
SymDoubleAt // 51: '@@'
|
||||
SymDoubleColon // 52: '::'
|
||||
SymDoubleGreater // 53: '>>'
|
||||
SymDoubleLess // 54: '<<'
|
||||
SymCaret // 55: '^'
|
||||
SymDollarRound // 56: '$('
|
||||
SymOpenClosedRound // 57: '()'
|
||||
SymDoubleDollar // 58: '$$'
|
||||
SymDoubleDot // 59: '..'
|
||||
SymTripleDot // 60: '...'
|
||||
SymStarEqual // 61: '*='
|
||||
SymSlashEqual // 62: '/='
|
||||
SymPercEqual // 63: '%='
|
||||
SymDoubleLessEqual // 64: '<<='
|
||||
SymDoubleGreaterEqual // 65: '>>='
|
||||
SymAmpersandEqual // 66: '&='
|
||||
SymVertBarEqual // 67: '|='
|
||||
SymCaretEqual // 68: '^='
|
||||
SymPlusGreater // 69: '+>'
|
||||
SymLessPlus // 70: '<+'
|
||||
SymChangeSign // 71: '-'
|
||||
SymUnchangeSign // 72: '+''
|
||||
SymDereference // 73: '*'
|
||||
SymPreInc // 74: '++'
|
||||
SymPreDec // 75: '--'
|
||||
SymIdentifier // 76: identifier
|
||||
SymBool // 77: boolean
|
||||
SymInteger // 78: integer
|
||||
SymVariable // 79: variable
|
||||
SymFloat // 80: float
|
||||
SymFraction // 81: fraction
|
||||
SymString // 82: string
|
||||
SymIterator // 83: iterator
|
||||
SymOr // 84: 'or'
|
||||
SymAnd // 85: 'and'
|
||||
SymNot // 86: 'not'
|
||||
SymComment // 87: comment
|
||||
SymFuncCall // 88: function call
|
||||
SymFuncDef // 89: function definition
|
||||
SymList // 90: list
|
||||
SymDict // 91: dict
|
||||
SymIndex // 92: index
|
||||
SymRange // 93: range [index : index]
|
||||
SymExpression // 94: expression
|
||||
SymSelector // 95: selector <selector> ::= <expr> "?" <selector-case> {":" <selector-case>} ["::" <default-selector-case>]
|
||||
SymSelectorCase // 96: <selector-case> ::= [<list>] "{" <multi-expr> "}"
|
||||
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: '.'
|
||||
SymDotSlash // 19: './'
|
||||
SymQuote // 20: '\''
|
||||
SymDoubleQuote // 21: '"'
|
||||
SymBackTick // 22: '`'
|
||||
SymExclamation // 23: '!'
|
||||
SymQuestion // 24: '?'
|
||||
SymAmpersand // 25: '&'
|
||||
SymDoubleAmpersand // 26: '&&'
|
||||
SymPercent // 27: '%'
|
||||
SymAt // 28: '@'
|
||||
SymUndescore // 29: '_'
|
||||
SymEqual // 30: '='
|
||||
SymColonEqual // 31: ':='
|
||||
SymDoubleEqual // 32: '=='
|
||||
SymLess // 33: '<'
|
||||
SymLessOrEqual // 34: '<='
|
||||
SymGreater // 35: '>'
|
||||
SymGreaterOrEqual // 36: '>='
|
||||
SymLessGreater // 37: '<>'
|
||||
SymNotEqual // 38: '!='
|
||||
SymDollar // 39: '$'
|
||||
SymHash // 40: '#'
|
||||
SymOpenRound // 41: '('
|
||||
SymClosedRound // 42: ')'
|
||||
SymOpenSquare // 43: '['
|
||||
SymClosedSquare // 44: ']'
|
||||
SymOpenBrace // 45: '{'
|
||||
SymClosedBrace // 46: '}'
|
||||
SymTilde // 47: '~'
|
||||
SymDoubleQuestion // 48: '??'
|
||||
SymQuestionEqual // 49: '?='
|
||||
SymQuestionExclam // 50: '?!'
|
||||
SymDoubleAt // 51: '@@'
|
||||
SymDoubleColon // 52: '::'
|
||||
SymDoubleGreater // 53: '>>'
|
||||
SymDoubleLess // 54: '<<'
|
||||
SymCaret // 55: '^'
|
||||
SymDollarRound // 56: '$('
|
||||
SymOpenClosedRound // 57: '()'
|
||||
SymDoubleDollar // 58: '$$'
|
||||
SymDoubleDot // 59: '..'
|
||||
SymTripleDot // 60: '...'
|
||||
SymStarEqual // 61: '*='
|
||||
SymSlashEqual // 62: '/='
|
||||
SymPercEqual // 63: '%='
|
||||
SymDoubleLessEqual // 64: '<<='
|
||||
SymDoubleGreaterEqual // 65: '>>='
|
||||
SymAmpersandEqual // 66: '&='
|
||||
SymVertBarEqual // 67: '|='
|
||||
SymCaretEqual // 68: '^='
|
||||
SymPlusGreater // 69: '+>'
|
||||
SymLessPlus // 70: '<+'
|
||||
SymChangeSign // 71: '-'
|
||||
SymUnchangeSign // 72: '+''
|
||||
SymDereference // 73: '*'
|
||||
SymPreInc // 74: '++'
|
||||
SymPreDec // 75: '--'
|
||||
SymIdentifier // 76: identifier
|
||||
SymBool // 77: boolean
|
||||
SymInteger // 78: integer
|
||||
SymVariable // 79: variable
|
||||
SymFloat // 80: float
|
||||
SymFraction // 81: fraction
|
||||
SymString // 82: string
|
||||
SymIterator // 83: iterator
|
||||
SymOr // 84: 'or'
|
||||
SymAnd // 85: 'and'
|
||||
SymNot // 86: 'not'
|
||||
SymComment // 87: comment
|
||||
SymFuncCall // 88: function call
|
||||
SymFuncDef // 89: function definition
|
||||
SymList // 90: list
|
||||
SymDict // 91: dict
|
||||
SymIndex // 92: index
|
||||
SymRange // 93: range [index : index]
|
||||
SymExpression // 94: expression
|
||||
SymSelector // 95: selector <selector> ::= <expr> "?" <selector-case> {":" <selector-case>} ["::" <default-selector-case>]
|
||||
SymSelectorCase // 96: <selector-case> ::= [<list>] "{" <multi-expr> "}"
|
||||
SymOpenSquareLess // 97: '[<'
|
||||
SymGreaterClosedSquare // 98: '>]'
|
||||
SymLinkedList // 99: linked-list
|
||||
// SymOpenComment // 0: '/*'
|
||||
// SymClosedComment // 0: '*/'
|
||||
// SymOneLineComment // 0: '//'
|
||||
|
||||
Reference in New Issue
Block a user