summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/glsl/apps/compile.c36
1 files changed, 13 insertions, 23 deletions
diff --git a/src/glsl/apps/compile.c b/src/glsl/apps/compile.c
index b1165420fb8..4181281ee70 100644
--- a/src/glsl/apps/compile.c
+++ b/src/glsl/apps/compile.c
@@ -50,9 +50,7 @@ main(int argc,
struct sl_pp_purify_options options;
char errmsg[100] = "";
struct sl_pp_context *context;
- struct sl_pp_token_info *tokens;
unsigned int version;
- unsigned int tokens_eaten;
struct sl_pp_token_info *outtokens;
FILE *out;
unsigned int i, j;
@@ -118,7 +116,7 @@ main(int argc,
memset(&options, 0, sizeof(options));
- context = sl_pp_context_create();
+ context = sl_pp_context_create(inbuf, &options);
if (!context) {
fprintf(out, "$CONTEXERROR\n");
@@ -128,24 +126,12 @@ main(int argc,
return 0;
}
- if (sl_pp_tokenise(context, inbuf, &options, &tokens)) {
- fprintf(out, "$ERROR: `%s'\n", sl_pp_context_error_message(context));
-
- printf("Error: %s.\n", sl_pp_context_error_message(context));
- sl_pp_context_destroy(context);
- free(inbuf);
- fclose(out);
- return 0;
- }
-
- free(inbuf);
-
- if (sl_pp_version(context, tokens, &version, &tokens_eaten)) {
+ if (sl_pp_version(context, &version)) {
fprintf(out, "$ERROR: `%s'\n", sl_pp_context_error_message(context));
printf("Error: %s\n", sl_pp_context_error_message(context));
sl_pp_context_destroy(context);
- free(tokens);
+ free(inbuf);
fclose(out);
return 0;
}
@@ -156,22 +142,26 @@ main(int argc,
printf("Error: %s\n", sl_pp_context_error_message(context));
sl_pp_context_destroy(context);
- free(tokens);
+ free(inbuf);
fclose(out);
return 0;
}
- if (sl_pp_process(context, &tokens[tokens_eaten], &outtokens)) {
- fprintf(out, "$ERROR: `%s'\n", sl_pp_context_error_message(context));
+ if (sl_pp_process(context, &outtokens)) {
+ unsigned int errline;
- printf("Error: %s\n", sl_pp_context_error_message(context));
+ sl_pp_context_error_position(context, NULL, &errline);
+
+ fprintf(out, "$ERROR: (%u) `%s'\n", errline, sl_pp_context_error_message(context));
+
+ printf("Error: (%u) %s\n", errline, sl_pp_context_error_message(context));
sl_pp_context_destroy(context);
- free(tokens);
+ free(inbuf);
fclose(out);
return 0;
}
- free(tokens);
+ free(inbuf);
for (i = j = 0; outtokens[i].token != SL_PP_EOF; i++) {
switch (outtokens[i].token) {