grammar

package
v0.0.0-...-e95280a Latest Latest
Warning

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

Go to latest
Published: Jun 19, 2021 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Builder

type Builder interface {
	Create() Builder
	WithName(name string) Builder
	WithRoot(root string) Builder
	WithChannels(channels Tokens) Builder
	WithTokens(tokens Tokens) Builder
	WithRules(rules []Rule) Builder
	WithSubGrammars(grammars map[string]Grammar) Builder
	WithGrammar(gr Grammar) Builder
	Now() (Grammar, error)
}

Builder represents a grammar builder

func NewBuilder

func NewBuilder() Builder

NewBuilder creates a new grammar builder instance

type FileFetcher

type FileFetcher func(path string) ([]byte, error)

FileFetcher is a func that fetches daa from file

type Grammar

type Grammar interface {
	Name() string
	Root() string
	RootToken() Token
	Rules() map[string]Rule
	HasTokens() bool
	Tokens() Tokens
	HasChannels() bool
	Channels() Tokens
	HasSubGrammars() bool
	SubGrammars() map[string]Grammar
	FetchByName(name string) (Grammar, error)
}

Grammar represents the grammar

type Position

type Position interface {
	From() int
	To() int
}

Position represents a script position

type PositionApplication

type PositionApplication interface {
	FindChannels(script string) ([]Position, error)
}

PositionApplication represents a position application

type PositionApplicationBuilder

type PositionApplicationBuilder interface {
	Create() PositionApplicationBuilder
	WithGrammar(grammar Grammar) PositionApplicationBuilder
	Now() (PositionApplication, error)
}

PositionApplicationBuilder represents a positionApplication builder

type PositionBuilder

type PositionBuilder interface {
	Create() PositionBuilder
	From(from int) PositionBuilder
	To(to int) PositionBuilder
	Now() (Position, error)
}

PositionBuilder represents a position builder

type RawToken

type RawToken interface {
	Name() string
	Value() string
	Reference() string
	Code() string
	Index() int
	Grammar() string
}

RawToken represents a raw token

type RawTokenBuilder

type RawTokenBuilder interface {
	Create() RawTokenBuilder
	WithName(name string) RawTokenBuilder
	WithValue(value string) RawTokenBuilder
	WithCode(code string) RawTokenBuilder
	WithIndex(index int) RawTokenBuilder
	WithGrammar(grammar string) RawTokenBuilder
	Now() (RawToken, error)
}

RawTokenBuilder represents a rawToken builder

type RepetitiveRuleNode

type RepetitiveRuleNode interface {
	HasRecursiveName() bool
	RecursiveName() string
	HasNode() bool
	Node() RuleNode
	IsMultipleMandatory() bool
	IsMultipleOptional() bool
	IsOptional() bool
	SetNode(node RuleNode)
}

RepetitiveRuleNode represents a repetitive rule node

type RepetitiveRuleNodeBuilder

type RepetitiveRuleNodeBuilder interface {
	Create() RepetitiveRuleNodeBuilder
	WithNode(node RuleNode) RepetitiveRuleNodeBuilder
	WithRecursiveName(recursiveName string) RepetitiveRuleNodeBuilder
	IsMultipleMandatory() RepetitiveRuleNodeBuilder
	IsMultipleOptional() RepetitiveRuleNodeBuilder
	IsOptional() RepetitiveRuleNodeBuilder
	Now() (RepetitiveRuleNode, error)
}

RepetitiveRuleNodeBuilder represents a repetitiveRuleNode builder

type ReplacementToken

type ReplacementToken interface {
	ToGrammar() string
	FromToken() string
}

ReplacementToken represents a replacement token

type ReplacementTokenAdapter

type ReplacementTokenAdapter interface {
	ToReplacementTokens(script string, pattern string) ([]ReplacementToken, error)
}

ReplacementTokenAdapter represents a replacement token adapter

type ReplacementTokenBuilder

type ReplacementTokenBuilder interface {
	Create() ReplacementTokenBuilder
	WithToGrammar(toGrammar string) ReplacementTokenBuilder
	WithFromToken(toToken string) ReplacementTokenBuilder
	Now() (ReplacementToken, error)
}

ReplacementTokenBuilder represents a replacement token builder

type Repository

type Repository interface {
	Retrieve(criteria RetrieverCriteria) (Grammar, error)
	RetrieveFromFile(rootPattern string, name string, filePath string) (Grammar, error)
}

Repository represents a grammar repository

type RepositoryBuilder

type RepositoryBuilder interface {
	Create() RepositoryBuilder
	WithFileFetcher(fileFetcher FileFetcher) RepositoryBuilder
	Now() (Repository, error)
}

