arghing #1
@ -7,20 +7,31 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.meatballhat.com/x/box-o-sand/argh"
|
"git.meatballhat.com/x/box-o-sand/argh"
|
||||||
|
"github.com/davecgh/go-spew/spew"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
asJSON := os.Getenv("ARGH_OUTPUT_JSON") == "enabled"
|
||||||
|
|
||||||
log.SetFlags(0)
|
log.SetFlags(0)
|
||||||
|
|
||||||
ast, err := argh.ParseArgs2(os.Args, nil)
|
pt, err := argh.ParseArgs(os.Args, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
b, err := json.MarshalIndent(ast, "", " ")
|
ast := argh.NewQuerier(pt.Nodes).AST()
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
if asJSON {
|
||||||
|
b, err := json.MarshalIndent(ast, "", " ")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(string(b))
|
||||||
|
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println(string(b))
|
spew.Dump(ast)
|
||||||
}
|
}
|
||||||
|
@ -24,14 +24,14 @@ type ParseTree struct {
|
|||||||
Nodes []Node `json:"nodes"`
|
Nodes []Node `json:"nodes"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func ParseArgs2(args []string, pCfg *ParserConfig) (*ParseTree, error) {
|
func ParseArgs(args []string, pCfg *ParserConfig) (*ParseTree, error) {
|
||||||
p := &parser{}
|
p := &parser{}
|
||||||
p.init(
|
p.init(
|
||||||
strings.NewReader(strings.Join(args, string(nul))),
|
strings.NewReader(strings.Join(args, string(nul))),
|
||||||
pCfg,
|
pCfg,
|
||||||
)
|
)
|
||||||
|
|
||||||
tracef("ParseArgs2(...) parser=%+#v", p)
|
tracef("ParseArgs(...) parser=%+#v", p)
|
||||||
|
|
||||||
return p.parseArgs()
|
return p.parseArgs()
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestParser2(t *testing.T) {
|
func TestParser(t *testing.T) {
|
||||||
for _, tc := range []struct {
|
for _, tc := range []struct {
|
||||||
name string
|
name string
|
||||||
args []string
|
args []string
|
||||||
@ -766,7 +766,7 @@ func TestParser2(t *testing.T) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
pt, err := argh.ParseArgs2(tc.args, tc.cfg)
|
pt, err := argh.ParseArgs(tc.args, tc.cfg)
|
||||||
if err != nil || tc.expErr != nil {
|
if err != nil || tc.expErr != nil {
|
||||||
if !assert.ErrorIs(ct, err, tc.expErr) {
|
if !assert.ErrorIs(ct, err, tc.expErr) {
|
||||||
spew.Dump(err, tc.expErr)
|
spew.Dump(err, tc.expErr)
|
||||||
@ -788,7 +788,7 @@ func TestParser2(t *testing.T) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
pt, err := argh.ParseArgs2(tc.args, tc.cfg)
|
pt, err := argh.ParseArgs(tc.args, tc.cfg)
|
||||||
if err != nil || tc.expErr != nil {
|
if err != nil || tc.expErr != nil {
|
||||||
if !assert.ErrorIs(ct, err, tc.expErr) {
|
if !assert.ErrorIs(ct, err, tc.expErr) {
|
||||||
spew.Dump(pt)
|
spew.Dump(pt)
|
||||||
|
@ -34,7 +34,7 @@ func TestQuerier_Program(t *testing.T) {
|
|||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
t.Run(tc.name, func(ct *testing.T) {
|
t.Run(tc.name, func(ct *testing.T) {
|
||||||
pt, err := argh.ParseArgs2(tc.args, tc.cfg)
|
pt, err := argh.ParseArgs(tc.args, tc.cfg)
|
||||||
require.Nil(ct, err)
|
require.Nil(ct, err)
|
||||||
|
|
||||||
prog, ok := argh.NewQuerier(pt.Nodes).Program()
|
prog, ok := argh.NewQuerier(pt.Nodes).Program()
|
||||||
|
Loading…
Reference in New Issue
Block a user