diff options
| author | EuAndreh <eu@euandre.org> | 2024-12-10 12:29:03 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2024-12-10 12:29:03 -0300 |
| commit | 8359c047aaebe274a2d811d61922b571ca7d10df (patch) | |
| tree | 070e0ed93d27a842776ada805eeb4270e7e3c806 /cmd/vartan-go | |
| parent | Start building test files (diff) | |
| download | cotia-8359c047aaebe274a2d811d61922b571ca7d10df.tar.gz cotia-8359c047aaebe274a2d811d61922b571ca7d10df.tar.xz | |
Namespace packages with "urubu/"
Diffstat (limited to 'cmd/vartan-go')
| -rw-r--r-- | cmd/vartan-go/generate.go | 98 | ||||
| -rw-r--r-- | cmd/vartan-go/main.go | 14 |
2 files changed, 0 insertions, 112 deletions
diff --git a/cmd/vartan-go/generate.go b/cmd/vartan-go/generate.go deleted file mode 100644 index 0355558..0000000 --- a/cmd/vartan-go/generate.go +++ /dev/null @@ -1,98 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "io" - "os" - - "driver/lexer" - "driver/parser" - spec "spec/grammar" -) - -func runGenerate(args []string) error { - cgram, err := readCompiledGrammar(args[0]) - if err != nil { - return fmt.Errorf("Cannot read a compiled grammar: %w", err) - } - - { - b, err := lexer.GenLexer(cgram.Lexical, "main") - if err != nil { - return fmt.Errorf("Failed to generate a lexer: %w", err) - } - - filePath := fmt.Sprintf("%v_lexer.go", cgram.Name) - - f, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) - if err != nil { - return fmt.Errorf("Failed to create an output file: %v", err) - } - defer f.Close() - - _, err = f.Write(b) - if err != nil { - return fmt.Errorf("Failed to write lexer source code: %v", err) - } - } - - { - b, err := parser.GenParser(cgram, "main") - if err != nil { - return fmt.Errorf("Failed to generate a parser: %w", err) - } - - filePath := fmt.Sprintf("%v_parser.go", cgram.Name) - - f, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) - if err != nil { - return fmt.Errorf("Failed to create an output file: %v", err) - } - defer f.Close() - - _, err = f.Write(b) - if err != nil { - return fmt.Errorf("Failed to write parser source code: %v", err) - } - } - - { - b, err := parser.GenSemanticAction("main") - if err != nil { - return fmt.Errorf("Failed to generate a semantic action set: %w", err) - } - - filePath := fmt.Sprintf("%v_semantic_action.go", cgram.Name) - - f, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) - if err != nil { - return fmt.Errorf("Failed to create an output file: %v", err) - } - defer f.Close() - - _, err = f.Write(b) - if err != nil { - return fmt.Errorf("Failed to write semantic action source code: %v", err) - } - } - - return nil -} - -func readCompiledGrammar(path string) (*spec.CompiledGrammar, error) { - f, err := os.Open(path) - if err != nil { - return nil, err - } - data, err := io.ReadAll(f) - if err != nil { - return nil, err - } - cgram := &spec.CompiledGrammar{} - err = json.Unmarshal(data, cgram) - if err != nil { - return nil, err - } - return cgram, nil -} diff --git a/cmd/vartan-go/main.go b/cmd/vartan-go/main.go deleted file mode 100644 index 315e7b3..0000000 --- a/cmd/vartan-go/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "fmt" - "os" -) - -func main() { - err := runGenerate(os.Args[1:]) - if err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } -} |
