rib

package
v0.0.0-...-aed5015 Latest Latest
Warning

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

Go to latest
Published: Jul 29, 2016 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

rigo/ri/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