diff options
Diffstat (limited to 'cmd/vartan/parse.go')
-rw-r--r-- | cmd/vartan/parse.go | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/cmd/vartan/parse.go b/cmd/vartan/parse.go index 36401e1..5cf8b5b 100644 --- a/cmd/vartan/parse.go +++ b/cmd/vartan/parse.go @@ -13,9 +13,10 @@ import ( ) var parseFlags = struct { - source *string - onlyParse *bool - cst *bool + source *string + onlyParse *bool + cst *bool + disableLAC *bool }{} func init() { @@ -29,6 +30,7 @@ func init() { parseFlags.source = cmd.Flags().StringP("source", "s", "", "source file path (default stdin)") parseFlags.onlyParse = cmd.Flags().Bool("only-parse", false, "when this option is enabled, the parser performs only parse and doesn't semantic actions") parseFlags.cst = cmd.Flags().Bool("cst", false, "when this option is enabled, the parser generates a CST") + parseFlags.disableLAC = cmd.Flags().Bool("disable-lac", false, "disable LAC (lookahead correction)") rootCmd.AddCommand(cmd) } @@ -85,6 +87,9 @@ func runParse(cmd *cobra.Command, args []string) (retErr error) { case !*parseFlags.onlyParse: opts = append(opts, driver.MakeAST()) } + if *parseFlags.disableLAC { + opts = append(opts, driver.DisableLAC()) + } p, err = driver.NewParser(cgram, src, opts...) if err != nil { return err |