aboutsummaryrefslogtreecommitdiff
path: root/build2/parser.cxx
AgeCommit message (Collapse)AuthorFilesLines
2018-09-05Create .buildignore file in testscript root working directoryKaren Arutyunov1-1/+2
2018-09-03Ignore directories with .buildignore file when generating names with ↵Karen Arutyunov1-9/+11
wildcard patterns
2018-08-31Adjust terminology in diagnostic and commentsBoris Kolpackov1-5/+5
2018-08-30Handle missing export directive in export stubBoris Kolpackov1-0/+3
If none were executed, then we assume the requested target is not exported.
2018-08-09Handle few corner cases in concatenated expansionBoris Kolpackov1-23/+42
2018-08-09Add support for name patterns without wildcard charactersBoris Kolpackov1-16/+17
In particular, this allows the "if-exists" specification of prerequisites, for example: for t: $tests exe{$t}: cxx{$t} test{+$t}
2018-08-09Fix issue with concatenating empty typed LHSBoris Kolpackov1-3/+14
2018-08-07Add support for default extension specification, trailing dot escapingBoris Kolpackov1-67/+133
For example: cxx{*}: extension = cxx cxx{foo} # foo.cxx cxx{foo.test} # foo.test (probably what we want...) cxx{foo.test...} # foo.test.cxx (... is this) cxx{foo..} # foo. cxx{foo....} # foo.. cxx{foo.....} # error (must come in escape pair)
2018-07-30Make project variable to be of project_name typeKaren Arutyunov1-8/+19
2018-06-28Add prerequisite variable visibility specification/enforcementBoris Kolpackov1-10/+36
2018-05-19Update copyright yearKaren Arutyunov1-1/+1
2018-05-16Fix uncaught invalid_path exceptionKaren Arutyunov1-11/+19
2018-05-12Fix assertion failure due to parser::attributes_pop() call in pre-parse modeKaren Arutyunov1-1/+2
2018-05-04Enable new directory target-specific variable assignment syntaxBoris Kolpackov1-125/+103
2018-05-03Regularize directory target/scope-specific variable assignment syntaxBoris Kolpackov1-117/+204
2018-04-27Redo run directive diagnostics not to rely on invalid pathsBoris Kolpackov1-28/+13
2018-04-26Implement run buildfile directiveBoris Kolpackov1-53/+170
Now we can do: run echo 'foo = bar' print $foo
2018-02-07Add support for update-for-{test,install} operation aliasesBoris Kolpackov1-2/+2
2018-02-03Get rid of action rule override semanticsBoris Kolpackov1-6/+7
Instead we now have two more or less separate match states for outer and inner parts of an action.
2018-01-02Fix few undefined behavior (ubsan) bugsBoris Kolpackov1-3/+3
2017-12-16Split stream verbosity into components (path, extension)Boris Kolpackov1-7/+0
Use to make sure structured result output always contains absolute target path.
2017-11-28Fix bug in importing multiple targets with single directiveBoris Kolpackov1-0/+7
2017-11-20Add support for dumping prerequisite-specific variablesBoris Kolpackov1-3/+6
2017-11-20Implement dump directiveBoris Kolpackov1-9/+100
It can be used to print (to stderr) a human-readable representation of the current scope or a list of targets. For example: dump # Dump current scope. dump lib{foo} details/exe{bar} # Dump two targets. This is primarily useful for debugging as well as to write build system tests.
2017-11-09Add support for for-loopBoris Kolpackov1-2/+168
The semantics is similar to the C++11 range-based for: list = 1 2 3 for i: $list print $i Note that there is no scoping of any kind for the loop variable ('i' in the above example). See tests/loop/for.test for some examples/ideas. In the future the plan is to also support more general while-loop as well as break and continue.
2017-11-09Initial support for prerequisite-specific variables, use for bin.wholeBoris Kolpackov1-25/+121
2017-10-03Adapt to modularization of libbutlKaren Arutyunov1-1/+1
2017-09-29Allow pattern group to start with inclusionKaren Arutyunov1-30/+130
2017-09-11Add ability to pass scope to buildfile functions, add $install.resolve()Boris Kolpackov1-3/+3
2017-08-06Resolve if-else block ambiguityBoris Kolpackov1-5/+9
2017-07-19Add support for fail, warn, info, text directivesBoris Kolpackov1-1/+40
2017-07-17Allow independent wildcard patterns in a groupKaren Arutyunov1-6/+17
2017-06-12Fix crashing if path_search() failsKaren Arutyunov1-2/+9
2017-06-12Remove few unused lambda capturesBoris Kolpackov1-2/+2
2017-06-08Add full support for pattern exclusionsKaren Arutyunov1-29/+26
2017-05-01Add hxx extension for headersKaren Arutyunov1-12/+12
2017-04-29Add support for stub versions in version moduleBoris Kolpackov1-1/+1
2017-04-29Fix bug in default target logicBoris Kolpackov1-19/+31
2017-04-28Use standard_version for module versioning checksBoris Kolpackov1-15/+12
2017-04-26Fix bug in pair handlingBoris Kolpackov1-1/+1
2017-04-25Rename version header to version-impl to give way to version moduleBoris Kolpackov1-2/+0
2017-03-17Add support for inclusion/exclusion groups in wildcard patternsBoris Kolpackov1-2/+13
For example cxx{* -{foo bar *x}}.
2017-03-17Add tests for multi-pattern crosses seeing that we use themBoris Kolpackov1-1/+1
2017-03-16Add support for passing parameters to (meta-) operationsBoris Kolpackov1-45/+82
2017-03-13Filter hidden files/directories in wildcard patterns matchesBoris Kolpackov1-5/+15
2017-03-13Adapt for path_search() changeKaren Arutyunov1-5/+7
2017-03-13Implement dir/type-aware name group crossingBoris Kolpackov1-124/+114
2017-03-13Minor changeBoris Kolpackov1-3/+2
2017-03-10Implement support for wildcard patternsBoris Kolpackov1-162/+617
2017-03-07Specify config.test.output variableBoris Kolpackov1-0/+1