Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 126 lines (125 sloc) 3.019 kB
f5e912f @Ramarren Plurarize combinators in system/package name
authored
1 (defpackage :parser-combinators
47df9ad @Ramarren Move BPM dependency to test suite.
authored
2 (:use :cl :iterate :alexandria)
3b64af2 @Ramarren Add function for clearing parser cache.
authored
3 (:export #:drop-parser-cache
4 #:result
ae52aad @Ramarren Untabify and whitespace cleanup.
authored
5 #:zero
6 #:item
7 #:sat
8 #:choice
9 #:choice1
10 #:choices
11 #:choices1
12 #:mdo
13 #:parse-string
14 #:char?
15 #:digit?
16 #:lower?
17 #:upper?
18 #:letter?
19 #:alphanum?
20 #:word?
bdf0843 @Ramarren Make whitespace? and word? backtracking, export new symbols.
authored
21 #:word*
22 #:whitespace?
23 #:whitespace*
ae52aad @Ramarren Untabify and whitespace cleanup.
authored
24 #:string?
25 #:many?
26 #:many1?
27 #:int?
28 #:sepby1?
29 #:bracket?
30 #:sepby?
31 #:chainl1?
32 #:nat?
33 #:chainr1?
34 #:chainl?
35 #:chainr?
36 #:many*
37 #:many1*
38 #:sepby1*
39 #:sepby*
40 #:chainl1*
41 #:nat*
42 #:int*
43 #:chainr1*
44 #:chainl*
45 #:chainr*
46 #:memoize?
47 #:curtail?
48 #:force?
49 #:times?
50 #:atleast?
51 #:atmost?
52 #:between?
53 #:current-result
54 #:next-result
55 #:gather-results
56 #:tree-of
57 #:suffix-of
58 #:atmost*
59 #:between*
084e587 @Ramarren Remove unnecesary laziness layer. Replace with `delayed?` macro to us…
authored
60 #:atleast*
61 #:make-context
fa7a216 @Ramarren Add parser using regular expressions using cl-ppcre.
authored
62 #:copy-context
084e587 @Ramarren Remove unnecesary laziness layer. Replace with `delayed?` macro to us…
authored
63 #:delayed?
dfd88fc @Ramarren Change parse result representation.
authored
64 #:<-
1149693 @Ramarren Add parser caching.
authored
65 #:make-parse-result
66 #:cache?
67 #:cached?
68 #:def-cached-parser
69 #:cached-arguments?
e1cb150 @Ramarren Reimplement chainl1?/chainr1? using between?, to avoid consuming stac…
authored
70 #:def-cached-arg-parser
7510a37 @Ramarren Export new symbols.
authored
71 #:sepby1-cons?
72 #:find-after-collect?
73 #:find-after-collect*
3b37be8 @Ramarren Implement expression parser.
authored
74 #:breadth?
eb637ea @Ramarren Add nested? parser, for nested sequences.
authored
75 #:nested?
989108c @Ramarren Add macro to name generated parser, so it can call itself, and rewrit…
authored
76 #:named?
3bfbf50 @Ramarren Add non-backtracking version of expression parser.
authored
77 #:expression?
14bae91 @Ramarren Add context-interval
authored
78 #:expression*
f7fed2c @Ramarren Add test for context capture, export symbol, fix a mistake
authored
79 #:context-interval
e887f71 @Ramarren Add method to check for end context.
authored
80 #:context?
77c2c4a @Ramarren Add context-equal method.
authored
81 #:end-context-p
a271d77 @Ramarren Simplify contexts.
authored
82 #:context-equal
83 #:*default-context-cache*
3afd3c3 @Ramarren Export find? family parsers.
authored
84 #:context-equal
85 #:find-after?
86 #:find-after*
87 #:find*
5f9f20e @Ramarren Add parse-string* utility function.
authored
88 #:find?
7679c36 @Ramarren Add HOOK?
authored
89 #:hook?
ae14062 @Ramarren Add CHOOK?
authored
90 #:chook?
ab99892 @Ramarren Add OPT?/*.
authored
91 #:opt?
92 #:opt*
d48827d @Ramarren Export new parsers.
authored
93 #:parse-string*
94 #:find-before?
95 #:find-before*
d0f2c84 @Ramarren Return context front from top level functions.
authored
96 #:end?
97 #:context-of
15beff6 @Ramarren Export tag? parser.
authored
98 #:tags-of
7758bf8 @Ramarren Export cut-tag? symbol.
authored
99 #:tag?
4bb88ff @Ramarren Add position-of and document context-front.
authored
100 #:cut-tag?
f84cb6a @Ramarren Add more parsers, trying to optimize certain common cases. Also add s…
authored
101 #:position-of
102 #:find-before-token*
103 #:gather-before-token*
d818189 @Ramarren Add named sequence macro.
authored
104 #:seq-list?
fb400c8 @Ramarren Add greedy version of sequence parser.
authored
105 #:named-seq?
106 #:seq-list*
cb103f4 @Ramarren Generalize gather-before-token* parser.
authored
107 #:named-seq*
3e09648 @Ramarren Add string?-using-context.
authored
108 #:gather-if-not*)
bd039c5 @Ramarren Add end-context version for gather-if-not*-using-context
authored
109 (:export #:string?-using-context
1120d31 @Ramarren Add validate?
authored
110 #:gather-if-not*-using-context
df86968 @Ramarren Change parse-string and parse-string* to parse-sequence and parse-seq…
authored
111 #:validate?
112 #:parse-sequence
a386665 @Ramarren Export quoted?
authored
113 #:parse-sequence*
3f5e33b @Ramarren Add pure-word?/* which accepts only alphabetic characters.
authored
114 #:quoted?
115 #:pure-word?
c12c799 @Ramarren Add except?.
authored
116 #:pure-word*
117 #:except?)
fa7a216 @Ramarren Add parser using regular expressions using cl-ppcre.
authored
118 ;; some function for creating -using-context parsers from other packages
119 (:export #:storage-of
120 #:common-of
121 #:vector-context
122 #:end-context
123 #:define-oneshot-result
174c0cb @Ramarren Update package, use make-context-at-position, add between* infinite l…
authored
124 #:make-context-at-position
fa7a216 @Ramarren Add parser using regular expressions using cl-ppcre.
authored
125 #:parser-possibility))
Something went wrong with that request. Please try again.