scan

package
Version: v0.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2021 License: BSD-3-Clause Imports: 8 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Scanner

type Scanner struct {
	// contains filtered or unexported fields
}

Scanner holds the state of the scanner.

func New

func New(context value.Context, name string, r io.ByteReader) *Scanner

New creates a new scanner for the input string.

func (*Scanner) Next

func (l *Scanner) Next() Token

Next returns the next token.

type Token

type Token struct {
	Type Type   // The type of this item.
	Line int    // The line number on which this token appears
	Text string // The text of this item.
}

Token represents a token or text string returned from the scanner.

func (Token) String

func (i Token) String() string

type Type

type Type int

Type identifies the type of lex items.

const (
	EOF   Type = iota // zero value so closed channel delivers EOF
	Error             // error occurred; value is text of error
	Newline
	// Interesting things
	Assign         // '='
	Char           // printable ASCII character; grab bag for comma etc.
	GreaterOrEqual // '>='
	Identifier     // alphanumeric identifier
	LeftBrack      // '['
	LeftParen      // '('
	Number         // simple number
	Operator       // known operator
	Op             // "op", operator definition keyword
	Rational       // rational number like 2/3
	RightBrack     // ']'
	RightParen     // ')'
	Semicolon      // ';'
	Space          // run of spaces separating
	String         // quoted string (includes quotes)
	Colon          // ':'
)

func (Type) String

func (i Type) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL