1
2
3 package regexp
4
5 import (
6 "cuelang.org/go/internal/core/adt"
7 "cuelang.org/go/internal/pkg"
8 )
9
10 func init() {
11 pkg.Register("regexp", p)
12 }
13
14 var _ = adt.TopKind
15
16 var p = &pkg.Package{
17 Native: []*pkg.Builtin{{
18 Name: "Find",
19 Params: []pkg.Param{
20 {Kind: adt.StringKind},
21 {Kind: adt.StringKind},
22 },
23 Result: adt.StringKind,
24 Func: func(c *pkg.CallCtxt) {
25 pattern, s := c.String(0), c.String(1)
26 if c.Do() {
27 c.Ret, c.Err = Find(pattern, s)
28 }
29 },
30 }, {
31 Name: "FindAll",
32 Params: []pkg.Param{
33 {Kind: adt.StringKind},
34 {Kind: adt.StringKind},
35 {Kind: adt.IntKind},
36 },
37 Result: adt.ListKind,
38 Func: func(c *pkg.CallCtxt) {
39 pattern, s, n := c.String(0), c.String(1), c.Int(2)
40 if c.Do() {
41 c.Ret, c.Err = FindAll(pattern, s, n)
42 }
43 },
44 }, {
45 Name: "FindAllNamedSubmatch",
46 Params: []pkg.Param{
47 {Kind: adt.StringKind},
48 {Kind: adt.StringKind},
49 {Kind: adt.IntKind},
50 },
51 Result: adt.ListKind,
52 Func: func(c *pkg.CallCtxt) {
53 pattern, s, n := c.String(0), c.String(1), c.Int(2)
54 if c.Do() {
55 c.Ret, c.Err = FindAllNamedSubmatch(pattern, s, n)
56 }
57 },
58 }, {
59 Name: "FindAllSubmatch",
60 Params: []pkg.Param{
61 {Kind: adt.StringKind},
62 {Kind: adt.StringKind},
63 {Kind: adt.IntKind},
64 },
65 Result: adt.ListKind,
66 Func: func(c *pkg.CallCtxt) {
67 pattern, s, n := c.String(0), c.String(1), c.Int(2)
68 if c.Do() {
69 c.Ret, c.Err = FindAllSubmatch(pattern, s, n)
70 }
71 },
72 }, {
73 Name: "FindNamedSubmatch",
74 Params: []pkg.Param{
75 {Kind: adt.StringKind},
76 {Kind: adt.StringKind},
77 },
78 Result: adt.StructKind,
79 Func: func(c *pkg.CallCtxt) {
80 pattern, s := c.String(0), c.String(1)
81 if c.Do() {
82 c.Ret, c.Err = FindNamedSubmatch(pattern, s)
83 }
84 },
85 }, {
86 Name: "FindSubmatch",
87 Params: []pkg.Param{
88 {Kind: adt.StringKind},
89 {Kind: adt.StringKind},
90 },
91 Result: adt.ListKind,
92 Func: func(c *pkg.CallCtxt) {
93 pattern, s := c.String(0), c.String(1)
94 if c.Do() {
95 c.Ret, c.Err = FindSubmatch(pattern, s)
96 }
97 },
98 }, {
99 Name: "ReplaceAll",
100 Params: []pkg.Param{
101 {Kind: adt.StringKind},
102 {Kind: adt.StringKind},
103 {Kind: adt.StringKind},
104 },
105 Result: adt.StringKind,
106 Func: func(c *pkg.CallCtxt) {
107 pattern, src, repl := c.String(0), c.String(1), c.String(2)
108 if c.Do() {
109 c.Ret, c.Err = ReplaceAll(pattern, src, repl)
110 }
111 },
112 }, {
113 Name: "ReplaceAllLiteral",
114 Params: []pkg.Param{
115 {Kind: adt.StringKind},
116 {Kind: adt.StringKind},
117 {Kind: adt.StringKind},
118 },
119 Result: adt.StringKind,
120 Func: func(c *pkg.CallCtxt) {
121 pattern, src, repl := c.String(0), c.String(1), c.String(2)
122 if c.Do() {
123 c.Ret, c.Err = ReplaceAllLiteral(pattern, src, repl)
124 }
125 },
126 }, {
127 Name: "Valid",
128 Params: []pkg.Param{
129 {Kind: adt.StringKind},
130 },
131 Result: adt.BoolKind,
132 Func: func(c *pkg.CallCtxt) {
133 pattern := c.String(0)
134 if c.Do() {
135 c.Ret, c.Err = Valid(pattern)
136 }
137 },
138 }, {
139 Name: "Match",
140 Params: []pkg.Param{
141 {Kind: adt.StringKind},
142 {Kind: adt.StringKind},
143 },
144 Result: adt.BoolKind,
145 Func: func(c *pkg.CallCtxt) {
146 pattern, s := c.String(0), c.String(1)
147 if c.Do() {
148 c.Ret, c.Err = Match(pattern, s)
149 }
150 },
151 }, {
152 Name: "QuoteMeta",
153 Params: []pkg.Param{
154 {Kind: adt.StringKind},
155 },
156 Result: adt.StringKind,
157 Func: func(c *pkg.CallCtxt) {
158 s := c.String(0)
159 if c.Do() {
160 c.Ret = QuoteMeta(s)
161 }
162 },
163 }},
164 }
165
View as plain text