summaryrefslogtreecommitdiff
path: root/conf/cf-lex.l
diff options
context:
space:
mode:
authorJan Maria Matejka <mq@ucw.cz>2018-09-11 16:55:41 +0200
committerJan Maria Matejka <mq@ucw.cz>2018-09-11 16:58:09 +0200
commitafa14f1868f2c753efdc81ce8e2c2d44e6bdd80e (patch)
tree68c418466255db01d1513ad341ccccf384981196 /conf/cf-lex.l
parentb1f6c439f55233338a5f7cca5070c70618fe7f1d (diff)
Conf: Show the line:char position where the syntax error happens
Diffstat (limited to 'conf/cf-lex.l')
-rw-r--r--conf/cf-lex.l6
1 files changed, 4 insertions, 2 deletions
diff --git a/conf/cf-lex.l b/conf/cf-lex.l
index 66be3811..6d534c19 100644
--- a/conf/cf-lex.l
+++ b/conf/cf-lex.l
@@ -100,6 +100,7 @@ static struct include_file_stack *ifs_head;
#define YY_INPUT(buf,result,max) result = cf_read_hook(buf, max, ifs->fd);
#define YY_NO_UNPUT
#define YY_FATAL_ERROR(msg) cf_error(msg)
+#define YY_USER_ACTION ifs->chno += yyleng; ifs->toklen = yyleng;
static void cf_include(char *arg, int alen);
static int check_eof(void);
@@ -237,7 +238,7 @@ else: {
{WHITE}+
-\n ifs->lino++;
+\n ifs->lino++; ifs->chno = 0;
# BEGIN(COMMENT);
@@ -247,13 +248,14 @@ else: {
<COMMENT>\n {
ifs->lino++;
+ ifs->chno = 0;
BEGIN(INITIAL);
}
<COMMENT>.
<CCOMM>\*\/ BEGIN(INITIAL);
-<CCOMM>\n ifs->lino++;
+<CCOMM>\n ifs->lino++; ifs->chno = 0;
<CCOMM>\/\* cf_error("Comment nesting not supported");
<CCOMM><<EOF>> cf_error("Unterminated comment");
<CCOMM>.