RepositoryBuilder represents a repository builder

func NewRepositoryBuilder

func NewRepositoryBuilder() RepositoryBuilder

NewRepositoryBuilder creates a new repository builder

type RetrieverCriteria

type RetrieverCriteria interface {
	Name() string
	Root() string
	BaseDirPath() string
	TokensPath() string
	RulesPath() string
	HasChannelsPath() bool
	ChannelsPath() string
	HasExtends() bool
	Extends() map[string]RetrieverCriteria
}

RetrieverCriteria represents a repository retriever criteria

type RetrieverCriteriaBuilder

type RetrieverCriteriaBuilder interface {
	Create() RetrieverCriteriaBuilder
	WithName(name string) RetrieverCriteriaBuilder
	WithRoot(root string) RetrieverCriteriaBuilder
	WithBaseDirPath(baseDirPath string) RetrieverCriteriaBuilder
	WithTokensPath(tokensPath string) RetrieverCriteriaBuilder
	WithChannelsPath(channelsPath string) RetrieverCriteriaBuilder
	WithRulesPath(rulesPath string) RetrieverCriteriaBuilder
	WithExtends(extends []RetrieverCriteria) RetrieverCriteriaBuilder
	Now() (RetrieverCriteria, error)
}

RetrieverCriteriaBuilder represents the retriever criteria builder

func NewRetrieverCriteriaBuilder

func NewRetrieverCriteriaBuilder() RetrieverCriteriaBuilder

NewRetrieverCriteriaBuilder returns a new RetrieverCriteria builder

type RetrieverCriteriaRepository

type RetrieverCriteriaRepository interface {
	Retrieve(filePath string) (RetrieverCriteria, error)
}

RetrieverCriteriaRepository represents a retrieverRetrieverCriteria repository

type RetrieverCriteriaRepositoryBuilder

type RetrieverCriteriaRepositoryBuilder interface {
	Create() RetrieverCriteriaRepositoryBuilder
	WithName(name string) RetrieverCriteriaRepositoryBuilder
	WithRoot(root string) RetrieverCriteriaRepositoryBuilder
	WithFileFetcher(fileFetcher FileFetcher) RetrieverCriteriaRepositoryBuilder
	Now() (RetrieverCriteriaRepository, error)
}

RetrieverCriteriaRepositoryBuilder represents a retrieverCriteriaRepository builder

func NewRetrieverCriteriaRepositoryBuilder

func NewRetrieverCriteriaRepositoryBuilder() RetrieverCriteriaRepositoryBuilder

NewRetrieverCriteriaRepositoryBuilder returns a new NewRetrieverCriteriaRepository builder

type Rule

type Rule interface {
	FindFirst(str string) (string, bool, error)
	FindConsecutives(str string) (string, bool, error)
	Name() string
	Sections() []RuleSection
	Index() int
}

Rule represents a rule

type RuleAdapter

type RuleAdapter interface {
	ToRules(script string, grammarName string) ([]Rule, error)
}

RuleAdapter represents a rule adapter

type RuleBuilder

type RuleBuilder interface {
	Create() RuleBuilder
	WithName(name string) RuleBuilder
	WithSections(sections []RuleSection) RuleBuilder
	Now() (Rule, error)
}

RuleBuilder represents a rule builder

type RuleNode

type RuleNode interface {
	HasRule() bool
	Rule() Rule
	HasLeaf() bool
	Leaf() RuleTree
	ResetLeaf(leaf RuleTree)
}

RuleNode represents a rule node

type RuleNodeBuilder

type RuleNodeBuilder interface {
	Create() RuleNodeBuilder
	WithRule(rule Rule) RuleNodeBuilder
	WithLeaf(leaf RuleTree) RuleNodeBuilder
	Now() (RuleNode, error)
}

RuleNodeBuilder represents a RuleNode builder

type RuleSection

type RuleSection interface {
	FindFirst(str string) (string, error)
	HasConstant() bool
	Constant() RawToken
	HasPattern() bool
	Pattern() RawToken
}

RuleSection represents a rule section

type RuleSectionBuilder

type RuleSectionBuilder interface {
	Create() RuleSectionBuilder
	WithConstant(constant RawToken) RuleSectionBuilder
	WithPattern(pattern RawToken) RuleSectionBuilder
	Now() (RuleSection, error)
}

RuleSectionBuilder represents a ruleSection builder

type RuleTree

type RuleTree interface {
	Token() Token
	Nodes() [][]RepetitiveRuleNode
	Grammar() Grammar
	ResetNodeAtIndex(i int, j int, newNode RepetitiveRuleNode) error
}

RuleTree represents a rule tree

type RuleTreeAdapter

