summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser/parser.rb
Commit message (Collapse)AuthorAgeFilesLines
* Renaming parsedfile to loadedfile, which makes much more sense and reduces ↵luke2006-09-031-4/+4
| | | | | | some naming conflicts git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1544 980ebf18-57e1-0310-9a29-db15c13687c0
* Tracking down some weird bugs that managed to creep into the parser. I ↵luke2006-08-281-223/+224
| | | | | | expect that the main ones were a result of the If support. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1494 980ebf18-57e1-0310-9a29-db15c13687c0
* Committing definition inheritance. I have not yet written tests yet, but my ↵luke2006-08-221-199/+214
| | | | | | last commit pretty seriously broke some things without me realizing it, so I wanted to get this in. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1484 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding "if/else" constructs. No operators, no elsif, but it is a good ↵luke2006-08-221-754/+578
| | | | | | start, anyway. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1483 980ebf18-57e1-0310-9a29-db15c13687c0
* Committing changes that require dollar signs in prototypesluke2006-08-141-195/+248
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1468 980ebf18-57e1-0310-9a29-db15c13687c0
* Apparently objects were legal rvalues, which does not make any sense. Fixed ↵luke2006-07-211-301/+292
| | | | | | this, and added a test verify. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1418 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding support for default nodes as requested in #136.luke2006-06-131-206/+226
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1261 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing #166. Function names are no longer reserved words.luke2006-06-081-413/+406
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1245 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing #155. It is now valid to have arrays with no values, although you ↵luke2006-06-081-171/+181
| | | | | | will still likely get erratic behaviour elsewhere in the system, depending on what you do with this. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1240 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing #162. Node names must now be comma-separated.luke2006-05-311-188/+196
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1228 980ebf18-57e1-0310-9a29-db15c13687c0
* Allowing empty filesluke2006-05-181-443/+448
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1207 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing #146. I think I mostly just fixed the error message; I do not think ↵luke2006-05-181-28/+27
| | | | | | there was another bug there. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1206 980ebf18-57e1-0310-9a29-db15c13687c0
* I appear to have object collection working, incredibly. This commit does ↵luke2006-05-131-430/+447
| | | | | | the collection from the database up to adding the objects to the current scope, which is what sends it to the client. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1190 980ebf18-57e1-0310-9a29-db15c13687c0
* The "collectable" syntax now works end-to-end -- the parser correctly ↵luke2006-05-131-383/+416
| | | | | | recognizes it, the AST objects retain the settings, the scopes do the right conversion, the interpreter stores them all in the database, and then it strips the collectable objects out before sending the object list to the client git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1189 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing a stupid bug i managed to introduce in 0.16.2 (probably) involving ↵luke2006-05-031-32/+45
| | | | | | importing files with classes in them. This is a better solution than what I had before the bug, anyway. Also, some documentation fixes. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1167 980ebf18-57e1-0310-9a29-db15c13687c0
* Creating a simplistic, generic function framework in the parser, so it is ↵luke2006-04-261-426/+418
| | | | | | now very easy to add new functions. There is a pretty crappy, hardwired distinction between functions that return values and those that do not, but I do not see a good way around it right now. Functions are also currently responsible for handling their own arity, although I have plans for fixing that. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1134 980ebf18-57e1-0310-9a29-db15c13687c0
* Changing "set" to "tag"luke2006-04-111-6/+6
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1106 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing the language side of #109. Added a "set" keyword.luke2006-04-111-394/+416
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1103 980ebf18-57e1-0310-9a29-db15c13687c0
* Change how names for nodes are specified: the 'node' keyword can be followed ↵lutter2006-04-041-346/+328
| | | | | | by a NAME or by single quoted text, i.e. fully qualified names for nodes must be enclosed in single quotes git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1064 980ebf18-57e1-0310-9a29-db15c13687c0
* Manifests can now specify node names with fully qualified domain names, too.lutter2006-03-311-285/+336
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1047 980ebf18-57e1-0310-9a29-db15c13687c0
* Supporting variables as the test value in both case statements and selectors.luke2006-03-031-214/+221
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@976 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing bug #75, providing support for unnecessary end commas.luke2006-02-271-115/+127
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@954 980ebf18-57e1-0310-9a29-db15c13687c0
* Mostly, this is a refactoring commit. There is one significant new feature,luke2006-02-271-8/+8
| | | | | | | | | | | | | | | | | though: overrides now only work within a class heirarchy, which is to say that a subclass can override an element in a base class, but a child scope cannot otherwise override an element in a base scope. I've also done a good bit of refactoring, though; notably, AST#evaluate now takes named arguments, and I changed the 'name' parameter to 'type' in all of the Component classes (this was all internal, but was confusing as it was). I also removed the need for the autonaming stuff -- it's now acceptable for components not to have names, and everything behaves correctly. I haven't yet removed the autoname code, though; I'll do that on the next commit. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@952 980ebf18-57e1-0310-9a29-db15c13687c0
* Generate an error if the pattern for an import statement matches no file.lutter2006-02-231-21/+26
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@928 980ebf18-57e1-0310-9a29-db15c13687c0
* Fix failure of test_importglobbing in test/parser/parser.rblutter2006-02-221-23/+33
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@925 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding single-quote syntactical elementluke2006-02-161-327/+342
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@923 980ebf18-57e1-0310-9a29-db15c13687c0
* replacing all occurences of "is_a?" in the parser with "instance_of?"luke2006-02-081-24/+24
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@879 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing bug that occurs with only one argumentluke2006-02-081-4/+4
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@878 980ebf18-57e1-0310-9a29-db15c13687c0
* Committing both the finalization of the config code, plus all of the code ↵luke2006-02-071-19/+25
| | | | | | necessary to get basic isomorphism from code to transportables and back. Mostly keyword and autoname stuff. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@871 980ebf18-57e1-0310-9a29-db15c13687c0
* Made lots of small changes, mostly to help usability but also fixed a couple ↵luke2006-01-181-14/+12
| | | | | | of key bugs git-svn-id: https://reductivelabs.com/svn/puppet/trunk@841 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixing most types to allow no statementsluke2006-01-181-209/+295
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@840 980ebf18-57e1-0310-9a29-db15c13687c0
* Fixed a couple of warnings, fixed a critical bug having to do with case ↵luke2006-01-121-3/+3
| | | | | | statements (where there is only one listed option), and did a couple of other cleanups. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@814 980ebf18-57e1-0310-9a29-db15c13687c0
* Further small bug fixes towards running puppet on my networkluke2005-10-251-50/+54
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@729 980ebf18-57e1-0310-9a29-db15c13687c0
* Adding some semantic tagging. It is not exactly full-featured yet, and it ↵luke2005-10-101-3/+3
| | | | | | is not used at all, but it was sufficient for some proof-of-concept stuff in preparation for the conference git-svn-id: https://reductivelabs.com/svn/puppet/trunk@716 980ebf18-57e1-0310-9a29-db15c13687c0
* Many, many changes toward a completely functional system. The only current ↵luke2005-09-231-20/+21
| | | | | | problems with my home config are that apache's stupid init script does not do status and that packages are not working as non-root users (which makes sense). git-svn-id: https://reductivelabs.com/svn/puppet/trunk@703 980ebf18-57e1-0310-9a29-db15c13687c0
* Nodes now support inheritance, for better or for worse.luke2005-09-231-123/+119
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@701 980ebf18-57e1-0310-9a29-db15c13687c0
* The new "include" syntax works now.luke2005-09-221-332/+405
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@700 980ebf18-57e1-0310-9a29-db15c13687c0
* I am still somewhat in mid-change, but I have made the biggest changes to ↵luke2005-09-211-22/+15
| | | | | | making nodes work correctly. The core code works, but I still need to fix my various test cases git-svn-id: https://reductivelabs.com/svn/puppet/trunk@697 980ebf18-57e1-0310-9a29-db15c13687c0
* Okay, significant change -- classes no longer accept arguments (which makes ↵luke2005-09-211-143/+142
| | | | | | things simpler but encourages the user of global variables, which is bad), and classes are finally singletons, meaning they will only ever be evaluated for each node a single time. I still need to make nodes work correctly, but that is going to involve modifying the parsing system and a bit more git-svn-id: https://reductivelabs.com/svn/puppet/trunk@694 980ebf18-57e1-0310-9a29-db15c13687c0
* adding stinkloads of comments to ast.rb (I am trying to go through and ↵luke2005-09-201-280/+348
| | | | | | better comment my code over time), refactoring some of the AST classes, and working towards a more sensible class/definition/node distinction git-svn-id: https://reductivelabs.com/svn/puppet/trunk@693 980ebf18-57e1-0310-9a29-db15c13687c0
* My cfengine2puppet config now entirely parses. The biggest problem I ran ↵luke2005-09-181-19/+29
| | | | | | into is that my glob-based parsing was only returning the results of the last parsed file, instead of collecting all of the results. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@689 980ebf18-57e1-0310-9a29-db15c13687c0
* Successfully parsed my entire converted cfengine configuration; these are ↵luke2005-09-171-233/+240
| | | | | | all fixes for bugs i found as a result. I have not tried to execute the configuration yet. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@687 980ebf18-57e1-0310-9a29-db15c13687c0
* fixing some testsluke2005-09-151-19/+15
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@667 980ebf18-57e1-0310-9a29-db15c13687c0
* adding globbing to importluke2005-09-141-40/+51
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@657 980ebf18-57e1-0310-9a29-db15c13687c0
* tracked down some sticky bugs related to having false values and empty ↵luke2005-09-131-142/+147
| | | | | | strings; all fixed now, and all tests pass again, including the new tests that cover the bugs i found git-svn-id: https://reductivelabs.com/svn/puppet/trunk@652 980ebf18-57e1-0310-9a29-db15c13687c0
* recompiling parser after removing extraneous debuggingLuke Kanies2005-08-261-53/+43
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@591 980ebf18-57e1-0310-9a29-db15c13687c0
* making array-as-name work in the language, and adding some more test snippetsLuke Kanies2005-08-251-54/+70
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@589 980ebf18-57e1-0310-9a29-db15c13687c0
* replacing if statements with case statement, and adding defaults for both ↵Luke Kanies2005-08-241-409/+330
| | | | | | selectors and case statements git-svn-id: https://reductivelabs.com/svn/puppet/trunk@587 980ebf18-57e1-0310-9a29-db15c13687c0
* Moving all files into a consolidated trunk. All tests pass except the ↵Luke Kanies2005-08-231-0/+1264
known-failing certificate test, but there appear to be some errors that are incorrectly not resulting in failurs. I will track those down ASAP. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@576 980ebf18-57e1-0310-9a29-db15c13687c0