projects
/
ulas
/
.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9ad4af4
)
WIP: multi-pass
author
Lukas Krickl
<lukas@krickl.dev>
Tue, 28 Nov 2023 05:24:01 +0000
(06:24 +0100)
committer
Lukas Krickl
<lukas@krickl.dev>
Tue, 28 Nov 2023 05:24:01 +0000
(06:24 +0100)
include/ulas.h
patch
|
blob
|
history
src/ulas.c
patch
|
blob
|
history
diff --git
a/include/ulas.h
b/include/ulas.h
index ed38f4a99d60c685587528e91bf8ce87d9456399..dcf793f6f2809e7babcac17773cb072f6e510f34 100644
(file)
--- a/
include/ulas.h
+++ b/
include/ulas.h
@@
-208,6
+208,10
@@
extern struct ulas ulas;
int ulas_icntr(void);
+// init the next pass
+// by resetting some values
+void ulas_nextpass(void);
+
/**
* Preproc
*/
diff --git
a/src/ulas.c
b/src/ulas.c
index b764ffc3e95e85c4e2896ba352727964cde4c84d..993a00a16cdb316768df6f6dfd2db5d1def41e92 100644
(file)
--- a/
src/ulas.c
+++ b/
src/ulas.c
@@
-41,6
+41,10
@@
void ulas_init(struct ulas_config cfg) {
ulas.syms = ulas_symbuf();
}
+void ulas_nextpass(void) {
+ ulas.scope = 0;
+}
+
void ulas_free(void) {
ulas_strfree(&ulas.tok);
ulas_tokbuffree(&ulas.toks);
@@
-906,6
+910,8
@@
int ulas_preproc(FILE *dst, FILE *src) {
// init
struct ulas_preproc pp = ulas_preprocinit();
+ ulas_nextpass();
+
long prevseek = 0;
// preproc
while ((rc = ulas_preprocnext(&pp, dst, src, buf, ULAS_LINEMAX)) > 0) {