63531e755f52
2009-02-09 16:45 -0500
Benjamin Smedberg - Significant reworking of how variables are parsed and stored. They are now stored as strings, instead of Expansion objects. Recursively-expanded variables are parsed at the time they are expanded. This coupling between the data model and the parser is ridiculous, but compatible.
cbeb0eba9087
2009-02-09 12:14 -0500
Benjamin Smedberg - This is preparatory work for separating parsemakesyntax from the comment and line-continuation rules. The data iterators here are not actually being used yet anywhere except the tests.
5f3bbfab4910
2009-02-09 09:21 -0500
Benjamin Smedberg - More expansion tests... it turns out that reworking expansion is in fact really hard.
348f682e3943
2009-02-08 00:54 -0500
Benjamin Smedberg - This test means that everything I've been doing to parse variables is wrong (don't even try to parse recursively-expanded variables until they are used). Refactoring needed.
e3b7241989d1
2009-02-07 21:19 -0500
Benjamin Smedberg - Fix VPATH correctly (before we remake) when actually remaking things.
6ea25c18adfb
2009-02-07 17:12 -0500
Benjamin Smedberg - Implement VPATH... this needs additional testing, especially for the remake case.
b4b8dc6c503b
2009-02-07 14:20 -0500
Benjamin Smedberg - Implement the rules for matching implicit rules against files with directories.
288bbc753c9f
2009-02-06 17:04 -0500
Benjamin Smedberg - And of course, I forgot to add the test for implicit chaining.
4aef5fbe7d4a
2009-02-06 16:54 -0500
Benjamin Smedberg - Simple chaining works. Not sure how much I care about really complex chaining scenarios with multiple targets, although (knock on wood) those should work too.
33ec07baae05
2009-02-06 16:35 -0500
Benjamin Smedberg - I think I may have implemented implicit rules. I'm pretty sure that a single level works, but I'm not sure about chaining... more tests to be written.
59302968cf3b
2009-02-06 15:34 -0500
Benjamin Smedberg - Detect conditionals which never terminate.
3ce56bc0b679
2009-02-06 15:33 -0500
Benjamin Smedberg - Fix the parser tests.
0c7929287af4
2009-02-06 15:29 -0500
Benjamin Smedberg - Forgot the all-important tests for the define directive.
10277ab28e31
2009-02-06 15:28 -0500
Benjamin Smedberg - Implement the 'define' directive. The edge cases and parsing rules for define are, once again, ridiculous. I never thought I would yearn for heredoc syntax!
3e2e23603c36
2009-02-06 15:25 -0500
Benjamin Smedberg - More Error instead of Exception
133385f0f6ac
2009-02-06 15:25 -0500
Benjamin Smedberg - Implement $(error) to make tests more fruitful.
8c332a8bae92
2009-02-06 13:51 -0500
Benjamin Smedberg - Two-part change. I should have done these separately but forgot to commit after the first change:
b046136650d1
2009-02-06 10:21 -0500
Benjamin Smedberg - Whoops, the differences between JS and Python sometimes catch up with me. Python is raise+Exception+try+except, JS is throw+error+try+catch
b083ab48a8eb
2009-02-06 10:16 -0500
Benjamin Smedberg - * Implement the $(shell) command so that dependency test cases can be set up effectively.
f1e67b0fcf5d
2009-02-06 09:15 -0500
Benjamin Smedberg - If you ignore implicit rules and order-only prerequisites, I think this might actually work! I'm not especially confident in the dependency calculations, though: I need to write some tests for that, which probably involves implementing $(shell)
23711d02d7b0
2009-02-05 22:38 -0500
Benjamin Smedberg - Add support for commands specified on the same line as the rule.
2b81cff1aa0a
2009-02-05 22:25 -0500
Benjamin Smedberg - Move comment and line-continuation parsing into the syntax parser. This is needed for the next patch which implements commands on the same line as a rule (delimited with ;)... in that case, the line continuations are command-style continuations, and not makefile syntax continuations.
996c5791e40c
2009-02-05 20:06 -0500
Benjamin Smedberg - Parse static pattern rules. The data part isn't hooked up yet.
65ec57ff7d90
2009-02-05 19:14 -0500
Benjamin Smedberg - No newline at end of file...
87a1810a9a52
2009-02-05 17:20 -0500
Benjamin Smedberg - Invert commandline variables so that they mean the right thing.
b8be4f91e866
2009-02-05 17:01 -0500
Benjamin Smedberg - Small mis-indents mean big pain for patsubst!
d66eaa34960d
2009-02-05 16:28 -0500
Benjamin Smedberg - Or... actually fix target-specific variables.
650679bb3c0e
2009-02-05 16:24 -0500
Benjamin Smedberg - Pattern-specific variable assignments, and test fixup from the last commit.
e48b0412f5ed
2009-02-05 16:03 -0500
Benjamin Smedberg - More function implementations.
084bcc01b996
2009-02-05 15:06 -0500
Benjamin Smedberg - Move the functions into their own file... they're only going to get bigger.
f945469861a5
2009-02-05 14:15 -0500
Benjamin Smedberg - Fixes the simple testsuite/make.py problems:
ce053a18a424
2009-02-05 13:56 -0500
Benjamin Smedberg - Whoops!
15ca82d0ba63
2009-02-05 13:55 -0500
Benjamin Smedberg - Woohoo. Some of the real-world testsuite passes. Of course there are many errors also.
1730047d6471
2009-02-05 11:33 -0500
Benjamin Smedberg - Merge test-failure fix.
d555fca8adab
2009-02-05 11:33 -0500
Benjamin Smedberg - Whoops, introduced a test failure... this __getitem__ method often takes slices, which don't compare usefully against the string length. Use exceptions instead.
039f6139ada0
2009-02-05 11:17 -0500
Benjamin Smedberg - Beginnings of vpath framework and actual need-to-rebuild calculations.
64ff72956fd7
2009-02-05 10:06 -0500
Benjamin Smedberg - We can resolve very basic dependencies now. No implicit or static-pattern rules yet, since the rules for those are really weird.
a77dcdc9a3fe
2009-02-04 15:17 -0500
Benjamin Smedberg - Start parsing from the command line. Of course we don't actually *execute* anything yet, we are just parsing.
325956fb47c1
2009-02-04 13:32 -0500
Benjamin Smedberg - Basic pattern rules
5f4a31d7d5e7
2009-02-04 12:06 -0500
Benjamin Smedberg - Tests are wonderful. So is working code. Now we have both!
6827f875c907
2009-02-04 11:18 -0500
Benjamin Smedberg - Whoops, target-specific wasn't quite right.
69c931017474
2009-02-04 11:16 -0500
Benjamin Smedberg - Refactor setvariable a little bit to avoid constant re-parsing when setting multiple target-specific or pattern-specific variables.
3fa493fd0ee7
2009-02-04 11:00 -0500
Benjamin Smedberg - Default targets are not affected by target-specific variables.
396b616dffd0
2009-02-04 10:52 -0500
Benjamin Smedberg - This might be enough for simple rules, but I haven't tried it or written any tests yet. Need to checkpoint before hacking pattern-specific variables, which are undocumented, kinda cool, and tricky.
29ab3d2793d9
2009-02-04 09:45 -0500
Benjamin Smedberg - Add .hgignore
f6b7e3f30926
2009-02-04 09:44 -0500
Benjamin Smedberg - Add MIT license. Since this code was created under employment, copyright is assigned to the Mozilla Foundation.
7e2b7a360cbf
2009-02-03 16:21 -0500
Benjamin Smedberg - Pattern parsing is rocket science. This magic is unified in the data.Pattern class, although I don't know exactly how this is going to fit together with rules and targets yet.
d5e06631bdfe
2009-02-02 21:47 -0500
Benjamin Smedberg - Simple variable assignment is important.
1a360cf3a18d
2009-02-02 21:15 -0500
Benjamin Smedberg - Variable references work! At least the most-basic ones.
619a54201e32
2009-02-02 16:07 -0500
Benjamin Smedberg - The makefile syntax parser needs to take a starting position as well.
2aef4be1a2b2
2009-02-02 15:35 -0500
Benjamin Smedberg - Assignment just looks for specific tokens... all the rest is just assumed to be correct... haha
1159b78fb8a6
2009-02-02 15:34 -0500
Benjamin Smedberg - This appears, at first glance, to actually parse functions and variable substitutions correctly. That's really awesome, even more so because I have unit tests.
f51509ce7b08
2009-02-02 13:39 -0500
Benjamin Smedberg - The data model is fleshing out a bit, in service of the parser.
3ed40cedea5e
2009-02-02 13:13 -0500
Benjamin Smedberg - Tests. patsubst is weird when the first argument doesn't have a % but the second does.
0faf2dce5c7f
2009-02-02 11:34 -0500
Benjamin Smedberg - More testcases. Subsitution references can't be a simple transformation to a patsubst function, because the presence or absence of the % character is determined dynamically.
acef5e91d7e4
2009-01-31 14:34 -0500
Benjamin Smedberg - Variable substitutions don't return errors, even when the appear to be not well-formed. Instead, it uses the full variable name with a colon.
33eb1c16caea
2009-01-31 13:39 -0500
Benjamin Smedberg - Beginnings of a parser, with unit tests.
c647fb430b20
2009-01-30 15:28 -0500
Benjamin Smedberg - Just think, I wasting brain space with makefile line continuations!
39a719db34cc
2009-01-30 11:51 -0500
Benjamin Smedberg - More tests
2426e9915a8f
2009-01-27 11:33 -0500
Benjamin Smedberg - Command continuations are tricky! They don't have to have a tab in the subsequent line. Also remove testing override of SHELL
(0) -60 +60 +100 tip