Skip to content

Commit 3cf54a4

Browse files
committed
separated span callbacks
1 parent 60f0cb8 commit 3cf54a4

File tree

3 files changed

+59
-66
lines changed

3 files changed

+59
-66
lines changed

binding.gyp

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"target_name": "vcd",
55
"sources": [
66
"vcd_parser.c",
7+
"vcd_spans.c",
78
"vcd.c"
89
]
910
}

vcd.c

+1-66
Original file line numberDiff line numberDiff line change
@@ -126,16 +126,6 @@ METHOD(getReason) {
126126
return res;
127127
}
128128

129-
METHOD(getErrorPos) {
130-
ASSERT_ARGC(1)
131-
struct vcd_parser_s *state;
132-
ASSERT_EXTERNAL(args[0], state)
133-
134-
napi_value res;
135-
ASSERT(res, napi_create_int32(env, state->error_pos, &res))
136-
return res;
137-
}
138-
139129
METHOD(getCommand) {
140130
ASSERT_ARGC(1)
141131
struct vcd_parser_s *state;
@@ -182,7 +172,7 @@ METHOD(setTrigger) {
182172
ASSERT_EXTERNAL(args[0], state)
183173
ASSERT_STRING(args[1], trigger)
184174

185-
state->trigger = *trigger;
175+
state->trigger = trigger;
186176

187177
napi_value res;
188178
ASSERT(res, napi_create_int32(env, state->error, &res))
@@ -194,7 +184,6 @@ napi_value Init(napi_env env, napi_value exports) {
194184
DECLARE_NAPI_METHOD("execute", execute)
195185
DECLARE_NAPI_METHOD("getError", getError)
196186
DECLARE_NAPI_METHOD("getReason", getReason)
197-
DECLARE_NAPI_METHOD("getErrorPos", getErrorPos)
198187
DECLARE_NAPI_METHOD("getCommand", getCommand)
199188
DECLARE_NAPI_METHOD("getTime", getTime)
200189
DECLARE_NAPI_METHOD("getStart", getStart)
@@ -203,58 +192,4 @@ napi_value Init(napi_env env, napi_value exports) {
203192
return exports;
204193
}
205194

206-
int commandSpan(vcd_parser_t* s, const unsigned char* p, const unsigned char* endp) {
207-
// printf("(%d:%d:%d:%d)(%.*s)\n", s->time, s->command, s->type, s->size, (int)(endp - p), p);
208-
return 0;
209-
};
210-
211-
int scopeIdentifierSpan(vcd_parser_t* s, const unsigned char* p, const unsigned char* endp) {
212-
// printf("{%.*s}", (int)(endp - p - 1), p);
213-
return 0;
214-
};
215-
216-
int varSizeSpan(vcd_parser_t* s, const unsigned char* p, const unsigned char* endp) {
217-
s->size = strtol(p, &endp, 10);
218-
return 0;
219-
};
220-
221-
bool stringEq (
222-
const unsigned char* gold,
223-
const unsigned char* p,
224-
const unsigned char* endp
225-
) {
226-
for (size_t i = 0; gold[i] != 0; i++) {
227-
if (gold[i] != p[i]) {
228-
return false;
229-
}
230-
}
231-
return true;
232-
}
233-
234-
int idSpan(vcd_parser_t* s, const unsigned char* p, const unsigned char* endp) {
235-
// printf("{%.*s}", (int)(endp - p - 1), p);
236-
if (stringEq("D1", p, endp)) {
237-
if (s->time < 10) {
238-
return 0;
239-
}
240-
if (s->start == 0) {
241-
s->start = s->time;
242-
} else {
243-
s->stop = s->time;
244-
}
245-
}
246-
return 0;
247-
};
248-
249-
int vectorSpan(vcd_parser_t* s, const unsigned char* p, const unsigned char* endp) {
250-
// printf("{%.*s}", (int)(endp - p - 1), p);
251-
return 0;
252-
};
253-
254-
int timeSpan(vcd_parser_t* s, const unsigned char* p, const unsigned char* endp) {
255-
s->time = strtol(p, &endp, 10);
256-
// printf("%d\n", s->time);
257-
return 0;
258-
};
259-
260195
NAPI_MODULE(NODE_GYP_MODULE_NAME, Init)

vcd_spans.c

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#include <stdio.h>
2+
#include <stdlib.h>
3+
#include "vcd_parser.h"
4+
5+
int stringEq (
6+
const unsigned char* gold,
7+
const unsigned char* p,
8+
const unsigned char* endp
9+
) {
10+
for (size_t i = 0; gold[i] != 0; i++) {
11+
if (gold[i] != p[i]) {
12+
return 0;
13+
}
14+
}
15+
return 1;
16+
}
17+
18+
int commandSpan(vcd_parser_t* s, const unsigned char* p, const unsigned char* endp) {
19+
// printf("(%d:%d:%d:%d)(%.*s)\n", s->time, s->command, s->type, s->size, (int)(endp - p), p);
20+
return 0;
21+
};
22+
23+
int scopeIdentifierSpan(vcd_parser_t* s, const unsigned char* p, const unsigned char* endp) {
24+
// printf("{%.*s}", (int)(endp - p - 1), p);
25+
return 0;
26+
};
27+
28+
int varSizeSpan(vcd_parser_t* s, const unsigned char* p, const unsigned char* endp) {
29+
s->size = strtol((const char *)p, (char **)&endp, 10);
30+
return 0;
31+
};
32+
33+
int idSpan(vcd_parser_t* s, const unsigned char* p, const unsigned char* endp) {
34+
// printf("{%.*s}", (int)(endp - p - 1), p);
35+
if (stringEq((const unsigned char *)("D1"), p, endp)) {
36+
if (s->time < 10) {
37+
return 0;
38+
}
39+
if (s->start == 0) {
40+
s->start = s->time;
41+
} else {
42+
s->stop = s->time;
43+
}
44+
}
45+
return 0;
46+
};
47+
48+
int vectorSpan(vcd_parser_t* s, const unsigned char* p, const unsigned char* endp) {
49+
// printf("{%.*s}", (int)(endp - p - 1), p);
50+
return 0;
51+
};
52+
53+
int timeSpan(vcd_parser_t* s, const unsigned char* p, const unsigned char* endp) {
54+
s->time = strtol((const char *)p, (char **)&endp, 10);
55+
// printf("%d\n", s->time);
56+
return 0;
57+
};

0 commit comments

Comments
 (0)