Documentation ¶
Index ¶
- Constants
- func IsOperator(r rune, dotAllowed bool) (ok bool)
- func IsSequenceOperator(r rune) (ok bool)
- func TokenMatcherOr(tm ...TokenMatcher) tokenMatcherOr
- type Scanner
- func (ts *Scanner) CanScan() (ok bool)
- func (ts *Scanner) ConsumeSpacesOrErrorOnFalse() (ok bool)
- func (scanner *Scanner) Error() error
- func (scanner *Scanner) GetSeq() Seq
- func (scanner *Scanner) N() int64
- func (ts *Scanner) ReadRune() (r rune, n int, err error)
- func (ts *Scanner) Reset(r io.RuneScanner)
- func (ts *Scanner) Scan() (ok bool)
- func (ts *Scanner) ScanDotAllowedInIdentifiers() (ok bool)
- func (ts *Scanner) ScanSkipSpace() (ok bool)
- func (ts *Scanner) UnreadRune() (err error)
- func (ts *Scanner) Unscan()
- type Seq
- func (seq *Seq) Add(tokenType TokenType, contents []byte)
- func (seq *Seq) AddToken(token Token)
- func (seq Seq) At(idx int) Token
- func (src Seq) Clone() (dst Seq)
- func (a Seq) EqualsSeq(b Seq) bool
- func (seq Seq) GetTokenTypes() TokenTypes
- func (seq Seq) Len() int
- func (seq Seq) MatchAll(tokens ...TokenMatcher) bool
- func (seq Seq) MatchEnd(tokens ...TokenMatcher) (ok bool, left, right Seq)
- func (seq Seq) PartitionFavoringLeft(m TokenMatcher) (ok bool, left, right Seq, partition Token)
- func (seq Seq) PartitionFavoringRight(m TokenMatcher) (ok bool, left, right Seq, partition Token)
- func (seq *Seq) Reset()
- func (seq Seq) String() string
- func (seq Seq) StringDebug() string
- type SeqRuneScanner
- type SeqType
- type Token
- type TokenMatcher
- type TokenMatcherOp
- type TokenType
- type TokenTypes
Constants ¶
View Source
const ( OpOr = ',' OpAnd = ' ' OpGroupOpen = '[' OpGroupClose = ']' OpNegation = '^' OpExact = '=' OpNewline = '\n' OpSigilLatest = ':' OpSigilHistory = '+' OpSigilExternal = '.' OpSigilHidden = '?' OpPathSeparator = '/' OpType = '!' OpVirtual = '%' OpBlob = '@' )
View Source
const ( SeqTypeUnknown = SeqType(iota) SeqTypeIdentifier // one/uno, tag, !type, /browser/bookmark-1, @abcd SeqTypeField // url=blah blob=hello contents="wow" contents="wow with\" quote" )
View Source
const ( TokenTypeIncomplete = TokenType(iota) TokenTypeOperator // " =,.:+?^[]" TokenTypeIdentifier // ["one", "uno", "tag", "one", "type", "/browser/bookmark-1", "@sha"...] TokenTypeLiteral // ["\"some text\"", "\"some text \\\" with escape\""] )
Variables ¶
This section is empty.
Functions ¶
func IsOperator ¶
func IsSequenceOperator ¶
func TokenMatcherOr ¶
func TokenMatcherOr(tm ...TokenMatcher) tokenMatcherOr
Types ¶
type Scanner ¶
type Scanner struct { io.RuneScanner // contains filtered or unexported fields }
func (*Scanner) ConsumeSpacesOrErrorOnFalse ¶
Consumes any spaces currently available in the underlying RuneReader. If this returns false, it means that a read error has occurred, not that no spaces were consumed.
func (*Scanner) GetSeq ¶
Valid only until the next call to any scan method. To keep the sequence, make a clone of it by calling Seq.Clone()
func (*Scanner) Reset ¶
func (ts *Scanner) Reset(r io.RuneScanner)
func (*Scanner) ScanDotAllowedInIdentifiers ¶
func (*Scanner) ScanSkipSpace ¶
func (*Scanner) UnreadRune ¶
TODO add support for unscan
type Seq ¶
type Seq []Token
func (Seq) GetTokenTypes ¶
func (seq Seq) GetTokenTypes() TokenTypes
func (Seq) MatchAll ¶
func (seq Seq) MatchAll(tokens ...TokenMatcher) bool
func (Seq) PartitionFavoringLeft ¶
func (seq Seq) PartitionFavoringLeft( m TokenMatcher, ) (ok bool, left, right Seq, partition Token)
func (Seq) PartitionFavoringRight ¶
func (seq Seq) PartitionFavoringRight( m TokenMatcher, ) (ok bool, left, right Seq, partition Token)
func (Seq) StringDebug ¶
type SeqRuneScanner ¶
type SeqRuneScanner struct { Seq // contains filtered or unexported fields }
func (*SeqRuneScanner) IsFull ¶
func (scanner *SeqRuneScanner) IsFull() bool
func (*SeqRuneScanner) ReadRune ¶
func (scanner *SeqRuneScanner) ReadRune() (r rune, size int, err error)
func (*SeqRuneScanner) Reset ¶
func (scanner *SeqRuneScanner) Reset()
func (*SeqRuneScanner) UnreadRune ¶
func (scanner *SeqRuneScanner) UnreadRune() (err error)
type TokenMatcher ¶
type TokenMatcherOp ¶
type TokenMatcherOp byte
func (TokenMatcherOp) Match ¶
func (tokenMatcher TokenMatcherOp) Match(token Token) bool
type TokenTypes ¶
type TokenTypes []TokenType
func (TokenTypes) Equals ¶
func (actual TokenTypes) Equals(expected ...TokenType) bool
Click to show internal directories.
Click to hide internal directories.