summaryrefslogtreecommitdiff
path: root/mesonbuild/mparser.py
AgeCommit message (Collapse)Author
2018-02-21Newlines in single line strings should only be a warning for now.Jussi Pakkanen
2018-02-20Fail if singleline string has multiple linesCaio Marcelo de Oliveira Filho
2018-02-05Add support for hex int literals.Jussi Pakkanen
2018-01-30Report warning/error locations in a format IDEs may already know how to parseJon Turney
Examples: meson.build:2:0: ERROR: Dependency is both required and not-found meson.build:4: WARNING: Keyword argument "link_with" defined multiple times. These are already matched by the default compilation-error-regexp-alist in emacs. Also: Don't start 'red' markup until after the \n before an error Unabsorb full-stop at end of warning with location from mlog.warning() Update warning_location test
2018-01-01Consolidate warning location formatting in mlog.warning()Jon Turney
Also use .format() rather than % Also use build.environment rather than hardcoding 'meson.build'
2017-12-30Add filename and lineno to duplicate kwargs warningJon Turney
Fixes #1626 Also fix 'a an error' typo
2017-11-27Fix escaping of newlines in string literalsJoergen Ibsen
Replace '\n' escape sequence before '\\' to allow a literal backslash to be inserted before the character 'n'. Fixes #2682
2017-06-25Do not permit invalid and/or nodes to be declared. Closes #1886.Jussi Pakkanen
2017-04-21Added missing argument to a few function calls. Closes #1647.Jussi Pakkanen
2017-04-19Print a warning on duplicated keywords.Jussi Pakkanen
2017-04-07Don't crash if a meson.build file is empty (#1570)Aaron Plattner
* Don't crash if a meson.build file is empty Commit 9adef3a8e878 caused an empty meson.build file to generate a traceback: Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/mesonbuild/mparser.py", line 415, in getsym self.current = next(self.stream) StopIteration During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/mesonbuild/mesonmain.py", line 298, in run app.generate() File "/usr/lib/python3.6/site-packages/mesonbuild/mesonmain.py", line 180, in generate intr.run() File "/usr/lib/python3.6/site-packages/mesonbuild/interpreter.py", line 2529, in run super().run() File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py", line 125, in run self.evaluate_codeblock(self.ast, start=1) File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py", line 146, in evaluate_codeblock raise e File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py", line 140, in evaluate_codeblock self.evaluate_statement(cur) File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py", line 151, in evaluate_statement return self.function_call(cur) File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py", line 372, in function_call return self.funcs[func_name](node, self.flatten(posargs), kwargs) File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py", line 47, in wrapped return f(self, node, args, kwargs) File "/usr/lib/python3.6/site-packages/mesonbuild/interpreter.py", line 2237, in func_subdir self.evaluate_codeblock(codeblock) File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py", line 146, in evaluate_codeblock raise e File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py", line 140, in evaluate_codeblock self.evaluate_statement(cur) File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py", line 151, in evaluate_statement return self.function_call(cur) File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py", line 372, in function_call return self.funcs[func_name](node, self.flatten(posargs), kwargs) File "/usr/lib/python3.6/site-packages/mesonbuild/interpreterbase.py", line 47, in wrapped return f(self, node, args, kwargs) File "/usr/lib/python3.6/site-packages/mesonbuild/interpreter.py", line 2233, in func_subdir codeblock = mparser.Parser(code, self.subdir).parse() File "/usr/lib/python3.6/site-packages/mesonbuild/mparser.py", line 410, in __init__ self.getsym() File "/usr/lib/python3.6/site-packages/mesonbuild/mparser.py", line 417, in getsym self.current = Token('eof', '', self.current.line_start, self.current.lineno, self.current.colno + self.current.bytespan[1] - self.current.bytespan[0], (0, 0), None) AttributeError: 'Parser' object has no attribute 'current'
2017-03-25EmptyNode needs a line/column number too. There are times its lineAaron Small
and column are printed out by other parser code. Add a print of the line with the error, and where on the line the error occurred. Add a print of where the block scope started, if the error is due to missing the block scope end token.
2017-03-23fix logic operationsNicolas Schneider
Closes #1479.
2017-01-23Better error message when using = rather than : for defining keywords.Jussi Pakkanen
2017-01-18cleanup: Replace assignment with augmented assignmentMike Sinkovsky
2017-01-18cleanup: Remove redundant parenthesesMike Sinkovsky
2017-01-18cleanup: Redundant character escapeMike Sinkovsky
2017-01-11style: [E1**] IndentationMike Sinkovsky
2017-01-01style: fix E703 violationsIgor Gnatenko
E703: statement ends with a semicolon Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-01-01style: fix E231 violationsIgor Gnatenko
E231: missing whitespace after ',' Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-01-01style: fix E226 violationsIgor Gnatenko
E226: missing whitespace around arithmetic operator Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-01-01style: fix E225 violationsIgor Gnatenko
E225: missing whitespace around operator Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2016-12-04Store subdir information for each node so we can remove files set in other ↵Jussi Pakkanen
subdirectories.
2016-11-20Track comma spans in arguments.Jussi Pakkanen
2016-11-20I can haz source files added to targets.Jussi Pakkanen
2016-09-02Add support to integer modulo operatorEmmanuele Bassi
Having support for the '%' operator makes it easier to implement even/odd version checks, like: enable_debug = get_option('enable-debug') if enable_debug == 'auto' if minor_version % 2 == 0 enable_debug = 'minimum' else enable_debug = 'yes' endif endif which would be impossible without resorting to less obvious long-hand forms like: a - (b * (a / b))
2016-08-01Forbid nested ternary operations.Jussi Pakkanen
2016-08-01Created ternary operator. Closes #538.Jussi Pakkanen
2016-04-01Move MesonException from coredata to mesonlib.Hemmo Nieminen
2016-01-25More comparison operators. Closes #363.Jussi Pakkanen
2016-01-16Renamed meson package to mesonbuild so that we can have a script named meson ↵Jussi Pakkanen
in the same toplevel dir.