Documentation ¶
Index ¶
- type Error
- type Position
- type Scanner
- func (s *Scanner) AddKeyword(kw string, tok tokens.Token)
- func (s *Scanner) Bytes() []byte
- func (s *Scanner) Keyword(lit string) tokens.Token
- func (s *Scanner) Scan() (tokens.Token, Position, string, []Error)
- func (s *Scanner) String() string
- func (s *Scanner) WithKeywords(kws map[string]tokens.Token) *Scanner
- func (s *Scanner) WithoutKeywords(kws map[string]tokens.Token) (*Scanner, map[string]tokens.Token)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Position ¶
type Position struct { Offset int // start offset in bytes End int // end offset in bytes Row int // line number computed in bytes Col int // column number computed in bytes }
Position represents a point in the scanned source code.
type Scanner ¶
type Scanner struct {
// contains filtered or unexported fields
}
Scanner is used to tokenize an input stream of Rego source code.
func New ¶
New returns an initialized scanner that will scan through the source code provided by the io.Reader.
func (*Scanner) AddKeyword ¶
AddKeyword adds a string -> token mapping to this Scanner instance.
func (*Scanner) Bytes ¶
Bytes returns the raw bytes for the full source which the scanner has read in.
func (*Scanner) Keyword ¶
Keyword will return a token for the passed in literal value. If the value is a Rego keyword then the appropriate token is returned. Everything else is an Ident.
func (*Scanner) Scan ¶
Scan will increment the scanners position in the source code until the next token is found. The token, starting position of the token, string literal, and any errors encountered are returned. A token will always be returned, the caller must check for any errors before using the other values.
func (*Scanner) WithKeywords ¶
WithKeywords returns a new copy of the Scanner struct `s`, with the set of known keywords being that of `s` with `kws` added.
func (*Scanner) WithoutKeywords ¶
WithoutKeywords returns a new copy of the Scanner struct `s`, with the set of known keywords being that of `s` with `kws` removed. The previously known keywords are returned for a convenient reset.