aboutsummaryrefslogtreecommitdiff
path: root/parser/parser.go
diff options
context:
space:
mode:
author2026-03-10 14:44:50 +0300
committer2026-03-10 14:44:50 +0300
commit92d84f6633767830ed964ebab8c3b94c77663394 (patch)
tree5e087e3631d46e6cb81ccf895c408a79bc154ee2 /parser/parser.go
parentПолностью переписал библиотеку. Перевёл с... (diff)
downloadconf-92d84f6633767830ed964ebab8c3b94c77663394.tar.gz
conf-92d84f6633767830ed964ebab8c3b94c77663394.tar.bz2
conf-92d84f6633767830ed964ebab8c3b94c77663394.tar.xz
conf-92d84f6633767830ed964ebab8c3b94c77663394.zip
Отполировал библиотеку, чтобы в идеале больше её не менять долгие годыv1.0.0v0.2.0
Diffstat (limited to 'parser/parser.go')
-rw-r--r--parser/parser.go776
1 files changed, 387 insertions, 389 deletions
diff --git a/parser/parser.go b/parser/parser.go
index e6abdaf..0cf8f2c 100644
--- a/parser/parser.go
+++ b/parser/parser.go
@@ -1,6 +1,22 @@
// Code generated by pigeon; DO NOT EDIT.
// Package parser parses conf language.
+//
+// This file is part of conf library.
+// Copyright (C) 2026 Alexander NeonXP Kiryukhin <i@neonxp.ru>
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <https://www.gnu.org/licenses/>.
package parser
import (
@@ -24,7 +40,7 @@ func toAnySlice(v any) []any {
if v == nil {
return nil
}
- if v := v.([]any); len(v) == 0 {
+ if v, ok := v.([]any); ok && len(v) == 0 {
return nil
}
@@ -35,43 +51,43 @@ var g = &grammar{
rules: []*rule{
{
name: "Config",
- pos: position{line: 24, col: 1, offset: 355},
+ pos: position{line: 40, col: 1, offset: 1184},
expr: &actionExpr{
- pos: position{line: 24, col: 10, offset: 366},
+ pos: position{line: 40, col: 10, offset: 1195},
run: (*parser).callonConfig1,
expr: &seqExpr{
- pos: position{line: 24, col: 10, offset: 366},
+ pos: position{line: 40, col: 10, offset: 1195},
exprs: []any{
&zeroOrMoreExpr{
- pos: position{line: 120, col: 5, offset: 3403},
+ pos: position{line: 142, col: 14, offset: 4397},
expr: &choiceExpr{
- pos: position{line: 120, col: 7, offset: 3405},
+ pos: position{line: 142, col: 16, offset: 4399},
alternatives: []any{
&charClassMatcher{
- pos: position{line: 120, col: 7, offset: 3405},
+ pos: position{line: 142, col: 16, offset: 4399},
val: "[ \\t\\r\\n]",
chars: []rune{' ', '\t', '\r', '\n'},
ignoreCase: false,
inverted: false,
},
&seqExpr{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
exprs: []any{
&litMatcher{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
val: "#",
ignoreCase: false,
want: "\"#\"",
},
&zeroOrMoreExpr{
- pos: position{line: 118, col: 15, offset: 3343},
+ pos: position{line: 140, col: 18, offset: 4320},
expr: &seqExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
exprs: []any{
&notExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
expr: &charClassMatcher{
- pos: position{line: 118, col: 18, offset: 3346},
+ pos: position{line: 140, col: 21, offset: 4323},
val: "[\\r\\n]",
chars: []rune{'\r', '\n'},
ignoreCase: false,
@@ -79,7 +95,7 @@ var g = &grammar{
},
},
&anyMatcher{
- line: 118, col: 25, offset: 3353,
+ line: 140, col: 28, offset: 4330,
},
},
},
@@ -90,20 +106,20 @@ var g = &grammar{
},
},
&labeledExpr{
- pos: position{line: 24, col: 12, offset: 368},
- label: "stmts",
+ pos: position{line: 40, col: 12, offset: 1197},
+ label: "directives",
expr: &zeroOrMoreExpr{
- pos: position{line: 24, col: 20, offset: 376},
+ pos: position{line: 40, col: 25, offset: 1210},
expr: &ruleRefExpr{
- pos: position{line: 24, col: 20, offset: 376},
- name: "Command",
+ pos: position{line: 40, col: 25, offset: 1210},
+ name: "Directive",
},
},
},
&notExpr{
- pos: position{line: 126, col: 7, offset: 3575},
+ pos: position{line: 146, col: 14, offset: 4588},
expr: &anyMatcher{
- line: 126, col: 8, offset: 3576,
+ line: 146, col: 15, offset: 4589,
},
},
},
@@ -112,49 +128,49 @@ var g = &grammar{
},
{
name: "Group",
- pos: position{line: 36, col: 1, offset: 642},
+ pos: position{line: 52, col: 1, offset: 1490},
expr: &actionExpr{
- pos: position{line: 36, col: 9, offset: 652},
+ pos: position{line: 52, col: 9, offset: 1500},
run: (*parser).callonGroup1,
expr: &seqExpr{
- pos: position{line: 36, col: 9, offset: 652},
+ pos: position{line: 52, col: 9, offset: 1500},
exprs: []any{
&litMatcher{
- pos: position{line: 36, col: 9, offset: 652},
+ pos: position{line: 52, col: 9, offset: 1500},
val: "{",
ignoreCase: false,
want: "\"{\"",
},
&zeroOrMoreExpr{
- pos: position{line: 120, col: 5, offset: 3403},
+ pos: position{line: 142, col: 14, offset: 4397},
expr: &choiceExpr{
- pos: position{line: 120, col: 7, offset: 3405},
+ pos: position{line: 142, col: 16, offset: 4399},
alternatives: []any{
&charClassMatcher{
- pos: position{line: 120, col: 7, offset: 3405},
+ pos: position{line: 142, col: 16, offset: 4399},
val: "[ \\t\\r\\n]",
chars: []rune{' ', '\t', '\r', '\n'},
ignoreCase: false,
inverted: false,
},
&seqExpr{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
exprs: []any{
&litMatcher{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
val: "#",
ignoreCase: false,
want: "\"#\"",
},
&zeroOrMoreExpr{
- pos: position{line: 118, col: 15, offset: 3343},
+ pos: position{line: 140, col: 18, offset: 4320},
expr: &seqExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
exprs: []any{
&notExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
expr: &charClassMatcher{
- pos: position{line: 118, col: 18, offset: 3346},
+ pos: position{line: 140, col: 21, offset: 4323},
val: "[\\r\\n]",
chars: []rune{'\r', '\n'},
ignoreCase: false,
@@ -162,7 +178,7 @@ var g = &grammar{
},
},
&anyMatcher{
- line: 118, col: 25, offset: 3353,
+ line: 140, col: 28, offset: 4330,
},
},
},
@@ -173,46 +189,46 @@ var g = &grammar{
},
},
&labeledExpr{
- pos: position{line: 36, col: 15, offset: 658},
- label: "stmts",
+ pos: position{line: 52, col: 15, offset: 1506},
+ label: "directives",
expr: &zeroOrMoreExpr{
- pos: position{line: 36, col: 23, offset: 666},
+ pos: position{line: 52, col: 28, offset: 1519},
expr: &ruleRefExpr{
- pos: position{line: 36, col: 23, offset: 666},
- name: "Command",
+ pos: position{line: 52, col: 28, offset: 1519},
+ name: "Directive",
},
},
},
&zeroOrMoreExpr{
- pos: position{line: 120, col: 5, offset: 3403},
+ pos: position{line: 142, col: 14, offset: 4397},
expr: &choiceExpr{
- pos: position{line: 120, col: 7, offset: 3405},
+ pos: position{line: 142, col: 16, offset: 4399},
alternatives: []any{
&charClassMatcher{
- pos: position{line: 120, col: 7, offset: 3405},
+ pos: position{line: 142, col: 16, offset: 4399},
val: "[ \\t\\r\\n]",
chars: []rune{' ', '\t', '\r', '\n'},
ignoreCase: false,
inverted: false,
},
&seqExpr{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
exprs: []any{
&litMatcher{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
val: "#",
ignoreCase: false,
want: "\"#\"",
},
&zeroOrMoreExpr{
- pos: position{line: 118, col: 15, offset: 3343},
+ pos: position{line: 140, col: 18, offset: 4320},
expr: &seqExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
exprs: []any{
&notExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
expr: &charClassMatcher{
- pos: position{line: 118, col: 18, offset: 3346},
+ pos: position{line: 140, col: 21, offset: 4323},
val: "[\\r\\n]",
chars: []rune{'\r', '\n'},
ignoreCase: false,
@@ -220,7 +236,7 @@ var g = &grammar{
},
},
&anyMatcher{
- line: 118, col: 25, offset: 3353,
+ line: 140, col: 28, offset: 4330,
},
},
},
@@ -231,7 +247,7 @@ var g = &grammar{
},
},
&litMatcher{
- pos: position{line: 36, col: 36, offset: 679},
+ pos: position{line: 52, col: 43, offset: 1534},
val: "}",
ignoreCase: false,
want: "\"}\"",
@@ -241,25 +257,25 @@ var g = &grammar{
},
},
{
- name: "Command",
- pos: position{line: 48, col: 1, offset: 934},
+ name: "Directive",
+ pos: position{line: 64, col: 1, offset: 1801},
expr: &actionExpr{
- pos: position{line: 48, col: 11, offset: 946},
- run: (*parser).callonCommand1,
+ pos: position{line: 64, col: 13, offset: 1815},
+ run: (*parser).callonDirective1,
expr: &seqExpr{
- pos: position{line: 48, col: 11, offset: 946},
+ pos: position{line: 64, col: 13, offset: 1815},
exprs: []any{
&labeledExpr{
- pos: position{line: 48, col: 11, offset: 946},
+ pos: position{line: 64, col: 13, offset: 1815},
label: "name",
expr: &actionExpr{
- pos: position{line: 111, col: 9, offset: 3087},
- run: (*parser).callonCommand4,
+ pos: position{line: 125, col: 15, offset: 3911},
+ run: (*parser).callonDirective4,
expr: &seqExpr{
- pos: position{line: 111, col: 9, offset: 3087},
+ pos: position{line: 125, col: 15, offset: 3911},
exprs: []any{
&charClassMatcher{
- pos: position{line: 112, col: 9, offset: 3187},
+ pos: position{line: 135, col: 15, offset: 4182},
val: "[$@%_-+a-zA-Z]",
chars: []rune{'$', '@', '%', '_', '-', '+'},
ranges: []rune{'a', 'z', 'A', 'Z'},
@@ -267,12 +283,12 @@ var g = &grammar{
inverted: false,
},
&zeroOrMoreExpr{
- pos: position{line: 111, col: 31, offset: 3109},
+ pos: position{line: 125, col: 37, offset: 3933},
expr: &choiceExpr{
- pos: position{line: 111, col: 32, offset: 3110},
+ pos: position{line: 125, col: 38, offset: 3934},
alternatives: []any{
&charClassMatcher{
- pos: position{line: 112, col: 9, offset: 3187},
+ pos: position{line: 135, col: 15, offset: 4182},
val: "[$@%_-+a-zA-Z]",
chars: []rune{'$', '@', '%', '_', '-', '+'},
ranges: []rune{'a', 'z', 'A', 'Z'},
@@ -280,43 +296,43 @@ var g = &grammar{
inverted: false,
},
&actionExpr{
- pos: position{line: 103, col: 10, offset: 2796},
- run: (*parser).callonCommand10,
+ pos: position{line: 111, col: 10, offset: 3492},
+ run: (*parser).callonDirective10,
expr: &seqExpr{
- pos: position{line: 103, col: 10, offset: 2796},
+ pos: position{line: 111, col: 10, offset: 3492},
exprs: []any{
&zeroOrOneExpr{
- pos: position{line: 103, col: 10, offset: 2796},
+ pos: position{line: 111, col: 10, offset: 3492},
expr: &litMatcher{
- pos: position{line: 103, col: 10, offset: 2796},
+ pos: position{line: 111, col: 10, offset: 3492},
val: "-",
ignoreCase: false,
want: "\"-\"",
},
},
&choiceExpr{
- pos: position{line: 104, col: 11, offset: 2904},
+ pos: position{line: 118, col: 23, offset: 3704},
alternatives: []any{
&litMatcher{
- pos: position{line: 104, col: 11, offset: 2904},
+ pos: position{line: 118, col: 23, offset: 3704},
val: "0",
ignoreCase: false,
want: "\"0\"",
},
&seqExpr{
- pos: position{line: 104, col: 17, offset: 2910},
+ pos: position{line: 118, col: 29, offset: 3710},
exprs: []any{
&charClassMatcher{
- pos: position{line: 107, col: 23, offset: 3029},
+ pos: position{line: 121, col: 23, offset: 3847},
val: "[1-9]",
ranges: []rune{'1', '9'},
ignoreCase: false,
inverted: false,
},
&zeroOrMoreExpr{
- pos: position{line: 104, col: 37, offset: 2930},
+ pos: position{line: 118, col: 49, offset: 3730},
expr: &charClassMatcher{
- pos: position{line: 106, col: 16, offset: 2999},
+ pos: position{line: 120, col: 23, offset: 3817},
val: "[0-9]",
ranges: []rune{'0', '9'},
ignoreCase: false,
@@ -328,20 +344,20 @@ var g = &grammar{
},
},
&zeroOrOneExpr{
- pos: position{line: 103, col: 23, offset: 2809},
+ pos: position{line: 111, col: 24, offset: 3506},
expr: &seqExpr{
- pos: position{line: 103, col: 25, offset: 2811},
+ pos: position{line: 111, col: 25, offset: 3507},
exprs: []any{
&litMatcher{
- pos: position{line: 103, col: 25, offset: 2811},
+ pos: position{line: 111, col: 25, offset: 3507},
val: ".",
ignoreCase: false,
want: "\".\"",
},
&oneOrMoreExpr{
- pos: position{line: 103, col: 29, offset: 2815},
+ pos: position{line: 111, col: 29, offset: 3511},
expr: &charClassMatcher{
- pos: position{line: 106, col: 16, offset: 2999},
+ pos: position{line: 120, col: 23, offset: 3817},
val: "[0-9]",
ranges: []rune{'0', '9'},
ignoreCase: false,
@@ -352,20 +368,20 @@ var g = &grammar{
},
},
&zeroOrOneExpr{
- pos: position{line: 103, col: 46, offset: 2832},
+ pos: position{line: 111, col: 45, offset: 3527},
expr: &seqExpr{
- pos: position{line: 105, col: 12, offset: 2957},
+ pos: position{line: 119, col: 23, offset: 3768},
exprs: []any{
&litMatcher{
- pos: position{line: 105, col: 12, offset: 2957},
+ pos: position{line: 119, col: 23, offset: 3768},
val: "e",
ignoreCase: true,
want: "\"e\"i",
},
&zeroOrOneExpr{
- pos: position{line: 105, col: 17, offset: 2962},
+ pos: position{line: 119, col: 28, offset: 3773},
expr: &charClassMatcher{
- pos: position{line: 105, col: 17, offset: 2962},
+ pos: position{line: 119, col: 28, offset: 3773},
val: "[+-]",
chars: []rune{'+', '-'},
ignoreCase: false,
@@ -373,9 +389,9 @@ var g = &grammar{
},
},
&oneOrMoreExpr{
- pos: position{line: 105, col: 23, offset: 2968},
+ pos: position{line: 119, col: 34, offset: 3779},
expr: &charClassMatcher{
- pos: position{line: 106, col: 16, offset: 2999},
+ pos: position{line: 120, col: 23, offset: 3817},
val: "[0-9]",
ranges: []rune{'0', '9'},
ignoreCase: false,
@@ -396,35 +412,35 @@ var g = &grammar{
},
},
&zeroOrMoreExpr{
- pos: position{line: 120, col: 5, offset: 3403},
+ pos: position{line: 142, col: 14, offset: 4397},
expr: &choiceExpr{
- pos: position{line: 120, col: 7, offset: 3405},
+ pos: position{line: 142, col: 16, offset: 4399},
alternatives: []any{
&charClassMatcher{
- pos: position{line: 120, col: 7, offset: 3405},
+ pos: position{line: 142, col: 16, offset: 4399},
val: "[ \\t\\r\\n]",
chars: []rune{' ', '\t', '\r', '\n'},
ignoreCase: false,
inverted: false,
},
&seqExpr{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
exprs: []any{
&litMatcher{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
val: "#",
ignoreCase: false,
want: "\"#\"",
},
&zeroOrMoreExpr{
- pos: position{line: 118, col: 15, offset: 3343},
+ pos: position{line: 140, col: 18, offset: 4320},
expr: &seqExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
exprs: []any{
&notExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
expr: &charClassMatcher{
- pos: position{line: 118, col: 18, offset: 3346},
+ pos: position{line: 140, col: 21, offset: 4323},
val: "[\\r\\n]",
chars: []rune{'\r', '\n'},
ignoreCase: false,
@@ -432,7 +448,7 @@ var g = &grammar{
},
},
&anyMatcher{
- line: 118, col: 25, offset: 3353,
+ line: 140, col: 28, offset: 4330,
},
},
},
@@ -443,43 +459,43 @@ var g = &grammar{
},
},
&labeledExpr{
- pos: position{line: 48, col: 24, offset: 959},
+ pos: position{line: 64, col: 26, offset: 1828},
label: "args",
expr: &ruleRefExpr{
- pos: position{line: 48, col: 29, offset: 964},
+ pos: position{line: 64, col: 31, offset: 1833},
name: "Args",
},
},
&zeroOrMoreExpr{
- pos: position{line: 120, col: 5, offset: 3403},
+ pos: position{line: 142, col: 14, offset: 4397},
expr: &choiceExpr{
- pos: position{line: 120, col: 7, offset: 3405},
+ pos: position{line: 142, col: 16, offset: 4399},
alternatives: []any{
&charClassMatcher{
- pos: position{line: 120, col: 7, offset: 3405},
+ pos: position{line: 142, col: 16, offset: 4399},
val: "[ \\t\\r\\n]",
chars: []rune{' ', '\t', '\r', '\n'},
ignoreCase: false,
inverted: false,
},
&seqExpr{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
exprs: []any{
&litMatcher{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
val: "#",
ignoreCase: false,
want: "\"#\"",
},
&zeroOrMoreExpr{
- pos: position{line: 118, col: 15, offset: 3343},
+ pos: position{line: 140, col: 18, offset: 4320},
expr: &seqExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
exprs: []any{
&notExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
expr: &charClassMatcher{
- pos: position{line: 118, col: 18, offset: 3346},
+ pos: position{line: 140, col: 21, offset: 4323},
val: "[\\r\\n]",
chars: []rune{'\r', '\n'},
ignoreCase: false,
@@ -487,7 +503,7 @@ var g = &grammar{
},
},
&anyMatcher{
- line: 118, col: 25, offset: 3353,
+ line: 140, col: 28, offset: 4330,
},
},
},
@@ -503,40 +519,40 @@ var g = &grammar{
},
{
name: "Args",
- pos: position{line: 70, col: 1, offset: 1602},
+ pos: position{line: 81, col: 1, offset: 2327},
expr: &seqExpr{
- pos: position{line: 70, col: 8, offset: 1611},
+ pos: position{line: 81, col: 8, offset: 2336},
exprs: []any{
&zeroOrOneExpr{
- pos: position{line: 70, col: 8, offset: 1611},
+ pos: position{line: 81, col: 8, offset: 2336},
expr: &actionExpr{
- pos: position{line: 72, col: 10, offset: 1645},
+ pos: position{line: 83, col: 10, offset: 2370},
run: (*parser).callonArgs3,
expr: &labeledExpr{
- pos: position{line: 72, col: 10, offset: 1645},
+ pos: position{line: 83, col: 10, offset: 2370},
label: "vals",
expr: &zeroOrMoreExpr{
- pos: position{line: 72, col: 15, offset: 1650},
+ pos: position{line: 83, col: 15, offset: 2375},
expr: &actionExpr{
- pos: position{line: 74, col: 9, offset: 1701},
+ pos: position{line: 85, col: 9, offset: 2426},
run: (*parser).callonArgs6,
expr: &seqExpr{
- pos: position{line: 74, col: 9, offset: 1701},
+ pos: position{line: 85, col: 9, offset: 2426},
exprs: []any{
&labeledExpr{
- pos: position{line: 74, col: 9, offset: 1701},
+ pos: position{line: 85, col: 9, offset: 2426},
label: "val",
expr: &choiceExpr{
- pos: position{line: 74, col: 15, offset: 1707},
+ pos: position{line: 85, col: 15, offset: 2432},
alternatives: []any{
&actionExpr{
- pos: position{line: 111, col: 9, offset: 3087},
+ pos: position{line: 125, col: 15, offset: 3911},
run: (*parser).callonArgs10,
expr: &seqExpr{
- pos: position{line: 111, col: 9, offset: 3087},
+ pos: position{line: 125, col: 15, offset: 3911},
exprs: []any{
&charClassMatcher{
- pos: position{line: 112, col: 9, offset: 3187},
+ pos: position{line: 135, col: 15, offset: 4182},
val: "[$@%_-+a-zA-Z]",
chars: []rune{'$', '@', '%', '_', '-', '+'},
ranges: []rune{'a', 'z', 'A', 'Z'},
@@ -544,12 +560,12 @@ var g = &grammar{
inverted: false,
},
&zeroOrMoreExpr{
- pos: position{line: 111, col: 31, offset: 3109},
+ pos: position{line: 125, col: 37, offset: 3933},
expr: &choiceExpr{
- pos: position{line: 111, col: 32, offset: 3110},
+ pos: position{line: 125, col: 38, offset: 3934},
alternatives: []any{
&charClassMatcher{
- pos: position{line: 112, col: 9, offset: 3187},
+ pos: position{line: 135, col: 15, offset: 4182},
val: "[$@%_-+a-zA-Z]",
chars: []rune{'$', '@', '%', '_', '-', '+'},
ranges: []rune{'a', 'z', 'A', 'Z'},
@@ -557,43 +573,43 @@ var g = &grammar{
inverted: false,
},
&actionExpr{
- pos: position{line: 103, col: 10, offset: 2796},
+ pos: position{line: 111, col: 10, offset: 3492},
run: (*parser).callonArgs16,
expr: &seqExpr{
- pos: position{line: 103, col: 10, offset: 2796},
+ pos: position{line: 111, col: 10, offset: 3492},
exprs: []any{
&zeroOrOneExpr{
- pos: position{line: 103, col: 10, offset: 2796},
+ pos: position{line: 111, col: 10, offset: 3492},
expr: &litMatcher{
- pos: position{line: 103, col: 10, offset: 2796},
+ pos: position{line: 111, col: 10, offset: 3492},
val: "-",
ignoreCase: false,
want: "\"-\"",
},
},
&choiceExpr{
- pos: position{line: 104, col: 11, offset: 2904},
+ pos: position{line: 118, col: 23, offset: 3704},
alternatives: []any{
&litMatcher{
- pos: position{line: 104, col: 11, offset: 2904},
+ pos: position{line: 118, col: 23, offset: 3704},
val: "0",
ignoreCase: false,
want: "\"0\"",
},
&seqExpr{
- pos: position{line: 104, col: 17, offset: 2910},
+ pos: position{line: 118, col: 29, offset: 3710},
exprs: []any{
&charClassMatcher{
- pos: position{line: 107, col: 23, offset: 3029},
+ pos: position{line: 121, col: 23, offset: 3847},
val: "[1-9]",
ranges: []rune{'1', '9'},
ignoreCase: false,
inverted: false,
},
&zeroOrMoreExpr{
- pos: position{line: 104, col: 37, offset: 2930},
+ pos: position{line: 118, col: 49, offset: 3730},
expr: &charClassMatcher{
- pos: position{line: 106, col: 16, offset: 2999},
+ pos: position{line: 120, col: 23, offset: 3817},
val: "[0-9]",
ranges: []rune{'0', '9'},
ignoreCase: false,
@@ -605,20 +621,20 @@ var g = &grammar{
},
},
&zeroOrOneExpr{
- pos: position{line: 103, col: 23, offset: 2809},
+ pos: position{line: 111, col: 24, offset: 3506},
expr: &seqExpr{
- pos: position{line: 103, col: 25, offset: 2811},
+ pos: position{line: 111, col: 25, offset: 3507},
exprs: []any{
&litMatcher{
- pos: position{line: 103, col: 25, offset: 2811},
+ pos: position{line: 111, col: 25, offset: 3507},
val: ".",
ignoreCase: false,
want: "\".\"",
},
&oneOrMoreExpr{
- pos: position{line: 103, col: 29, offset: 2815},
+ pos: position{line: 111, col: 29, offset: 3511},
expr: &charClassMatcher{
- pos: position{line: 106, col: 16, offset: 2999},
+ pos: position{line: 120, col: 23, offset: 3817},
val: "[0-9]",
ranges: []rune{'0', '9'},
ignoreCase: false,
@@ -629,20 +645,20 @@ var g = &grammar{
},
},
&zeroOrOneExpr{
- pos: position{line: 103, col: 46, offset: 2832},
+ pos: position{line: 111, col: 45, offset: 3527},
expr: &seqExpr{
- pos: position{line: 105, col: 12, offset: 2957},
+ pos: position{line: 119, col: 23, offset: 3768},
exprs: []any{
&litMatcher{
- pos: position{line: 105, col: 12, offset: 2957},
+ pos: position{line: 119, col: 23, offset: 3768},
val: "e",
ignoreCase: true,
want: "\"e\"i",
},
&zeroOrOneExpr{
- pos: position{line: 105, col: 17, offset: 2962},
+ pos: position{line: 119, col: 28, offset: 3773},
expr: &charClassMatcher{
- pos: position{line: 105, col: 17, offset: 2962},
+ pos: position{line: 119, col: 28, offset: 3773},
val: "[+-]",
chars: []rune{'+', '-'},
ignoreCase: false,
@@ -650,9 +666,9 @@ var g = &grammar{
},
},
&oneOrMoreExpr{
- pos: position{line: 105, col: 23, offset: 2968},
+ pos: position{line: 119, col: 34, offset: 3779},
expr: &charClassMatcher{
- pos: position{line: 106, col: 16, offset: 2999},
+ pos: position{line: 120, col: 23, offset: 3817},
val: "[0-9]",
ranges: []rune{'0', '9'},
ignoreCase: false,
@@ -672,32 +688,32 @@ var g = &grammar{
},
},
&actionExpr{
- pos: position{line: 75, col: 10, offset: 1777},
+ pos: position{line: 88, col: 10, offset: 2513},
run: (*parser).callonArgs38,
expr: &choiceExpr{
- pos: position{line: 75, col: 12, offset: 1779},
+ pos: position{line: 88, col: 12, offset: 2515},
alternatives: []any{
&seqExpr{
- pos: position{line: 75, col: 12, offset: 1779},
+ pos: position{line: 88, col: 12, offset: 2515},
exprs: []any{
&litMatcher{
- pos: position{line: 75, col: 12, offset: 1779},
+ pos: position{line: 88, col: 12, offset: 2515},
val: "\"",
ignoreCase: false,
want: "\"\\\"\"",
},
&zeroOrMoreExpr{
- pos: position{line: 75, col: 16, offset: 1783},
+ pos: position{line: 88, col: 16, offset: 2519},
expr: &choiceExpr{
- pos: position{line: 82, col: 20, offset: 1976},
+ pos: position{line: 91, col: 20, offset: 2663},
alternatives: []any{
&seqExpr{
- pos: position{line: 82, col: 20, offset: 1976},
+ pos: position{line: 91, col: 20, offset: 2663},
exprs: []any{
&notExpr{
- pos: position{line: 82, col: 20, offset: 1976},
+ pos: position{line: 91, col: 20, offset: 2663},
expr: &charClassMatcher{
- pos: position{line: 82, col: 23, offset: 1979},
+ pos: position{line: 91, col: 23, offset: 2666},
val: "[\"\\\\\\n]",
chars: []rune{'"', '\\', '\n'},
ignoreCase: false,
@@ -705,48 +721,48 @@ var g = &grammar{
},
},
&anyMatcher{
- line: 99, col: 14, offset: 2757,
+ line: 107, col: 14, offset: 3453,
},
},
},
&seqExpr{
- pos: position{line: 82, col: 55, offset: 2011},
+ pos: position{line: 91, col: 55, offset: 2698},
exprs: []any{
&litMatcher{
- pos: position{line: 82, col: 55, offset: 2011},
+ pos: position{line: 91, col: 55, offset: 2698},
val: "\\",
ignoreCase: false,
want: "\"\\\\\"",
},
&choiceExpr{
- pos: position{line: 86, col: 22, offset: 2173},
+ pos: position{line: 95, col: 22, offset: 2863},
alternatives: []any{
&charClassMatcher{
- pos: position{line: 90, col: 20, offset: 2381},
+ pos: position{line: 99, col: 24, offset: 3075},
val: "[abnf\"rtv\\\\]",
chars: []rune{'a', 'b', 'n', 'f', '"', 'r', 't', 'v', '\\'},
ignoreCase: false,
inverted: false,
},
&seqExpr{
- pos: position{line: 91, col: 15, offset: 2444},
+ pos: position{line: 100, col: 24, offset: 3147},
exprs: []any{
&charClassMatcher{
- pos: position{line: 96, col: 14, offset: 2690},
+ pos: position{line: 105, col: 14, offset: 3409},
val: "[0-7]",
ranges: []rune{'0', '7'},
ignoreCase: false,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 96, col: 14, offset: 2690},
+ pos: position{line: 105, col: 14, offset: 3409},
val: "[0-7]",
ranges: []rune{'0', '7'},
ignoreCase: false,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 96, col: 14, offset: 2690},
+ pos: position{line: 105, col: 14, offset: 3409},
val: "[0-7]",
ranges: []rune{'0', '7'},
ignoreCase: false,
@@ -755,23 +771,23 @@ var g = &grammar{
},
},
&seqExpr{
- pos: position{line: 92, col: 13, offset: 2491},
+ pos: position{line: 101, col: 24, offset: 3205},
exprs: []any{
&litMatcher{
- pos: position{line: 92, col: 13, offset: 2491},
+ pos: position{line: 101, col: 24, offset: 3205},
val: "x",
ignoreCase: false,
want: "\"x\"",
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
@@ -780,65 +796,65 @@ var g = &grammar{
},
},
&seqExpr{
- pos: position{line: 93, col: 21, offset: 2535},
+ pos: position{line: 102, col: 24, offset: 3252},
exprs: []any{
&litMatcher{
- pos: position{line: 93, col: 21, offset: 2535},
+ pos: position{line: 102, col: 24, offset: 3252},
val: "U",
ignoreCase: false,
want: "\"U\"",
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
@@ -847,37 +863,37 @@ var g = &grammar{
},
},
&seqExpr{
- pos: position{line: 94, col: 22, offset: 2634},
+ pos: position{line: 103, col: 24, offset: 3353},
exprs: []any{
&litMatcher{
- pos: position{line: 94, col: 22, offset: 2634},
+ pos: position{line: 103, col: 24, offset: 3353},
val: "u",
ignoreCase: false,
want: "\"u\"",
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
@@ -893,7 +909,7 @@ var g = &grammar{
},
},
&litMatcher{
- pos: position{line: 75, col: 34, offset: 1801},
+ pos: position{line: 88, col: 34, offset: 2537},
val: "\"",
ignoreCase: false,
want: "\"\\\"\"",
@@ -901,24 +917,24 @@ var g = &grammar{
},
},
&seqExpr{
- pos: position{line: 75, col: 40, offset: 1807},
+ pos: position{line: 88, col: 40, offset: 2543},
exprs: []any{
&litMatcher{
- pos: position{line: 75, col: 40, offset: 1807},
+ pos: position{line: 88, col: 40, offset: 2543},
val: "'",
ignoreCase: false,
want: "\"'\"",
},
&choiceExpr{
- pos: position{line: 83, col: 20, offset: 2056},
+ pos: position{line: 92, col: 20, offset: 2743},
alternatives: []any{
&seqExpr{
- pos: position{line: 83, col: 20, offset: 2056},
+ pos: position{line: 92, col: 20, offset: 2743},
exprs: []any{
&notExpr{
- pos: position{line: 83, col: 20, offset: 2056},
+ pos: position{line: 92, col: 20, offset: 2743},
expr: &charClassMatcher{
- pos: position{line: 83, col: 23, offset: 2059},
+ pos: position{line: 92, col: 23, offset: 2746},
val: "[\\\\\\\\n]",
chars: []rune{'\'', '\\', '\n'},
ignoreCase: false,
@@ -926,48 +942,48 @@ var g = &grammar{
},
},
&anyMatcher{
- line: 99, col: 14, offset: 2757,
+ line: 107, col: 14, offset: 3453,
},
},
},
&seqExpr{
- pos: position{line: 83, col: 55, offset: 2091},
+ pos: position{line: 92, col: 55, offset: 2778},
exprs: []any{
&litMatcher{
- pos: position{line: 83, col: 55, offset: 2091},
+ pos: position{line: 92, col: 55, offset: 2778},
val: "\\",
ignoreCase: false,
want: "\"\\\\\"",
},
&choiceExpr{
- pos: position{line: 87, col: 22, offset: 2223},
+ pos: position{line: 96, col: 22, offset: 2913},
alternatives: []any{
&charClassMatcher{
- pos: position{line: 90, col: 20, offset: 2381},
+ pos: position{line: 99, col: 24, offset: 3075},
val: "[abnf\\rtv\\\\]",
chars: []rune{'a', 'b', 'n', 'f', '\'', 'r', 't', 'v', '\\'},
ignoreCase: false,
inverted: false,
},
&seqExpr{
- pos: position{line: 91, col: 15, offset: 2444},
+ pos: position{line: 100, col: 24, offset: 3147},
exprs: []any{
&charClassMatcher{
- pos: position{line: 96, col: 14, offset: 2690},
+ pos: position{line: 105, col: 14, offset: 3409},
val: "[0-7]",
ranges: []rune{'0', '7'},
ignoreCase: false,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 96, col: 14, offset: 2690},
+ pos: position{line: 105, col: 14, offset: 3409},
val: "[0-7]",
ranges: []rune{'0', '7'},
ignoreCase: false,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 96, col: 14, offset: 2690},
+ pos: position{line: 105, col: 14, offset: 3409},
val: "[0-7]",
ranges: []rune{'0', '7'},
ignoreCase: false,
@@ -976,23 +992,23 @@ var g = &grammar{
},
},
&seqExpr{
- pos: position{line: 92, col: 13, offset: 2491},
+ pos: position{line: 101, col: 24, offset: 3205},
exprs: []any{
&litMatcher{
- pos: position{line: 92, col: 13, offset: 2491},
+ pos: position{line: 101, col: 24, offset: 3205},
val: "x",
ignoreCase: false,
want: "\"x\"",
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
@@ -1001,65 +1017,65 @@ var g = &grammar{
},
},
&seqExpr{
- pos: position{line: 93, col: 21, offset: 2535},
+ pos: position{line: 102, col: 24, offset: 3252},
exprs: []any{
&litMatcher{
- pos: position{line: 93, col: 21, offset: 2535},
+ pos: position{line: 102, col: 24, offset: 3252},
val: "U",
ignoreCase: false,
want: "\"U\"",
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
@@ -1068,37 +1084,37 @@ var g = &grammar{
},
},
&seqExpr{
- pos: position{line: 94, col: 22, offset: 2634},
+ pos: position{line: 103, col: 24, offset: 3353},
exprs: []any{
&litMatcher{
- pos: position{line: 94, col: 22, offset: 2634},
+ pos: position{line: 103, col: 24, offset: 3353},
val: "u",
ignoreCase: false,
want: "\"u\"",
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
inverted: false,
},
&charClassMatcher{
- pos: position{line: 98, col: 12, offset: 2732},
+ pos: position{line: 106, col: 12, offset: 3428},
val: "[0-9a-f]i",
ranges: []rune{'0', '9', 'a', 'f'},
ignoreCase: true,
@@ -1113,7 +1129,7 @@ var g = &grammar{
},
},
&litMatcher{
- pos: position{line: 75, col: 61, offset: 1828},
+ pos: position{line: 88, col: 61, offset: 2564},
val: "'",
ignoreCase: false,
want: "\"'\"",
@@ -1121,36 +1137,36 @@ var g = &grammar{
},
},
&seqExpr{
- pos: position{line: 75, col: 67, offset: 1834},
+ pos: position{line: 88, col: 67, offset: 2570},
exprs: []any{
&litMatcher{
- pos: position{line: 75, col: 67, offset: 1834},
+ pos: position{line: 88, col: 67, offset: 2570},
val: "`",
ignoreCase: false,
want: "\"`\"",
},
&zeroOrMoreExpr{
- pos: position{line: 75, col: 71, offset: 1838},
+ pos: position{line: 88, col: 71, offset: 2574},
expr: &seqExpr{
- pos: position{line: 84, col: 17, offset: 2133},
+ pos: position{line: 93, col: 20, offset: 2823},
exprs: []any{
&notExpr{
- pos: position{line: 84, col: 17, offset: 2133},
+ pos: position{line: 93, col: 20, offset: 2823},
expr: &litMatcher{
- pos: position{line: 84, col: 18, offset: 2134},
+ pos: position{line: 93, col: 21, offset: 2824},
val: "`",
ignoreCase: false,
want: "\"`\"",
},
},
&anyMatcher{
- line: 99, col: 14, offset: 2757,
+ line: 107, col: 14, offset: 3453,
},
},
},
},
&litMatcher{
- pos: position{line: 75, col: 86, offset: 1853},
+ pos: position{line: 88, col: 86, offset: 2589},
val: "`",
ignoreCase: false,
want: "\"`\"",
@@ -1161,43 +1177,43 @@ var g = &grammar{
},
},
&actionExpr{
- pos: position{line: 103, col: 10, offset: 2796},
+ pos: position{line: 111, col: 10, offset: 3492},
run: (*parser).callonArgs121,
expr: &seqExpr{
- pos: position{line: 103, col: 10, offset: 2796},
+ pos: position{line: 111, col: 10, offset: 3492},
exprs: []any{
&zeroOrOneExpr{
- pos: position{line: 103, col: 10, offset: 2796},
+ pos: position{line: 111, col: 10, offset: 3492},
expr: &litMatcher{
- pos: position{line: 103, col: 10, offset: 2796},
+ pos: position{line: 111, col: 10, offset: 3492},
val: "-",
ignoreCase: false,
want: "\"-\"",
},
},
&choiceExpr{
- pos: position{line: 104, col: 11, offset: 2904},
+ pos: position{line: 118, col: 23, offset: 3704},
alternatives: []any{
&litMatcher{
- pos: position{line: 104, col: 11, offset: 2904},
+ pos: position{line: 118, col: 23, offset: 3704},
val: "0",
ignoreCase: false,
want: "\"0\"",
},
&seqExpr{
- pos: position{line: 104, col: 17, offset: 2910},
+ pos: position{line: 118, col: 29, offset: 3710},
exprs: []any{
&charClassMatcher{
- pos: position{line: 107, col: 23, offset: 3029},
+ pos: position{line: 121, col: 23, offset: 3847},
val: "[1-9]",
ranges: []rune{'1', '9'},
ignoreCase: false,
inverted: false,
},
&zeroOrMoreExpr{
- pos: position{line: 104, col: 37, offset: 2930},
+ pos: position{line: 118, col: 49, offset: 3730},
expr: &charClassMatcher{
- pos: position{line: 106, col: 16, offset: 2999},
+ pos: position{line: 120, col: 23, offset: 3817},
val: "[0-9]",
ranges: []rune{'0', '9'},
ignoreCase: false,
@@ -1209,20 +1225,20 @@ var g = &grammar{
},
},
&zeroOrOneExpr{
- pos: position{line: 103, col: 23, offset: 2809},
+ pos: position{line: 111, col: 24, offset: 3506},
expr: &seqExpr{
- pos: position{line: 103, col: 25, offset: 2811},
+ pos: position{line: 111, col: 25, offset: 3507},
exprs: []any{
&litMatcher{
- pos: position{line: 103, col: 25, offset: 2811},
+ pos: position{line: 111, col: 25, offset: 3507},
val: ".",
ignoreCase: false,
want: "\".\"",
},
&oneOrMoreExpr{
- pos: position{line: 103, col: 29, offset: 2815},
+ pos: position{line: 111, col: 29, offset: 3511},
expr: &charClassMatcher{
- pos: position{line: 106, col: 16, offset: 2999},
+ pos: position{line: 120, col: 23, offset: 3817},
val: "[0-9]",
ranges: []rune{'0', '9'},
ignoreCase: false,
@@ -1233,20 +1249,20 @@ var g = &grammar{
},
},
&zeroOrOneExpr{
- pos: position{line: 103, col: 46, offset: 2832},
+ pos: position{line: 111, col: 45, offset: 3527},
expr: &seqExpr{
- pos: position{line: 105, col: 12, offset: 2957},
+ pos: position{line: 119, col: 23, offset: 3768},
exprs: []any{
&litMatcher{
- pos: position{line: 105, col: 12, offset: 2957},
+ pos: position{line: 119, col: 23, offset: 3768},
val: "e",
ignoreCase: true,
want: "\"e\"i",
},
&zeroOrOneExpr{
- pos: position{line: 105, col: 17, offset: 2962},
+ pos: position{line: 119, col: 28, offset: 3773},
expr: &charClassMatcher{
- pos: position{line: 105, col: 17, offset: 2962},
+ pos: position{line: 119, col: 28, offset: 3773},
val: "[+-]",
chars: []rune{'+', '-'},
ignoreCase: false,
@@ -1254,9 +1270,9 @@ var g = &grammar{
},
},
&oneOrMoreExpr{
- pos: position{line: 105, col: 23, offset: 2968},
+ pos: position{line: 119, col: 34, offset: 3779},
expr: &charClassMatcher{
- pos: position{line: 106, col: 16, offset: 2999},
+ pos: position{line: 120, col: 23, offset: 3817},
val: "[0-9]",
ranges: []rune{'0', '9'},
ignoreCase: false,
@@ -1269,59 +1285,39 @@ var g = &grammar{
},
},
},
- &actionExpr{
- pos: position{line: 116, col: 11, offset: 3266},
- run: (*parser).callonArgs143,
- expr: &litMatcher{
- pos: position{line: 116, col: 11, offset: 3266},
- val: "true",
- ignoreCase: false,
- want: "\"true\"",
- },
- },
- &actionExpr{
- pos: position{line: 116, col: 41, offset: 3296},
- run: (*parser).callonArgs145,
- expr: &litMatcher{
- pos: position{line: 116, col: 41, offset: 3296},
- val: "false",
- ignoreCase: false,
- want: "\"false\"",
- },
- },
},
},
},
&zeroOrMoreExpr{
- pos: position{line: 119, col: 6, offset: 3365},
+ pos: position{line: 141, col: 14, offset: 4350},
expr: &choiceExpr{
- pos: position{line: 119, col: 8, offset: 3367},
+ pos: position{line: 141, col: 16, offset: 4352},
alternatives: []any{
&charClassMatcher{
- pos: position{line: 122, col: 14, offset: 3444},
+ pos: position{line: 143, col: 14, offset: 4437},
val: "[ \\t\\r\\n]",
chars: []rune{' ', '\t', '\r', '\n'},
ignoreCase: false,
inverted: false,
},
&seqExpr{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
exprs: []any{
&litMatcher{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
val: "#",
ignoreCase: false,
want: "\"#\"",
},
&zeroOrMoreExpr{
- pos: position{line: 118, col: 15, offset: 3343},
+ pos: position{line: 140, col: 18, offset: 4320},
expr: &seqExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
exprs: []any{
&notExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
expr: &charClassMatcher{
- pos: position{line: 118, col: 18, offset: 3346},
+ pos: position{line: 140, col: 21, offset: 4323},
val: "[\\r\\n]",
chars: []rune{'\r', '\n'},
ignoreCase: false,
@@ -1329,7 +1325,7 @@ var g = &grammar{
},
},
&anyMatcher{
- line: 118, col: 25, offset: 3353,
+ line: 140, col: 28, offset: 4330,
},
},
},
@@ -1347,48 +1343,48 @@ var g = &grammar{
},
},
&choiceExpr{
- pos: position{line: 70, col: 17, offset: 1620},
+ pos: position{line: 81, col: 17, offset: 2345},
alternatives: []any{
&ruleRefExpr{
- pos: position{line: 70, col: 17, offset: 1620},
+ pos: position{line: 81, col: 17, offset: 2345},
name: "Group",
},
&actionExpr{
- pos: position{line: 124, col: 7, offset: 3473},
- run: (*parser).callonArgs159,
+ pos: position{line: 145, col: 14, offset: 4480},
+ run: (*parser).callonArgs155,
expr: &seqExpr{
- pos: position{line: 124, col: 7, offset: 3473},
+ pos: position{line: 145, col: 14, offset: 4480},
exprs: []any{
&zeroOrMoreExpr{
- pos: position{line: 119, col: 6, offset: 3365},
+ pos: position{line: 141, col: 14, offset: 4350},
expr: &choiceExpr{
- pos: position{line: 119, col: 8, offset: 3367},
+ pos: position{line: 141, col: 16, offset: 4352},
alternatives: []any{
&charClassMatcher{
- pos: position{line: 122, col: 14, offset: 3444},
+ pos: position{line: 143, col: 14, offset: 4437},
val: "[ \\t\\r\\n]",
chars: []rune{' ', '\t', '\r', '\n'},
ignoreCase: false,
inverted: false,
},
&seqExpr{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
exprs: []any{
&litMatcher{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
val: "#",
ignoreCase: false,
want: "\"#\"",
},
&zeroOrMoreExpr{
- pos: position{line: 118, col: 15, offset: 3343},
+ pos: position{line: 140, col: 18, offset: 4320},
expr: &seqExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
exprs: []any{
&notExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
expr: &charClassMatcher{
- pos: position{line: 118, col: 18, offset: 3346},
+ pos: position{line: 140, col: 21, offset: 4323},
val: "[\\r\\n]",
chars: []rune{'\r', '\n'},
ignoreCase: false,
@@ -1396,7 +1392,7 @@ var g = &grammar{
},
},
&anyMatcher{
- line: 118, col: 25, offset: 3353,
+ line: 140, col: 28, offset: 4330,
},
},
},
@@ -1407,7 +1403,7 @@ var g = &grammar{
},
},
&litMatcher{
- pos: position{line: 124, col: 10, offset: 3476},
+ pos: position{line: 145, col: 17, offset: 4483},
val: ";",
ignoreCase: false,
want: "\";\"",
@@ -1416,41 +1412,41 @@ var g = &grammar{
},
},
&actionExpr{
- pos: position{line: 124, col: 36, offset: 3502},
- run: (*parser).callonArgs172,
+ pos: position{line: 145, col: 43, offset: 4509},
+ run: (*parser).callonArgs168,
expr: &seqExpr{
- pos: position{line: 124, col: 36, offset: 3502},
+ pos: position{line: 145, col: 43, offset: 4509},
exprs: []any{
&zeroOrMoreExpr{
- pos: position{line: 120, col: 5, offset: 3403},
+ pos: position{line: 142, col: 14, offset: 4397},
expr: &choiceExpr{
- pos: position{line: 120, col: 7, offset: 3405},
+ pos: position{line: 142, col: 16, offset: 4399},
alternatives: []any{
&charClassMatcher{
- pos: position{line: 120, col: 7, offset: 3405},
+ pos: position{line: 142, col: 16, offset: 4399},
val: "[ \\t\\r\\n]",
chars: []rune{' ', '\t', '\r', '\n'},
ignoreCase: false,
inverted: false,
},
&seqExpr{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
exprs: []any{
&litMatcher{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
val: "#",
ignoreCase: false,
want: "\"#\"",
},
&zeroOrMoreExpr{
- pos: position{line: 118, col: 15, offset: 3343},
+ pos: position{line: 140, col: 18, offset: 4320},
expr: &seqExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
exprs: []any{
&notExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
expr: &charClassMatcher{
- pos: position{line: 118, col: 18, offset: 3346},
+ pos: position{line: 140, col: 21, offset: 4323},
val: "[\\r\\n]",
chars: []rune{'\r', '\n'},
ignoreCase: false,
@@ -1458,7 +1454,7 @@ var g = &grammar{
},
},
&anyMatcher{
- line: 118, col: 25, offset: 3353,
+ line: 140, col: 28, offset: 4330,
},
},
},
@@ -1469,25 +1465,25 @@ var g = &grammar{
},
},
&zeroOrOneExpr{
- pos: position{line: 124, col: 38, offset: 3504},
+ pos: position{line: 145, col: 45, offset: 4511},
expr: &seqExpr{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
exprs: []any{
&litMatcher{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
val: "#",
ignoreCase: false,
want: "\"#\"",
},
&zeroOrMoreExpr{
- pos: position{line: 118, col: 15, offset: 3343},
+ pos: position{line: 140, col: 18, offset: 4320},
expr: &seqExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
exprs: []any{
&notExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
expr: &charClassMatcher{
- pos: position{line: 118, col: 18, offset: 3346},
+ pos: position{line: 140, col: 21, offset: 4323},
val: "[\\r\\n]",
chars: []rune{'\r', '\n'},
ignoreCase: false,
@@ -1495,7 +1491,7 @@ var g = &grammar{
},
},
&anyMatcher{
- line: 118, col: 25, offset: 3353,
+ line: 140, col: 28, offset: 4330,
},
},
},
@@ -1504,7 +1500,7 @@ var g = &grammar{
},
},
&litMatcher{
- pos: position{line: 123, col: 7, offset: 3460},
+ pos: position{line: 144, col: 14, offset: 4460},
val: "\n",
ignoreCase: false,
want: "\"\\n\"",
@@ -1513,41 +1509,41 @@ var g = &grammar{
},
},
&actionExpr{
- pos: position{line: 124, col: 73, offset: 3539},
- run: (*parser).callonArgs193,
+ pos: position{line: 145, col: 80, offset: 4546},
+ run: (*parser).callonArgs189,
expr: &seqExpr{
- pos: position{line: 124, col: 73, offset: 3539},
+ pos: position{line: 145, col: 80, offset: 4546},
exprs: []any{
&zeroOrMoreExpr{
- pos: position{line: 119, col: 6, offset: 3365},
+ pos: position{line: 141, col: 14, offset: 4350},
expr: &choiceExpr{
- pos: position{line: 119, col: 8, offset: 3367},
+ pos: position{line: 141, col: 16, offset: 4352},
alternatives: []any{
&charClassMatcher{
- pos: position{line: 122, col: 14, offset: 3444},
+ pos: position{line: 143, col: 14, offset: 4437},
val: "[ \\t\\r\\n]",
chars: []rune{' ', '\t', '\r', '\n'},
ignoreCase: false,
inverted: false,
},
&seqExpr{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
exprs: []any{
&litMatcher{
- pos: position{line: 118, col: 11, offset: 3339},
+ pos: position{line: 140, col: 14, offset: 4316},
val: "#",
ignoreCase: false,
want: "\"#\"",
},
&zeroOrMoreExpr{
- pos: position{line: 118, col: 15, offset: 3343},
+ pos: position{line: 140, col: 18, offset: 4320},
expr: &seqExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
exprs: []any{
&notExpr{
- pos: position{line: 118, col: 17, offset: 3345},
+ pos: position{line: 140, col: 20, offset: 4322},
expr: &charClassMatcher{
- pos: position{line: 118, col: 18, offset: 3346},
+ pos: position{line: 140, col: 21, offset: 4323},
val: "[\\r\\n]",
chars: []rune{'\r', '\n'},
ignoreCase: false,
@@ -1555,7 +1551,7 @@ var g = &grammar{
},
},
&anyMatcher{
- line: 118, col: 25, offset: 3353,
+ line: 140, col: 28, offset: 4330,
},
},
},
@@ -1566,9 +1562,9 @@ var g = &grammar{
},
},
&notExpr{
- pos: position{line: 126, col: 7, offset: 3575},
+ pos: position{line: 146, col: 14, offset: 4588},
expr: &anyMatcher{
- line: 126, col: 8, offset: 3576,
+ line: 146, col: 15, offset: 4589,
},
},
},
@@ -1582,14 +1578,14 @@ var g = &grammar{
},
}
-func (c *current) onConfig1(stmts any) (any, error) {
- if stmts == nil {
+func (c *current) onConfig1(directives any) (any, error) {
+ if directives == nil {
return model.Group{}, nil
}
- groupAny := toAnySlice(stmts)
+ groupAny := toAnySlice(directives)
groupSl := make(model.Group, len(groupAny))
for i, e := range groupAny {
- groupSl[i] = e.(model.Command)
+ groupSl[i] = e.(model.Directive)
}
return groupSl, nil
}
@@ -1597,17 +1593,17 @@ func (c *current) onConfig1(stmts any) (any, error) {
func (p *parser) callonConfig1() (any, error) {
stack := p.vstack[len(p.vstack)-1]
_ = stack
- return p.cur.onConfig1(stack["stmts"])
+ return p.cur.onConfig1(stack["directives"])
}
-func (c *current) onGroup1(stmts any) (any, error) {
- if stmts == nil {
+func (c *current) onGroup1(directives any) (any, error) {
+ if directives == nil {
return model.Group{}, nil
}
- groupAny := toAnySlice(stmts)
+ groupAny := toAnySlice(directives)
groupSl := make(model.Group, len(groupAny))
for i, e := range groupAny {
- groupSl[i] = e.(model.Command)
+ groupSl[i] = e.(model.Directive)
}
return groupSl, nil
}
@@ -1615,31 +1611,40 @@ func (c *current) onGroup1(stmts any) (any, error) {
func (p *parser) callonGroup1() (any, error) {
stack := p.vstack[len(p.vstack)-1]
_ = stack
- return p.cur.onGroup1(stack["stmts"])
+ return p.cur.onGroup1(stack["directives"])
}
-func (c *current) onCommand10() (any, error) {
+func (c *current) onDirective10() (any, error) {
+ if i, err := strconv.Atoi(string(c.text)); err == nil {
+ return i, nil
+ }
return strconv.ParseFloat(string(c.text), 64)
}
-func (p *parser) callonCommand10() (any, error) {
+func (p *parser) callonDirective10() (any, error) {
stack := p.vstack[len(p.vstack)-1]
_ = stack
- return p.cur.onCommand10()
+ return p.cur.onDirective10()
}
-func (c *current) onCommand4() (any, error) {
- return model.Ident(c.text), nil
+func (c *current) onDirective4() (any, error) {
+ switch string(c.text) {
+ case "true":
+ return true, nil
+ case "false":
+ return false, nil
+ default:
+ return model.Ident(c.text), nil
+ }
}
-func (p *parser) callonCommand4() (any, error) {
+func (p *parser) callonDirective4() (any, error) {
stack := p.vstack[len(p.vstack)-1]
_ = stack
- return p.cur.onCommand4()
+ return p.cur.onDirective4()
}
-func (c *current) onCommand1(name, args any) (any, error) {
- var group model.Group
+func (c *current) onDirective1(name, args any) (any, error) {
rawArgs := args.([]any)
argsSlice := make([]any, 0, len(rawArgs))
if len(rawArgs) > 0 {
@@ -1648,7 +1653,7 @@ func (c *current) onCommand1(name, args any) (any, error) {
continue
}
if g, ok := s.(model.Group); ok {
- group = g
+ argsSlice = append(argsSlice, g)
continue
}
if l, ok := s.([]any); ok {
@@ -1657,16 +1662,19 @@ func (c *current) onCommand1(name, args any) (any, error) {
}
}
}
- return model.Command{Name: name.(model.Ident), Args: argsSlice, Group: group}, nil
+ return model.Directive{Name: name.(model.Ident), RawValues: argsSlice}, nil
}
-func (p *parser) callonCommand1() (any, error) {
+func (p *parser) callonDirective1() (any, error) {
stack := p.vstack[len(p.vstack)-1]
_ = stack
- return p.cur.onCommand1(stack["name"], stack["args"])
+ return p.cur.onDirective1(stack["name"], stack["args"])
}
func (c *current) onArgs16() (any, error) {
+ if i, err := strconv.Atoi(string(c.text)); err == nil {
+ return i, nil
+ }
return strconv.ParseFloat(string(c.text), 64)
}
@@ -1677,7 +1685,14 @@ func (p *parser) callonArgs16() (any, error) {
}
func (c *current) onArgs10() (any, error) {
- return model.Ident(c.text), nil
+ switch string(c.text) {
+ case "true":
+ return true, nil
+ case "false":
+ return false, nil
+ default:
+ return model.Ident(c.text), nil
+ }
}
func (p *parser) callonArgs10() (any, error) {
@@ -1687,7 +1702,7 @@ func (p *parser) callonArgs10() (any, error) {
}
func (c *current) onArgs38() (any, error) {
- return string(c.text), nil
+ return strconv.Unquote(string(c.text))
}
func (p *parser) callonArgs38() (any, error) {
@@ -1697,6 +1712,9 @@ func (p *parser) callonArgs38() (any, error) {
}
func (c *current) onArgs121() (any, error) {
+ if i, err := strconv.Atoi(string(c.text)); err == nil {
+ return i, nil
+ }
return strconv.ParseFloat(string(c.text), 64)
}
@@ -1706,26 +1724,6 @@ func (p *parser) callonArgs121() (any, error) {
return p.cur.onArgs121()
}
-func (c *current) onArgs143() (any, error) {
- return true, nil
-}
-
-func (p *parser) callonArgs143() (any, error) {
- stack := p.vstack[len(p.vstack)-1]
- _ = stack
- return p.cur.onArgs143()
-}
-
-func (c *current) onArgs145() (any, error) {
- return false, nil
-}
-
-func (p *parser) callonArgs145() (any, error) {
- stack := p.vstack[len(p.vstack)-1]
- _ = stack
- return p.cur.onArgs145()
-}
-
func (c *current) onArgs6(val any) (any, error) {
return val, nil
}
@@ -1746,34 +1744,34 @@ func (p *parser) callonArgs3() (any, error) {
return p.cur.onArgs3(stack["vals"])
}
-func (c *current) onArgs159() (any, error) {
+func (c *current) onArgs155() (any, error) {
return nil, nil
}
-func (p *parser) callonArgs159() (any, error) {
+func (p *parser) callonArgs155() (any, error) {
stack := p.vstack[len(p.vstack)-1]
_ = stack
- return p.cur.onArgs159()
+ return p.cur.onArgs155()
}
-func (c *current) onArgs172() (any, error) {
+func (c *current) onArgs168() (any, error) {
return nil, nil
}
-func (p *parser) callonArgs172() (any, error) {
+func (p *parser) callonArgs168() (any, error) {
stack := p.vstack[len(p.vstack)-1]
_ = stack
- return p.cur.onArgs172()
+ return p.cur.onArgs168()
}
-func (c *current) onArgs193() (any, error) {
+func (c *current) onArgs189() (any, error) {
return nil, nil
}
-func (p *parser) callonArgs193() (any, error) {
+func (p *parser) callonArgs189() (any, error) {
stack := p.vstack[len(p.vstack)-1]
_ = stack
- return p.cur.onArgs193()
+ return p.cur.onArgs189()
}
var (