aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-16 00:01:28 +1000
committerDavid Walter Seikel2012-01-16 00:01:28 +1000
commit28c2424eeb6fb829911af7d812cb7ce7540e8401 (patch)
treebd6c95c0b07c351204111e4ca4c9a851614050e3
parentGet multi file parsing working. (diff)
downloadSledjHamr-28c2424eeb6fb829911af7d812cb7ce7540e8401.zip
SledjHamr-28c2424eeb6fb829911af7d812cb7ce7540e8401.tar.gz
SledjHamr-28c2424eeb6fb829911af7d812cb7ce7540e8401.tar.bz2
SledjHamr-28c2424eeb6fb829911af7d812cb7ce7540e8401.tar.xz
Actually make use of the lexers line and column numbers.
-rw-r--r--LuaSL/src/LuaSL_LSL_tree.c2
-rw-r--r--LuaSL/src/LuaSL_LSL_tree.h2
-rw-r--r--LuaSL/src/LuaSL_lexer.l17
3 files changed, 2 insertions, 19 deletions
diff --git a/LuaSL/src/LuaSL_LSL_tree.c b/LuaSL/src/LuaSL_LSL_tree.c
index 169a699..c5a9405 100644
--- a/LuaSL/src/LuaSL_LSL_tree.c
+++ b/LuaSL/src/LuaSL_LSL_tree.c
@@ -736,8 +736,6 @@ static int nextFile(LuaSL_yyparseParam *param)
736 burnLeaf(param->ast); 736 burnLeaf(param->ast);
737 param->ast = NULL; 737 param->ast = NULL;
738 param->lval = calloc(1, sizeof(LSL_Leaf)); 738 param->lval = calloc(1, sizeof(LSL_Leaf));
739 param->line = 0;
740 param->column = 0;
741 return TRUE; 739 return TRUE;
742 } 740 }
743/* 741/*
diff --git a/LuaSL/src/LuaSL_LSL_tree.h b/LuaSL/src/LuaSL_LSL_tree.h
index b87e7d2..9a71c17 100644
--- a/LuaSL/src/LuaSL_LSL_tree.h
+++ b/LuaSL/src/LuaSL_LSL_tree.h
@@ -276,8 +276,6 @@ typedef struct
276 LSL_Leaf *ast; 276 LSL_Leaf *ast;
277 char *ignorableText; 277 char *ignorableText;
278 LSL_Leaf *lval; 278 LSL_Leaf *lval;
279 int column;
280 int line;
281} LuaSL_yyparseParam; 279} LuaSL_yyparseParam;
282 280
283 281
diff --git a/LuaSL/src/LuaSL_lexer.l b/LuaSL/src/LuaSL_lexer.l
index 15cfae2..876d30a 100644
--- a/LuaSL/src/LuaSL_lexer.l
+++ b/LuaSL/src/LuaSL_lexer.l
@@ -112,22 +112,9 @@ IDENTIFIER [[:alpha:]](_|[[:alpha:]]|[[:digit:]])*
112 112
113int common(YYSTYPE *lval, char *text, LuaSL_yyparseParam *param, boolean checkIgnorable, int type) 113int common(YYSTYPE *lval, char *text, LuaSL_yyparseParam *param, boolean checkIgnorable, int type)
114{ 114{
115 int i;
116
117 for (i = 0; text[i] != '\0'; i++)
118 if (text[i] == '\n')
119 {
120 param->column = 0;
121 param->line++;
122 }
123 else if (text[i] == '\t')
124 param->column += 8 - (param->column % 8);
125 else
126 param->column++;
127
128 lval->token = tokens[type - lowestToken]; 115 lval->token = tokens[type - lowestToken];
129 lval->line = param->line; 116 lval->line = yyget_lineno(param->scanner);
130 lval->column = param->column; 117 lval->column = yyget_column(param->scanner);
131 118
132 if (checkIgnorable) 119 if (checkIgnorable)
133 { 120 {