Commit Graph

  • 326e856a2b Cleanup master Adam Pippin 2021-02-21 18:41:00 -0800
  • 0265db1946 Rework expression parser to not solve on creation; re-add dependency solving for variables in expressions in variables block Adam Pippin 2021-02-21 18:28:13 -0800
  • 6f90b5d222 Bugfix: Fix processing order for functions -- deepest nodes first Adam Pippin 2021-02-19 12:33:27 -0800
  • 8dd7b8d1f0 Re-add !expr function Adam Pippin 2021-02-19 12:33:10 -0800
  • 4294c5b007 Add concat/select operators Adam Pippin 2021-02-19 12:33:03 -0800
  • 6ddf1531af Add boolean literals to expression parser Adam Pippin 2021-02-19 12:32:34 -0800
  • 706242074d Allow !replace to accept a scalar Adam Pippin 2021-02-18 11:48:10 -0800
  • 9e5adfb9ce Bugfix: !if that creates cfn conditions properly replaces parent node v0.2.0 Adam Pippin 2021-02-17 02:52:55 -0800
  • a3fe71526d Bugfix: generating Fn::If without false caused error Adam Pippin 2021-02-17 02:18:16 -0800
  • 9a99fc315b Bugfix: expression binary operators were dropping children Adam Pippin 2021-02-17 02:17:54 -0800
  • b38a37d048 Update README.md Adam Pippin 2021-02-17 01:44:19 -0800
  • 2b619d767b Remove old expression parser Adam Pippin 2021-02-17 01:40:54 -0800
  • 41b26006ac Cleanup + comments Adam Pippin 2021-02-17 01:40:12 -0800
  • 22aa9e068f Update fn::if to use new expression parser and generate conditions where appropriate Adam Pippin 2021-02-17 00:35:04 -0800
  • f58cd9129d Add an `addCondition` method to compiler for calling from functions Adam Pippin 2021-02-17 00:34:35 -0800
  • 27774c84c6 Expression bug fix replacing variables; add string literal Adam Pippin 2021-02-17 00:27:35 -0800
  • 5d0afd4984 Reimplement expression parser Adam Pippin 2021-02-16 23:51:50 -0800
  • 01b036b284 Move cfnpp code out from under engine namespace Adam Pippin 2021-02-16 15:39:57 -0800
  • ff0b4515ff Fix wiki link? v0.1.0 Adam Pippin 2021-02-15 14:25:35 -0800
  • a0b446918e README contents cleaned up and migrated to wiki; remove and link there Adam Pippin 2021-02-15 14:25:01 -0800
  • ce600dd8e7 Add !expr to readme and concat/concat* functions Adam Pippin 2021-02-15 12:03:31 -0800
  • 60f8d2be60 Also look at variables referenced in expressions when determining dependencies between variables Adam Pippin 2021-02-15 11:55:01 -0800
  • 400542bc12 Specify some functions callable from expressions Adam Pippin 2021-02-15 11:54:42 -0800
  • 6485b4f5a1 Add !expr function to allow inserting the result of evaluating an expression Adam Pippin 2021-02-15 11:38:28 -0800
  • a2d5324840 Allow expression evaluator to return an array if stack contains multiple values Adam Pippin 2021-02-15 11:37:38 -0800
  • e490332d7d Update README -- variables now support all sorts of YAML, not just scalar values Adam Pippin 2021-02-15 00:52:45 -0800
  • 4d0b6f58ab Correct README -- was still referencing upper-cased !Replace Adam Pippin 2021-02-15 00:51:28 -0800
  • 26eeb10015 README.md: Motivation Adam Pippin 2021-02-15 00:50:16 -0800
  • d378ad6691 clarify !if false value is optional Adam Pippin 2021-02-15 00:46:02 -0800
  • 290c55e317 Update readme with new features (mainly !if); cleared a few thinsg off of TODO Adam Pippin 2021-02-15 00:45:16 -0800
  • d4d457340a Fix bug in expression string literal parser Adam Pippin 2021-02-15 00:44:31 -0800
  • 07e9fc2a3a Cleanup Adam Pippin 2021-02-15 00:29:55 -0800
  • 497f23594e Add basic !if function Adam Pippin 2021-02-15 00:06:17 -0800
  • 6b3eaa6833 First pass at expression parser/evaluator Adam Pippin 2021-02-15 00:05:12 -0800
  • b470283fde Fix potential bug where using !unset on a variable would result in a crash Adam Pippin 2021-02-14 17:31:46 -0800
  • 9f5dda08de Add compiler pass 2 - run remaining functions Adam Pippin 2021-02-14 17:29:00 -0800
  • 5a1b4f3402 Add compiler pass 1 -- resolve dependencies between variables and evaluate values Adam Pippin 2021-02-14 17:26:50 -0800
  • 1cdadf4521 Have dependency graph throw an exception rather than return nothing when no edge nodes are present Adam Pippin 2021-02-14 17:24:56 -0800
  • 1fd4bfb2b8 Cleanup Adam Pippin 2021-02-14 16:35:51 -0800
  • 0c70de8e8a Compiler pass 0 using new dependency graph/etc Adam Pippin 2021-02-14 16:20:21 -0800
  • 9dbe97a3ec Don't write state information into metadata from engine as all the actual state is now in compiler Adam Pippin 2021-02-14 16:19:10 -0800
  • d167f08e24 Add File::clear() to allow clearing and reusing/modifying file resolver Adam Pippin 2021-02-14 16:00:23 -0800
  • be9857cd2f Add super rudimentary dependency graph solver Adam Pippin 2021-02-14 15:59:30 -0800
  • 145b89da1e Add generic methods for converting DOM<->PHP, updated places where this is useful Adam Pippin 2021-02-14 15:58:57 -0800
  • 1bb3e50cfb Move cfnpp stuff into its own namespace Adam Pippin 2021-02-14 14:42:02 -0800
  • 8722279af6 Remove all logic besides "load files, pass to compiler" from Engine Adam Pippin 2021-02-14 14:38:25 -0800
  • 4b26a910af Have the compiler passed the entire set of documents + state to facilitate moving the higher-level compilation logic into the compiler Adam Pippin 2021-02-14 14:30:22 -0800
  • f3a3d21a36 Track parameters like variables Adam Pippin 2021-02-14 14:20:30 -0800
  • f71b5f3582 Rewrite README to explain functionality, move forward TODO list Adam Pippin 2021-02-14 00:38:05 -0800
  • c0b4fd7dd3 Code cleanup Adam Pippin 2021-02-14 00:04:07 -0800
  • 300de19fe5 Bugfix: recent list of includes between each file Adam Pippin 2021-02-14 00:00:27 -0800
  • 6ce8dec215 Add !var to use value of variable as value Adam Pippin 2021-02-14 00:00:15 -0800
  • 6b8439e3c2 Bugfix: don't try and iterate over the thing we're modifying Adam Pippin 2021-02-14 00:00:03 -0800
  • 4056674c1d Rework Engine::process, handle variables in meta block Adam Pippin 2021-02-13 23:47:06 -0800
  • 0f6185d9d8 Update compiler options to hold variables Adam Pippin 2021-02-13 23:35:34 -0800
  • de247299cd Pass options in to compiler at construction instead of with each pass Adam Pippin 2021-02-13 23:35:07 -0800
  • 2f197b4b51 Update domdocument to allow fetching maps from meta Adam Pippin 2021-02-13 23:33:32 -0800
  • 56a023959f Fix off by... many error -- only walk array index back 1 to reprocess, not more Adam Pippin 2021-02-13 23:18:40 -0800
  • d27b087229 Update README with run/build instructions Adam Pippin 2021-02-13 00:01:34 -0800
  • 37979346af Move githooks copy to post-install -- post-autoload-dump causes issues with box running composer install from outside the project root Adam Pippin 2021-02-13 00:01:14 -0800
  • 87f8097502 Replace README Adam Pippin 2021-02-12 23:56:05 -0800
  • 460168401e Write list of yaml files processed to Metadata section of output (poc) Adam Pippin 2021-02-12 23:55:58 -0800
  • db66e2cabf Replace findNodeByPath with iterative implementation Adam Pippin 2021-02-12 23:20:43 -0800
  • 1c1a2c5852 Docblocks and code cleanup Adam Pippin 2021-02-12 23:12:15 -0800
  • 5d0464463a Update target PHP version to 8 Adam Pippin 2021-02-12 23:11:36 -0800
  • fed2d6015b Remove unnecessary special case handling Adam Pippin 2021-02-12 16:36:10 -0800
  • 2d4d9b725c Refactor/rewrite compilation to be less like spaghetti Adam Pippin 2021-02-12 16:35:54 -0800
  • 5538661bca Moved basic compilation/include logic into Engine (needs cleanup) Adam Pippin 2021-02-12 14:29:40 -0800
  • 7aa447f9d9 Added some simple WIP document-level stuff and basic compile command Adam Pippin 2021-02-12 13:55:16 -0800
  • f242056156 Add function processing and basic !Replace to cfnpp Adam Pippin 2021-02-12 13:32:29 -0800
  • de8ab2d0d2 Basic merge compiler Adam Pippin 2021-02-12 12:49:48 -0800
  • 042478a27a Flesh out engine + compile interface, add no-op compiler Adam Pippin 2021-02-12 11:56:30 -0800
  • e6a4462a50 Cleanup + adding docblocks Adam Pippin 2021-02-12 11:35:47 -0800
  • d5a7b11b7a YAML now supports a mostly no-op round trip to/from DOM Adam Pippin 2021-02-12 11:21:13 -0800
  • ecf7258cb8 YAML deserialization Adam Pippin 2021-02-12 01:23:33 -0800
  • f6992724ee Basic DOM Adam Pippin 2021-02-12 01:23:26 -0800
  • 1167bae2f5 Fleshing out rough architecture Adam Pippin 2021-02-11 23:59:41 -0800
  • ad316aed5e Ignore php_cs cache Adam Pippin 2021-02-11 23:08:19 -0800
  • 67608a15b3 Add symfony yaml component Adam Pippin 2021-02-11 23:07:50 -0800
  • e6d5f9cf11 Add basic YAML wrapper singleton Adam Pippin 2021-02-11 23:07:37 -0800
  • 3400c543a3 spaces -> tabs Adam Pippin 2021-02-11 23:06:45 -0800
  • fbb74a15b9 Removing sample command Adam Pippin 2021-02-11 17:24:17 -0800
  • 8f9ddd8896 Update packages Adam Pippin 2021-02-11 17:23:21 -0800
  • 4a69a7c49d empty project Adam Pippin 2021-02-11 17:21:33 -0800