rib

package
v0.0.0-...-0df34db Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2016 License: BSD-3-Clause Imports: 3 Imported by: 0

Documentation

Overview

rigo2/rib/parser.go

Index

Constants

View Source
const (
	DefaultBufferSize int = 512
)

Variables

View Source
var EmptyToken = Token{Word: "", Line: -1, Pos: -1, Type: Tokeniser}
View Source
var (
	ErrTokenIsEmpty error = fmt.Errorf("Token Is Empty")
)

Functions

func Lexer

func Lexer(reader TokenReader, writer TokenWriter, filter BloomFilterer) error

func Parser

func Parser(reader TokenReader, writer TokenWriter) error

func Tokenise

func Tokenise(reader io.Reader, writer TokenWriter) error

Types

type BloomFilterer

type BloomFilterer interface {
	IsMember(...string) bool
}

type PorousBloomFilter

type PorousBloomFilter struct{}

Porous Bloom Filter, basically accepts everything as a member

func (PorousBloomFilter) IsMember

func (p PorousBloomFilter) IsMember(all ...string) bool

type Token

type Token struct {
	Word string
	Line int
	Pos  int

	Type   TokenType
	RiType string

	Lex TokenLex

	Error error
}

func (Token) Empty

func (t Token) Empty()

func (Token) IsEmpty

func (t Token) IsEmpty() bool

type TokenLex

type TokenLex byte
const (
	Unknown  TokenLex = 0
	Command  TokenLex = 1
	ArgToken TokenLex = 2
	ArgOp    TokenLex = 3
)

func (TokenLex) String

func (l TokenLex) String() string

type TokenReader

type TokenReader interface {
	Read() (Token, error)
}

type TokenType

type TokenType byte
const (
	Tokeniser TokenType = 0
	Content   TokenType = 1
)

type TokenWriter

type TokenWriter interface {
	Write(Token)
}

Jump to

Keyboard shortcuts

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