package parsekit_test import ( "fmt" "git.makaay.nl/mauricem/go-parsekit" ) func ExampleError() { err := &parsekit.Error{ Message: "it broke down", Line: 10, Column: 42, } fmt.Println(err.Error()) fmt.Printf("%s\n", err) fmt.Println(err.Full()) // Output: // it broke down // it broke down // it broke down at line 10, column 42 } func ExampleError_Error() { err := &parsekit.Error{ Message: "it broke down", Line: 10, Column: 42, } fmt.Println(err.Error()) fmt.Printf("%s\n", err) // Output: // it broke down // it broke down } func ExampleError_Full() { err := &parsekit.Error{ Message: "it broke down", Line: 10, Column: 42, } fmt.Println(err.Full()) // Output: // it broke down at line 10, column 42 } func ExampleMatchAnyRune_usingAcceptedRunes() { // Easy access to the parsekit definitions. a := parsekit.A matches := []string{} parser := parsekit.NewParser(func(p *parsekit.ParseAPI) { for p.On(a.AnyRune).Accept() { matches = append(matches, p.Result().String()) } p.ExpectEndOfFile() }) err := parser.Execute("¡Any will dö!") fmt.Printf("Matches = %q, Error = %s\n", matches, err) // Output: // Matches = ["¡" "A" "n" "y" " " "w" "i" "l" "l" " " "d" "ö" "!"], Error = } func ExampleMatchAnyRune_usingTokens() { // Easy access to the parsekit definitions. c, a, tok := parsekit.C, parsekit.A, parsekit.T var tokens []*parsekit.Token var accepted string parser := parsekit.NewParser(func(p *parsekit.ParseAPI) { if p.On(c.OneOrMore(tok.Rune("a rune", a.AnyRune))).Accept() { tokens = p.Result().Tokens() accepted = p.Result().String() } p.ExpectEndOfFile() }) parser.Execute("¡Any will dö!") fmt.Printf("Runes accepted: %q\n", accepted) fmt.Printf("Token values: ") for _, t := range tokens { fmt.Printf("%c ", t.Value) } // Output: // Runes accepted: "¡Any will dö!" // Token values: ¡ A n y w i l l d ö ! }