pymake/parser.py
63531e755f52
created 2009-02-09 16:45 -0500
pushed 2009-02-09 21:45 +0000
Benjamin Smedberg 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
created 2009-02-09 12:14 -0500
pushed 2009-02-09 21:45 +0000
Benjamin Smedberg 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.
59302968cf3b
created 2009-02-06 15:34 -0500
pushed 2009-02-06 20:34 +0000
Benjamin Smedberg Benjamin Smedberg - Detect conditionals which never terminate.
10277ab28e31
created 2009-02-06 15:28 -0500
pushed 2009-02-06 20:29 +0000
Benjamin Smedberg 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!
8c332a8bae92
created 2009-02-06 13:51 -0500
pushed 2009-02-06 20:29 +0000
Benjamin Smedberg Benjamin Smedberg - Two-part change. I should have done these separately but forgot to commit after the first change:
f1e67b0fcf5d
created 2009-02-06 09:15 -0500
pushed 2009-02-06 14:15 +0000
Benjamin Smedberg 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
created 2009-02-05 22:38 -0500
pushed 2009-02-06 03:38 +0000
Benjamin Smedberg Benjamin Smedberg - Add support for commands specified on the same line as the rule.
2b81cff1aa0a
created 2009-02-05 22:25 -0500
pushed 2009-02-06 03:38 +0000
Benjamin Smedberg 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
created 2009-02-05 20:06 -0500
pushed 2009-02-06 01:06 +0000
Benjamin Smedberg Benjamin Smedberg - Parse static pattern rules. The data part isn't hooked up yet.
65ec57ff7d90
created 2009-02-05 19:14 -0500
pushed 2009-02-06 00:14 +0000
Benjamin Smedberg Benjamin Smedberg - No newline at end of file...
87a1810a9a52
created 2009-02-05 17:20 -0500
pushed 2009-02-05 22:24 +0000
Benjamin Smedberg Benjamin Smedberg - Invert commandline variables so that they mean the right thing.
e48b0412f5ed
created 2009-02-05 16:03 -0500
pushed 2009-02-05 21:24 +0000
Benjamin Smedberg Benjamin Smedberg - More function implementations.
084bcc01b996
created 2009-02-05 15:06 -0500
pushed 2009-02-05 20:06 +0000
Benjamin Smedberg Benjamin Smedberg - Move the functions into their own file... they're only going to get bigger.
f945469861a5
created 2009-02-05 14:15 -0500
pushed 2009-02-05 20:06 +0000
Benjamin Smedberg Benjamin Smedberg - Fixes the simple testsuite/make.py problems:
ce053a18a424
created 2009-02-05 13:56 -0500
pushed 2009-02-05 20:06 +0000
Benjamin Smedberg Benjamin Smedberg - Whoops!
15ca82d0ba63
created 2009-02-05 13:55 -0500
pushed 2009-02-05 20:06 +0000
Benjamin Smedberg Benjamin Smedberg - Woohoo. Some of the real-world testsuite passes. Of course there are many errors also.
d555fca8adab
created 2009-02-05 11:33 -0500
pushed 2009-02-05 16:33 +0000
Benjamin Smedberg 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.
a77dcdc9a3fe
created 2009-02-04 15:17 -0500
pushed 2009-02-04 20:17 +0000
Benjamin Smedberg Benjamin Smedberg - Start parsing from the command line. Of course we don't actually *execute* anything yet, we are just parsing.
5f4a31d7d5e7
created 2009-02-04 12:06 -0500
pushed 2009-02-04 17:10 +0000
Benjamin Smedberg Benjamin Smedberg - Tests are wonderful. So is working code. Now we have both!
6827f875c907
created 2009-02-04 11:18 -0500
pushed 2009-02-04 17:10 +0000
Benjamin Smedberg Benjamin Smedberg - Whoops, target-specific wasn't quite right.
69c931017474
created 2009-02-04 11:16 -0500
pushed 2009-02-04 17:10 +0000
Benjamin Smedberg Benjamin Smedberg - Refactor setvariable a little bit to avoid constant re-parsing when setting multiple target-specific or pattern-specific variables.
396b616dffd0
created 2009-02-04 10:52 -0500
pushed 2009-02-04 15:53 +0000
Benjamin Smedberg 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.
7e2b7a360cbf
created 2009-02-03 16:21 -0500
pushed 2009-02-03 21:21 +0000
Benjamin Smedberg 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
created 2009-02-02 21:47 -0500
pushed 2009-02-03 02:47 +0000
Benjamin Smedberg Benjamin Smedberg - Simple variable assignment is important.
1a360cf3a18d
created 2009-02-02 21:15 -0500
pushed 2009-02-03 02:18 +0000
Benjamin Smedberg Benjamin Smedberg - Variable references work! At least the most-basic ones.
619a54201e32
created 2009-02-02 16:07 -0500
pushed 2009-02-02 21:07 +0000
Benjamin Smedberg Benjamin Smedberg - The makefile syntax parser needs to take a starting position as well.
1159b78fb8a6
created 2009-02-02 15:34 -0500
pushed 2009-02-02 21:07 +0000
Benjamin Smedberg 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.
33eb1c16caea
created 2009-01-31 13:39 -0500
pushed 2009-01-31 18:39 +0000
Benjamin Smedberg Benjamin Smedberg - Beginnings of a parser, with unit tests.
less more (0) tip