type RuleTreeAdapter interface {
	ToRuleTree(grammar Grammar) (RuleTree, error)
}

RuleTreeAdapter represents a RuleTree adapter

func NewRuleTreeAdapter

func NewRuleTreeAdapter() RuleTreeAdapter

NewRuleTreeAdapter creates a new RuleTreeAdapter instance

type RuleTreeBuilder

type RuleTreeBuilder interface {
	Create() RuleTreeBuilder
	WithToken(token Token) RuleTreeBuilder
	WithNodes(nodes [][]RepetitiveRuleNode) RuleTreeBuilder
	WithGrammar(grammar Grammar) RuleTreeBuilder
	WithChildren(children map[string]RuleTree) RuleTreeBuilder
	Now() (RuleTree, error)
}

RuleTreeBuilder represents a RuleTree builder

type Token

type Token interface {
	Name() string
	Blocks() []TokenBlocks
	SubTokenNames() []string
	SetName(name string)
}

Token represents a token

type TokenBlock

type TokenBlock interface {
	Section() TokenSection
	HasOptional() bool
	Optional() RawToken
	HasMultipleOptional() bool
	MultipleOptional() RawToken
	HasMultipleMandatory() bool
	MultipleMandatory() RawToken
}

TokenBlock represents a tokenBlock

type TokenBlockBuilder

type TokenBlockBuilder interface {
	Create() TokenBlockBuilder
	WithSection(section TokenSection) TokenBlockBuilder
	WithOptional(optional RawToken) TokenBlockBuilder
	WithMultipleOptional(multipleOptional RawToken) TokenBlockBuilder
	WithMultipleMandatory(multipleMandatory RawToken) TokenBlockBuilder
	Now() (TokenBlock, error)
}

TokenBlockBuilder represents a tokenBlock builder

type TokenBlocks

type TokenBlocks interface {
	Get() []TokenBlock
	SubTokenNames() []string
	RulesToken() ([]Rule, string)
}

TokenBlocks represents a tokenBlocks

type TokenBlocksBuilder

type TokenBlocksBuilder interface {
	Create() TokenBlocksBuilder
	WithRules(rules []TokenRule) TokenBlocksBuilder
	WithTokens(tokens []RawToken) TokenBlocksBuilder
	WithOptionals(optionals []RawToken) TokenBlocksBuilder
	WithMultipleOptionals(multipleOptionals []RawToken) TokenBlocksBuilder
	WithMultipleMandatories(multipleMandatories []RawToken) TokenBlocksBuilder
	Now() (TokenBlocks, error)
}

TokenBlocksBuilder represents a tokenBlocks builder

type TokenBuilder

type TokenBuilder interface {
	Create() TokenBuilder
	WithName(name string) TokenBuilder
	WithBlocks(blocks []TokenBlocks) TokenBuilder
	Now() (Token, error)
}

TokenBuilder represents a token builder

type TokenRule

type TokenRule interface {
	Rule() Rule
	RawToken() RawToken
}

TokenRule represents a token rule

type TokenRuleBuilder

type TokenRuleBuilder interface {
	Create() TokenRuleBuilder
	WithRule(rule Rule) TokenRuleBuilder
	WithRawToken(rawToken RawToken) TokenRuleBuilder
	Now() (TokenRule, error)
}

TokenRuleBuilder represents a tokenRule builder

type TokenSection

type TokenSection interface {
	HasRule() bool
	Rule() TokenRule
	HasToken() bool
	Token() RawToken
	NextRuleToken() (Rule, string)
}

TokenSection represents a token section

type TokenSectionBuilder

type TokenSectionBuilder interface {
	Create() TokenSectionBuilder
	WithRule(rule TokenRule) TokenSectionBuilder
	WithToken(token RawToken) TokenSectionBuilder
	Now() (TokenSection, error)
}

TokenSectionBuilder represents a tokenSection builder

type Tokens

type Tokens interface {
	Tokens() map[string]Token
	Replace(tok Token) Tokens
	HasReplacements() bool
	Replacements() []ReplacementToken
}

Tokens represents tokens

type TokensAdapter

type TokensAdapter interface {
	ToTokens(script string, tokenPattern string, replacementTokenPattern string, grammarName string, extends map[string]Grammar, rules []Rule) (Tokens, error)
}

TokensAdapter represents a tokens adapter

type TokensBuilder

type TokensBuilder interface {
	Create() TokensBuilder
	WithTokens(tokens map[string]Token) TokensBuilder
	WithReplacements(replacements []ReplacementToken) TokensBuilder
	Now() (Tokens, error)
}

TokensBuilder represents a tokens builder

Jump to

Keyboard shortcuts

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