[dfa/Cursor] Implement backslash escapes for character classes
[pugs.git] / src / perl6 / CORE.setting
blob64f37ede8542ecebf04ec6a95917be1cacea9044
1 # CORE.setting
3 # Copyright 2009-2010, Larry Wall
5 # You may copy this software under the terms of the Artistic License,
6 #     version 2.0 or later.
8 my module CORE;
10 constant Nil = ();
12 my enum Bool <False True>;
14 my enum Order < Increase Same Decrease >;
15 my enum TrigBase <Radians Degrees Gradians Circles>;
17 my role Stash { }
18 my role Role does Stash { }
19 my role Package does Stash { }
20 my role Module does Stash { }
21 my role Class does Module { }
22 my role Grammar does Class { }
23 my role List { }
24 my role Iterable { }
26 # XXX does this mean anything?
27 my role Matcher { }
29 my class CallFrame { }  # or is this a role?
30 my class P6opaque { }
31 my class Mu { }
32 my class Any { }
33 my class Junction { }
34 my class junction { }
35 my class Whatever { }
36 my class WhateverCode { }
37 my class HyperWhatever { }
38 my class Capture { }
39 my class Parcel { }
40 my class Iterator does List { }
41 my class Match { }
42 my class Signature { }
43 my class Parameter { }
44 my class Proxy { }
45 my class Scalar { }
46 my class Array does Iterable { }
47 my class Hash does Iterable { }
48 my class KeyHash does Iterable { }
49 my class KeySet does Iterable { }
50 my class KeyBag does Iterable { }
51 my class KeyWeight does Iterable { }
52 my class Pair { }
53 my class PairMap { }
54 my class Enum { }
55 my class EnumMap { }
56 my class Seq { }
57 my class SeqIter does List { }
58 my class Range { }
59 my class RangeIter does List { }
60 my class Set { }
61 my class Bag { }
62 my class Mapping { }
63 my class Sink { }
64 my class Undef { }
65 my class Failure { }
66 my class EMPTY is Failure { }
67 my class Exception { }
68 my class Code { }
69 my class Block { }
70 my class Routine { }
71 my class Sub { }
72 my class Macro { }
73 my class Method { }
74 my class Submethod { }
75 my class Regex { }
76 my class Multi { }
78 my role Stringy { }
79 my class Str { }
80 my class Cat { }
81 my class Blob { }
82 my class Char { }
83 my class AnyChar { }
84 my class CharLingua { }
85 my class Byte { }
86 my class Codepoint { }
87 my class Grapheme { }
88 my class StrPos { }
89 my class StrLen { }
90 my class Version { }
92 my role Numeric { }
93 my role Real { }
94 my class Num { 
95     # for now, limit denominator to one quintillion to fit in Rat64.
96     constant pi is export = 3.14159_26535_89793_238;   # 46_26433_83279_50288;
97     constant e  is export = 2.71828_18284_59045_235;   # 36_02874_71352_66249;
98     constant i  is export = 1i;
100 import Num <pi e i>;
102 my class num { }
103 my class num16 { }
104 my class num32 { }
105 my class num64 { }
106 my class num128 { }
108 my class Complex { }
109 my class complex { }
111 # (eventually these should be instantiated generics, complex:of(num64) and such)
112 my class complex16 { }
113 my class complex32 { }
114 my class complex64 { }
115 my class complex128 { }
117 my role Integral { }
118 my class Int { }
119 my class int { }
121 my class int1 { }
122 my class int2 { }
123 my class int4 { }
124 my class int8 { }
125 my class int16 { }
126 my class int32 { }
127 my class int64 { }
128 my class int128 { }
130 my role Rational { }
131 my class Rat { }
132 my class FatRat { }
133 my class rat { }
134 my class rat8 { }
135 my class rat16 { }
136 my class rat32 { }
137 my class rat64 { }
138 my class rat128 { }
140 my class UInt { }
141 my class uint { }
142 my class uint1 { }
143 my class uint2 { }
144 my class uint4 { }
145 my class uint8 { }
146 my class uint16 { }
147 my class uint32 { }
148 my class uint64 { }
149 my class uint128 { }
151 my role Buf { }
152 my class buf { }
153 my class buf1 { }
154 my class buf2 { }
155 my class buf4 { }
156 my class buf8 { }
157 my class buf16 { }
158 my class buf32 { }
159 my class buf64 { }
161 my class utf8 { }
162 my class utf16 { }
163 my class utf32 { }
165 my class Bit { }
166 my class bit { }
167 my class bool { }
169 my role Ordered { }
170 my role Callable { }
171 my role Positional { }
172 my role Associative { }
173 my role Abstraction { }
174 my role Integral { }
175 my role AttributeDeclarand { }
176 my role ContainerDeclarand { }
178 my subset Comparator   of Code where { .signature === :(Any, Any --> Int ) };
179 my subset KeyExtractor of Code where { .signature === :(Any --> Any) };
180 my subset OrderingPair of Pair where { .left ~~ KeyExtractor && .right ~~ Comparator };
181 my subset Ordering of Mu where Signature | KeyExtractor | Comparator | OrderingPair | Whatever;
183 my class Instant { }
184 my class Duration { }
185 my class Date { }
186 my class DateTime { }
188 my class IO { }
190 my class KitchenSink { }
192 my proto WHAT { }
193 my proto WHERE { }
194 my proto HOW { }
195 my proto WHICH { }
196 my proto VAR { }
197 my proto WHO { }
198 my proto WHENCE { }
199 my proto new { }
200 my proto fail { }
201 my proto temp { }
202 my proto let { }
203 my proto any { }
204 my proto all { }
205 my proto none { }
206 my proto one { }
207 my proto not { }
208 my proto so { }
209 my proto next { }
210 my proto last { }
211 my proto redo { }
212 my proto succeed { }
213 my proto goto { }
215 my proto die { }
216 my proto exit { }
217 my proto warn { }
218 my proto note { }
219 my proto caller { }
220 my proto callframe { }
221 my proto eval { }
222 my proto evalfile { }
223 my proto callsame { }
224 my proto callwith { }
225 my proto nextsame { }
226 my proto nextwith { }
227 my proto lastcall { }
228 my proto defined { }
229 my proto notdef { }
230 my proto undefine { }
231 my proto item { }
232 my proto list { }
233 my proto slice { }
234 my proto eager { }
235 my proto hyper { }
237 my proto cat { }
238 my proto classify { }
239 my proto quotemeta { }
240 my proto chr { }
241 my proto ord { }
242 my proto p5chop { }
243 my proto chop { }
244 my proto p5chomp { }
245 my proto chomp { }
246 my proto trim { }
247 my proto trim-leading { }
248 my proto trim-trailing { }
249 my proto index { }
250 my proto rindex { }
251 my proto substr { }
252 my proto join { }
253 my proto split { }
254 my proto comb { }
255 my proto pack { }
256 my proto unpack { }
257 my proto uc { }
258 my proto ucfirst { }
259 my proto lc { }
260 my proto lcfirst { }
261 my proto normalize { }
262 my proto nfc { }
263 my proto nfd { }
264 my proto nfkc { }
265 my proto nfkd { }
266 my proto samecase { }
267 my proto sameaccent { }
268 my proto capitalize { }
269 my proto chars { }
270 my proto graphs { }
271 my proto codes { }
272 my proto bytes { }
274 my proto say { }
275 my proto print { }
276 my proto open { }
277 my proto close { }
278 my proto printf { }
279 my proto sprintf { }
280 my proto unlink { }
281 my proto link { }
282 my proto symlink { }
283 my proto elems { }
284 my proto end { }
285 my proto grep { }
286 my proto map { }
287 my proto first { }
288 my proto reduce { }
289 my proto sort { }
290 my proto min { }
291 my proto max { }
292 my proto minmax { }
293 my proto uniq { }
294 my proto push { }
295 my proto rotate { }
296 my proto reverse { }
297 my proto flip { }
298 my proto take { }
299 my proto splice { }
300 my proto slurp { }
301 my proto get { }
302 my proto lines { }
303 my proto getc { }
304 my proto prompt { }
305 my proto chdir { }
306 my proto chmod { }
308 my proto zip { }
309 my proto each { }
310 my proto roundrobin { }
311 my proto return { }
312 my proto leave { }
313 my proto make { }
314 my proto pop { }
315 my proto shift { }
316 my proto unshift { }
317 my proto keys { }
318 my proto values { }
319 my proto hash { }
320 my proto kv { }
321 my proto key { }
322 my proto value { }
323 my proto pairs { }
324 my proto invert { }
325 my proto pair { }
326 my proto enum { }
328 my proto sign { }
329 my proto abs { }
330 my proto floor { }
331 my proto ceiling { }
332 my proto round { }
333 my proto truncate { }
334 my proto exp { }
335 my proto log { }
336 my proto log10 { }
337 my proto sqrt { }
338 my proto roots { }
339 my proto rand { }
340 my proto srand { }
341 my proto pick { }
342 my proto cis { }
343 my proto unpolar { }
345 my proto sin { }
346 my proto cos { }
347 my proto tan { }
348 my proto asin { }
349 my proto acos { }
350 my proto atan { }
351 my proto sec { }
352 my proto cosec { }
353 my proto cotan { }
354 my proto asec { }
355 my proto acosec { }
356 my proto acotan { }
357 my proto sinh { }
358 my proto cosh { }
359 my proto tanh { }
360 my proto asinh { }
361 my proto acosh { }
362 my proto atanh { }
363 my proto sech { }
364 my proto cosech { }
365 my proto cotanh { }
366 my proto asech { }
367 my proto acosech { }
368 my proto acotanh { }
369 my proto atan2 { }
371 my proto today { }
373 my proto gmtime { }
374 my proto localtime { }
375 my proto time { }
376 my proto times { }
377 my proto gethost { }
378 my proto getpw { }
379 my proto chroot { }
380 my proto getlogin { }
381 my proto run { }
382 my proto runinstead { }
383 my proto fork { }
384 my proto wait { }
385 my proto kill { }
386 my proto sleep { }
388 my proto postfix:<i> ($x) { }
389 my proto infix:<.> ($x,$y) { }
390 my proto postfix:['->'] ($x) { }
391 my proto postfix:<++> ($x) { }
392 my proto postfix:«--» ($x) { }
393 my proto prefix:<++> ($x) { }
394 my proto prefix:«--» ($x) { }
395 my proto infix:<**> ($x,$y) { }
396 my proto prefix:<!> ($x) { }
397 my proto prefix:<+> ($x) { }
398 my proto prefix:<-> ($x) { }
399 my proto prefix:<~~> ($x) { }
400 my proto prefix:<~> ($x) { }
401 my proto prefix:<??> ($x) { }
402 my proto prefix:<?> ($x) { }
403 my proto prefix:<~^> ($x) { }
404 my proto prefix:<+^> ($x) { }
405 my proto prefix:<?^> ($x) { }
406 my proto prefix:<^^> ($x) { }
407 my proto prefix:<^> ($x) { }
408 my proto prefix:<||> ($x) { }
409 my proto prefix:<|> ($x) { }
410 my proto infix:<*> ($x,$y) { }
411 my proto infix:</> ($x,$y) { }
412 my proto infix:<div> ($x,$y) { }
413 my proto infix:<%> ($x,$y) { }
414 my proto infix:<mod> ($x,$y) { }
415 my proto infix:<+&> ($x,$y) { }
416 my proto infix:« << » ($x,$y) { }
417 my proto infix:« >> » ($x,$y) { }
418 my proto infix:<~&> ($x,$y) { }
419 my proto infix:<?&> ($x,$y) { }
420 my proto infix:« ~< » ($x,$y) { }
421 my proto infix:« ~> » ($x,$y) { }
422 my proto infix:« +< » ($x,$y) { }
423 my proto infix:« +> » ($x,$y) { }
424 my proto infix:<+> ($x,$y) { }
425 my proto infix:<-> ($x,$y) { }
426 my proto infix:<+|> ($x,$y) { }
427 my proto infix:<+^> ($x,$y) { }
428 my proto infix:<~|> ($x,$y) { }
429 my proto infix:<~^> ($x,$y) { }
430 my proto infix:<?|> ($x,$y) { }
431 my proto infix:<?^> ($x,$y) { }
432 my proto infix:<x> ($x,$y) { }
433 my proto infix:<xx> ($x,$y) { }
434 my proto infix:<~> ($x,$y) { }
435 my proto infix:<&> ($x,$y) { }
436 my proto infix:<|> ($x,$y) { }
437 my proto infix:<^> ($x,$y) { }
438 my proto infix:« <=> » ($x,$y) { }
439 my proto infix:<..> ($x,$y) { }
440 my proto infix:<^..> ($x,$y) { }
441 my proto infix:<..^> ($x,$y) { }
442 my proto infix:<^..^> ($x,$y) { }
443 my proto infix:<==> ($x,$y) { }
444 my proto infix:<!=> ($x,$y) { }
445 my proto infix:« < » ($x,$y) { }
446 my proto infix:« <= » ($x,$y) { }
447 my proto infix:« > » ($x,$y) { }
448 my proto infix:« >= » ($x,$y) { }
449 my proto infix:<~~> ($x,$y) { }
450 my proto infix:<!~> ($x,$y) { }
451 my proto infix:<=~> ($x,$y) { }
452 my proto infix:<eq> ($x,$y) { }
453 my proto infix:<ne> ($x,$y) { }
454 my proto infix:<lt> ($x,$y) { }
455 my proto infix:<le> ($x,$y) { }
456 my proto infix:<gt> ($x,$y) { }
457 my proto infix:<ge> ($x,$y) { }
458 my proto infix:<=:=> ($x,$y) { }
459 my proto infix:<===> ($x,$y) { }
460 my proto infix:<eqv> ($x,$y) { }
461 my proto infix:<before> ($x,$y) { }
462 my proto infix:<after> ($x,$y) { }
463 my proto infix:<&&> ($x,$y) { }
464 my proto infix:<||> ($x,$y) { }
465 my proto infix:<^^> ($x,$y) { }
466 my proto infix:<//> ($x,$y) { }
467 my proto infix:<min> ($x,$y) { }
468 my proto infix:<max> ($x,$y) { }
469 my proto infix:<?? !!> ($x,$y) { }
470 my proto infix:<!!> ($x,$y) { }
471 my proto infix:<?> ($x,$y) { }
472 my proto infix:<ff> ($x,$y) { }
473 my proto infix:<^ff> ($x,$y) { }
474 my proto infix:<ff^> ($x,$y) { }
475 my proto infix:<^ff^> ($x,$y) { }
476 my proto infix:<fff> ($x,$y) { }
477 my proto infix:<^fff> ($x,$y) { }
478 my proto infix:<fff^> ($x,$y) { }
479 my proto infix:<^fff^> ($x,$y) { }
480 my proto infix:<=> ($x,$y) { }
481 my proto infix:<:=> ($x,$y) { }
482 my proto infix:<::=> ($x,$y) { }
483 my proto infix:<.=> ($x,$y) { }
484 my proto infix:« => » ($x,$y) { }
485 my proto prefix:<so> ($x) { }
486 my proto prefix:<not> ($x) { }
487 my proto infix:<,> ($x,$y) { }
488 my proto infix:<:> ($x,$y) { }
489 my proto infix:<X> ($x,$y) { }
490 my proto infix:<Z> ($x,$y) { }
491 my proto infix:<minmax> ($x,$y) { }
492 my proto infix:<...> ($x,$y) { }
493 my proto infix:<and> ($x,$y) { }
494 my proto infix:<andthen> ($x,$y) { }
495 my proto infix:<or> ($x,$y) { }
496 my proto infix:<orelse> ($x,$y) { }
497 my proto infix:<xor> ($x,$y) { }
498 my proto infix:« <== » ($x,$y) { }
499 my proto infix:« ==> » ($x,$y) { }
500 my proto infix:« <<== » ($x,$y) { }
501 my proto infix:« ==>> » ($x,$y) { }
503 my package PROCESS {
504     my %ENV is export;
507 YOU_ARE_HERE;