aboutsummaryrefslogtreecommitdiff
path: root/cmd/vartan-go
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-12-10 12:29:03 -0300
committerEuAndreh <eu@euandre.org>2024-12-10 12:29:03 -0300
commit8359c047aaebe274a2d811d61922b571ca7d10df (patch)
tree070e0ed93d27a842776ada805eeb4270e7e3c806 /cmd/vartan-go
parentStart building test files (diff)
downloadcotia-8359c047aaebe274a2d811d61922b571ca7d10df.tar.gz
cotia-8359c047aaebe274a2d811d61922b571ca7d10df.tar.xz
Namespace packages with "urubu/"
Diffstat (limited to 'cmd/vartan-go')
-rw-r--r--cmd/vartan-go/generate.go98
-rw-r--r--cmd/vartan-go/main.go14
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)
- }
-}