aboutsummaryrefslogtreecommitdiff
path: root/src/urubu/spec/grammar/grammar.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/urubu/spec/grammar/grammar.go')
-rw-r--r--src/urubu/spec/grammar/grammar.go160
1 files changed, 0 insertions, 160 deletions
diff --git a/src/urubu/spec/grammar/grammar.go b/src/urubu/spec/grammar/grammar.go
deleted file mode 100644
index bf1ea89..0000000
--- a/src/urubu/spec/grammar/grammar.go
+++ /dev/null
@@ -1,160 +0,0 @@
-package grammar
-
-import "strconv"
-
-type CompiledGrammar struct {
- Name string `json:"name"`
- Lexical *LexicalSpec `json:"lexical"`
- Syntactic *SyntacticSpec `json:"syntactic"`
- ASTAction *ASTAction `json:"ast_action"`
-}
-
-// StateID represents an ID of a state of a transition table.
-type StateID int
-
-const (
- // StateIDNil represents an empty entry of a transition table.
- // When the driver reads this value, it raises an error meaning lexical analysis failed.
- StateIDNil = StateID(0)
-
- // StateIDMin is the minimum value of the state ID. All valid state IDs are represented as
- // sequential numbers starting from this value.
- StateIDMin = StateID(1)
-)
-
-func (id StateID) Int() int {
- return int(id)
-}
-
-// LexModeID represents an ID of a lex mode.
-type LexModeID int
-
-const (
- LexModeIDNil = LexModeID(0)
- LexModeIDDefault = LexModeID(1)
-)
-
-func (n LexModeID) String() string {
- return strconv.Itoa(int(n))
-}
-
-func (n LexModeID) Int() int {
- return int(n)
-}
-
-func (n LexModeID) IsNil() bool {
- return n == LexModeIDNil
-}
-
-// LexModeName represents a name of a lex mode.
-type LexModeName string
-
-const (
- LexModeNameNil = LexModeName("")
- LexModeNameDefault = LexModeName("default")
-)
-
-func (m LexModeName) String() string {
- return string(m)
-}
-
-// LexKindID represents an ID of a lexical kind and is unique across all modes.
-type LexKindID int
-
-const (
- LexKindIDNil = LexKindID(0)
- LexKindIDMin = LexKindID(1)
-)
-
-func (id LexKindID) Int() int {
- return int(id)
-}
-
-// LexModeKindID represents an ID of a lexical kind and is unique within a mode.
-// Use LexKindID to identify a kind across all modes uniquely.
-type LexModeKindID int
-
-const (
- LexModeKindIDNil = LexModeKindID(0)
- LexModeKindIDMin = LexModeKindID(1)
-)
-
-func (id LexModeKindID) Int() int {
- return int(id)
-}
-
-// LexKindName represents a name of a lexical kind.
-type LexKindName string
-
-const LexKindNameNil = LexKindName("")
-
-func (k LexKindName) String() string {
- return string(k)
-}
-
-type RowDisplacementTable struct {
- OriginalRowCount int `json:"original_row_count"`
- OriginalColCount int `json:"original_col_count"`
- EmptyValue StateID `json:"empty_value"`
- Entries []StateID `json:"entries"`
- Bounds []int `json:"bounds"`
- RowDisplacement []int `json:"row_displacement"`
-}
-
-type UniqueEntriesTable struct {
- UniqueEntries *RowDisplacementTable `json:"unique_entries,omitempty"`
- UncompressedUniqueEntries []StateID `json:"uncompressed_unique_entries,omitempty"`
- RowNums []int `json:"row_nums"`
- OriginalRowCount int `json:"original_row_count"`
- OriginalColCount int `json:"original_col_count"`
- EmptyValue int `json:"empty_value"`
-}
-
-type TransitionTable struct {
- InitialStateID StateID `json:"initial_state_id"`
- AcceptingStates []LexModeKindID `json:"accepting_states"`
- RowCount int `json:"row_count"`
- ColCount int `json:"col_count"`
- Transition *UniqueEntriesTable `json:"transition,omitempty"`
- UncompressedTransition []StateID `json:"uncompressed_transition,omitempty"`
-}
-
-type CompiledLexModeSpec struct {
- KindNames []LexKindName `json:"kind_names"`
- Push []LexModeID `json:"push"`
- Pop []int `json:"pop"`
- DFA *TransitionTable `json:"dfa"`
-}
-
-type LexicalSpec struct {
- InitialModeID LexModeID `json:"initial_mode_id"`
- ModeNames []LexModeName `json:"mode_names"`
- KindNames []LexKindName `json:"kind_names"`
- KindIDs [][]LexKindID `json:"kind_ids"`
- CompressionLevel int `json:"compression_level"`
- Specs []*CompiledLexModeSpec `json:"specs"`
-}
-
-type SyntacticSpec struct {
- Action []int `json:"action"`
- GoTo []int `json:"goto"`
- StateCount int `json:"state_count"`
- InitialState int `json:"initial_state"`
- StartProduction int `json:"start_production"`
- LHSSymbols []int `json:"lhs_symbols"`
- AlternativeSymbolCounts []int `json:"alternative_symbol_counts"`
- Terminals []string `json:"terminals"`
- TerminalCount int `json:"terminal_count"`
- TerminalSkip []int `json:"terminal_skip"`
- KindToTerminal []int `json:"kind_to_terminal"`
- NonTerminals []string `json:"non_terminals"`
- NonTerminalCount int `json:"non_terminal_count"`
- EOFSymbol int `json:"eof_symbol"`
- ErrorSymbol int `json:"error_symbol"`
- ErrorTrapperStates []int `json:"error_trapper_states"`
- RecoverProductions []int `json:"recover_productions"`
-}
-
-type ASTAction struct {
- Entries [][]int `json:"entries"`
-}