package muesli import ( _ "strings" "testing" ) func HelperFailOnErrors(ast *BasicAst, expected int, test *testing.T) { if ast == nil { test.Errorf("Parse failed, %d parse errors expected", expected) } errors := ast.Errors() if len(errors) != expected { test.Log("Parse errors:\n") for _, err := range errors { test.Logf("%s\n", err.String()) } test.Errorf("There were %d parse errors, %d expected", len(errors), expected) } } func HelperParseAndFailOnErrors(prog string, expected int, parsefunc func(*Parser) *BasicAst, test *testing.T) { parser := NewParserFromString(prog) /* parser.SetLogger(testLogger{}) */ ast := parsefunc(parser) HelperFailOnErrors(ast, expected, test) } func TestParser(test *testing.T) { com := `puts "hello" say ( add 5 10 ) .` parser := NewParserFromString(com) ast := parser.Parse() ast.Display() } func TestParser2(test *testing.T) { com := `puts "hello" say ( add 5 10 ) .` HelperParseAndFailOnErrors(com, 0, (*Parser).Parse, test) } func TestParenthesis(test *testing.T) { HelperParseAndFailOnErrors(`( add 5 10 )`, 0, (*Parser).ParseParenthesis, test) }