blob: ddd04664f377906b15712559f61967607bc9b2f6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
package grammar
import mlspec "github.com/nihei9/maleeni/spec"
type CompiledGrammar struct {
Name string `json:"name"`
LexicalSpecification *LexicalSpecification `json:"lexical_specification"`
ParsingTable *ParsingTable `json:"parsing_table"`
ASTAction *ASTAction `json:"ast_action"`
}
type LexicalSpecification struct {
Lexer string `json:"lexer"`
Maleeni *Maleeni `json:"maleeni"`
}
type Maleeni struct {
Spec *mlspec.CompiledLexSpec `json:"spec"`
KindToTerminal []int `json:"kind_to_terminal"`
Skip []int `json:"skip"`
}
type ParsingTable 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"`
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"`
}
|