diff options
Diffstat (limited to 'cmd/vartan-go')
-rw-r--r-- | cmd/vartan-go/generate.go | 40 | ||||
-rw-r--r-- | cmd/vartan-go/main.go | 2 |
2 files changed, 8 insertions, 34 deletions
diff --git a/cmd/vartan-go/generate.go b/cmd/vartan-go/generate.go index 7d84da9..0355558 100644 --- a/cmd/vartan-go/generate.go +++ b/cmd/vartan-go/generate.go @@ -2,48 +2,23 @@ package main import ( "encoding/json" - // "fmt" + "fmt" "io" "os" - // "driver/lexer" - // "driver/parser" + "driver/lexer" + "driver/parser" spec "spec/grammar" ) -func Execute() error { - // return generateCmd.Execute() - return nil -} - -var generateFlags = struct { - pkgName *string -}{} - -/* -var generateCmd = &cobra.Command{ - Use: "vartan-go", - Short: "Generate a parser for Go", - Long: `vartan-go generates a parser for Go.`, - Example: ` vartan-go grammar.json`, - Args: cobra.ExactArgs(1), - RunE: runGenerate, - SilenceErrors: true, - SilenceUsage: true, -} - -func init() { - generateFlags.pkgName = generateCmd.Flags().StringP("package", "p", "main", "package name") -} - -func runGenerate(cmd *cobra.Command, args []string) error { +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, *generateFlags.pkgName) + b, err := lexer.GenLexer(cgram.Lexical, "main") if err != nil { return fmt.Errorf("Failed to generate a lexer: %w", err) } @@ -63,7 +38,7 @@ func runGenerate(cmd *cobra.Command, args []string) error { } { - b, err := parser.GenParser(cgram, *generateFlags.pkgName) + b, err := parser.GenParser(cgram, "main") if err != nil { return fmt.Errorf("Failed to generate a parser: %w", err) } @@ -83,7 +58,7 @@ func runGenerate(cmd *cobra.Command, args []string) error { } { - b, err := parser.GenSemanticAction(*generateFlags.pkgName) + b, err := parser.GenSemanticAction("main") if err != nil { return fmt.Errorf("Failed to generate a semantic action set: %w", err) } @@ -104,7 +79,6 @@ func runGenerate(cmd *cobra.Command, args []string) error { return nil } -*/ func readCompiledGrammar(path string) (*spec.CompiledGrammar, error) { f, err := os.Open(path) diff --git a/cmd/vartan-go/main.go b/cmd/vartan-go/main.go index 98f98e1..315e7b3 100644 --- a/cmd/vartan-go/main.go +++ b/cmd/vartan-go/main.go @@ -6,7 +6,7 @@ import ( ) func main() { - err := Execute() + err := runGenerate(os.Args[1:]) if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) |