Pajdeg  0.2.2
Pajdeg
PDScanner.h
Go to the documentation of this file.
1 //
2 // PDScanner.h
3 //
4 // Copyright (c) 2012 - 2015 Karl-Johan Alm (http://github.com/kallewoof)
5 //
6 // Permission is hereby granted, free of charge, to any person obtaining a copy
7 // of this software and associated documentation files (the "Software"), to deal
8 // in the Software without restriction, including without limitation the rights
9 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 // copies of the Software, and to permit persons to whom the Software is
11 // furnished to do so, subject to the following conditions:
12 //
13 // The above copyright notice and this permission notice shall be included in
14 // all copies or substantial portions of the Software.
15 //
16 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 // THE SOFTWARE.
23 //
24 
43 #ifndef INCLUDED_PDScanner_h
44 #define INCLUDED_PDScanner_h
45 
46 #include <sys/types.h>
47 #include "PDDefines.h"
48 
50 
57 
65 
73 extern void PDScannerAttachFixedSizeBuffer(PDScannerRef scanner, char *buf, PDInteger len);
74 
76 
87 
95 extern PDBool PDScannerPopString(PDScannerRef scanner, char **value);
96 
105 extern PDBool PDScannerPopStack(PDScannerRef scanner, pd_stack *value);
106 
115 extern PDBool PDScannerPopUnknown(PDScannerRef scanner, char **value);
116 
125 
132 extern void PDScannerAssertString(PDScannerRef scanner, char *value);
133 
134 //
140 extern void PDScannerAssertStackType(PDScannerRef scanner);
141 
148 extern void PDScannerAssertComplex(PDScannerRef scanner, const char *identifier);
149 
151 
160 extern void PDScannerSkip(PDScannerRef scanner, PDSize bytes);
161 
171 extern PDInteger PDScannerPassSymbolCharacterType(PDScannerRef scanner, PDInteger symbolCharType);
172 
182 
188 extern void PDScannerDetachFilter(PDScannerRef scanner);
189 
206 extern PDInteger PDScannerReadStream(PDScannerRef scanner, PDInteger bytes, char *dest, PDInteger capacity);
207 
219 extern PDInteger PDScannerReadStreamNext(PDScannerRef scanner, char *dest, PDInteger capacity);
220 
222 
230 extern void PDScannerPushContext(PDScannerRef scanner, void *ctxInfo, PDScannerBufFunc ctxBufFunc);
231 
237 extern void PDScannerPopContext(PDScannerRef scanner);
238 
248 extern void PDScannerSetLoopCap(PDInteger cap);
249 
257 extern void PDScannerPopSymbol(PDScannerRef scanner);
258 
266 extern void PDScannerPopSymbolRev(PDScannerRef scanner);
267 
269 //
270 
277 extern void PDScannerAlign(PDScannerRef scanner, PDOffset offset);
278 
285 extern void PDScannerTrim(PDScannerRef scanner, PDOffset bytes);
286 
292 extern void PDScannerReset(PDScannerRef scanner);
293 
294 
296 
302 extern void PDScannerPrintStateTrace(PDScannerRef scanner);
303 
304 #endif
305 
void(* PDScannerBufFunc)(void *info, PDScannerRef scanner, char **buf, PDInteger *size, PDInteger req)
Definition: PDDefines.h:925
PDInteger PDScannerReadStreamNext(PDScannerRef scanner, char *dest, PDInteger capacity)
Definition: PDScanner.c:917
void PDScannerAssertString(PDScannerRef scanner, char *value)
Definition: PDScanner.c:793
long PDInteger
Definition: PDDefines.h:184
PDInteger PDScannerPassSymbolCharacterType(PDScannerRef scanner, PDInteger symbolCharType)
Definition: PDScanner.c:198
long long PDOffset
Definition: PDDefines.h:223
unsigned char PDBool
Definition: PDDefines.h:207
Definition: PDStreamFilter.h:121
PDScannerRef PDScannerCreateWithStateAndPopFunc(PDStateRef state, PDScannerPopFunc popFunc)
Definition: PDScanner.c:106
PDBool PDScannerPopStack(PDScannerRef scanner, pd_stack *value)
Definition: PDScanner.c:757
void PDScannerPrintStateTrace(PDScannerRef scanner)
Definition: PDScanner.c:930
void PDScannerAttachFixedSizeBuffer(PDScannerRef scanner, char *buf, PDInteger len)
Definition: PDScanner.c:120
void PDScannerAssertStackType(PDScannerRef scanner)
Definition: PDScanner.c:808
void(* PDScannerPopFunc)(PDScannerRef scanner)
Definition: PDDefines.h:936
PDScannerRef PDScannerCreateWithState(PDStateRef state)
Definition: PDScanner.c:115
PDInteger PDScannerReadStream(PDScannerRef scanner, PDInteger bytes, char *dest, PDInteger capacity)
Definition: PDScanner.c:862
void PDScannerPopContext(PDScannerRef scanner)
Definition: PDScanner.c:51
void PDScannerAlign(PDScannerRef scanner, PDOffset offset)
Definition: PDScanner.c:129
void PDScannerSkip(PDScannerRef scanner, PDSize bytes)
Definition: PDScanner.c:169
size_t PDSize
Definition: PDDefines.h:213
PDBool PDScannerPopString(PDScannerRef scanner, char **value)
Definition: PDScanner.c:748
void PDScannerDetachFilter(PDScannerRef scanner)
Definition: PDScanner.c:854
void PDScannerPopSymbolRev(PDScannerRef scanner)
Definition: PDScanner.c:320
void PDScannerTrim(PDScannerRef scanner, PDOffset bytes)
Definition: PDScanner.c:146
Definition: pd_internal.h:544
Definition: pd_internal.h:507
Definition: pd_internal.h:753
PDID identifier
identifier (constant string pointer pointer)
Definition: pd_internal.h:380
void PDScannerReset(PDScannerRef scanner)
Definition: PDScanner.c:160
Definitions for the Pajdeg interface.
PDBool PDScannerEndOfStream(PDScannerRef scanner)
Definition: PDScanner.c:788
void PDScannerSetLoopCap(PDInteger cap)
Definition: PDScanner.c:57
void PDScannerPopSymbol(PDScannerRef scanner)
Definition: PDScanner.c:216
PDBool PDScannerAttachFilter(PDScannerRef scanner, PDStreamFilterRef filter)
Definition: PDScanner.c:845
void PDScannerPushContext(PDScannerRef scanner, void *ctxInfo, PDScannerBufFunc ctxBufFunc)
Definition: PDScanner.c:41
PDBool PDScannerPopUnknown(PDScannerRef scanner, char **value)
Definition: PDScanner.c:766
void PDScannerAssertComplex(PDScannerRef scanner, const char *identifier)
Definition: PDScanner.c:825
pd_stack PDScannerGenerateStackFromFixedBuffer(PDStateRef state, char *buf, PDInteger len)
Definition: PDScanner.c:65