aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Parborg <darkdefende@gmail.com>2011-06-20 13:51:34 +0200
committerSebastian Parborg <darkdefende@gmail.com>2011-06-20 13:51:34 +0200
commit28c893106a821a4f0c3191c783a74c5f1185cdb5 (patch)
treedf4f7f43b17947ccd321c2b27aa291ee692915e1
parentParsing of variables seems to work now. (diff)
downloadebuildgen-28c893106a821a4f0c3191c783a74c5f1185cdb5.tar.gz
ebuildgen-28c893106a821a4f0c3191c783a74c5f1185cdb5.tar.bz2
ebuildgen-28c893106a821a4f0c3191c783a74c5f1185cdb5.zip
fixed some more variable stuff
-rw-r--r--filetypes/makefiles.py31
1 files changed, 16 insertions, 15 deletions
diff --git a/filetypes/makefiles.py b/filetypes/makefiles.py
index 41cb584..9ea8d1a 100644
--- a/filetypes/makefiles.py
+++ b/filetypes/makefiles.py
@@ -54,8 +54,8 @@ def scanmakefile(makefile):
r"[^\$\(\{\)\}]"
def t_begin_com(t):
- r"\#"
- t.lexer.push_state("com")
+ r"[ \t]*\#"
+ t.lexer.begin("com")
def t_com_other(t):
r"[^\\\n]+"
@@ -72,7 +72,7 @@ def scanmakefile(makefile):
def t_com_END(t):
r"\n"
- t.lexer.pop_state()
+ t.lexer.begin("INITIAL")
t.lexer.lineno += 1
return t
@@ -131,12 +131,12 @@ def scanmakefile(makefile):
return t
def t_ENDTAB(t):
- r"\n\t"
+ r"[ \t]*\n\t"
t.lexer.lineno += 1
return t
def t_var_TEXT(t):
- r"[^ \n\t,\$\\]+"
+ r"[^ #\n\t,\$\\]+"
return t
def t_TEXT(t):
@@ -144,7 +144,7 @@ def scanmakefile(makefile):
return t
def t_END(t):
- r"\n+"
+ r"[ \t]*\n+"
t.lexer.lineno += t.value.count('\n')
t.lexer.begin('INITIAL')
return t
@@ -245,6 +245,7 @@ def scanmakefile(makefile):
def p_textstr(p):
"""
textstr : textstr LIT
+ | textstr TEXT
| TEXT
| LIT
"""
@@ -263,13 +264,6 @@ def scanmakefile(makefile):
else:
p[0] = [p[1][0] + p[2]]
- def p_end(p):
- """
- end : end END
- | end spacestr END
- | END
- """
-
def p_space(p):
"""
spacestr : spacestr SPACE
@@ -280,9 +274,16 @@ def scanmakefile(makefile):
else:
p[0] = p[1]
+ def p_end(p):
+ """
+ end : end END
+ | end spacestr END
+ | END
+ """
+
def p_error(p):
- print("syntax error at '%s'" % p.type,p.lineno)
+ print("syntax error at '%s'" % p.type,p.lexpos)
pass
yacc.yacc()
@@ -302,7 +303,7 @@ def scanmakefile(makefile):
#deferred
-file="Makefile"
+file="Makefile2"
with open(file, encoding="utf-8", errors="replace") as inputfile:
scanmakefile(inputfile.read())