pycep-parser 0.7.0.dev1__tar.gz → 0.7.0.dev3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/PKG-INFO +1 -1
- pycep_parser-0.7.0.dev3/pycep/bicep.lark +208 -0
- pycep_parser-0.7.0.dev3/pycep/rules/functions.py +1179 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/pycep/transformer.py +30 -998
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/pycep/typing.py +56 -21
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/pyproject.toml +1 -1
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/basic/01-param/result.json +42 -21
- pycep_parser-0.7.0.dev3/tests/examples/basic/02-var/result.json +128 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/basic/03-output/result.json +14 -7
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/basic/04-resource/result.json +14 -7
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complete/playground/result-line-numbers.json +14 -7
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complete/playground/result.json +14 -7
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/02-resource-module-decorator/result.json +25 -12
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/04-child-resource/result.json +14 -7
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/08-var-decorator/main.bicep +3 -0
- pycep_parser-0.7.0.dev3/tests/examples/complex/08-var-decorator/result.json +51 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/11-typed-var/result.json +28 -14
- pycep_parser-0.7.0.dev3/tests/examples/complex/14-type-decorator/main.bicep +5 -0
- pycep_parser-0.7.0.dev3/tests/examples/complex/14-type-decorator/result.json +20 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/loop/array/main.bicep +1 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/loop/array/result.json +24 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/loop/array-index/main.bicep +1 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/loop/array-index/result.json +53 -14
- pycep_parser-0.7.0.dev3/tests/examples/loop/array-w-newline/result.json +181 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/loop/condition/result.json +11 -5
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/loop/object/result.json +18 -4
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/scope/subscription/result.json +26 -12
- pycep_parser-0.7.0.dev3/tests/test_function/__init__.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/first/result.json +13 -6
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/flatten/result.json +13 -6
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/intersection/result.json +14 -7
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/last/result.json +13 -6
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/union/result.json +14 -7
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/deployment/deployment/result.json +10 -3
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/deployment/environment/result.json +10 -3
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/file/load_json_content/result.json +77 -24
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/file/load_yaml_content/result.json +77 -24
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/lambda/filter/result.json +58 -38
- pycep_parser-0.7.0.dev3/tests/test_function/examples/object/json/result.json +189 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/reference/result.json +10 -3
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/scope/management_group/result.json +26 -12
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/scope/resource_group/result.json +28 -14
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/scope/subscription/result.json +26 -12
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/scope/tenant/result.json +24 -14
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/split/result.json +14 -7
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/accessor/function/result.json +8 -15
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/logical/not/main.bicep +2 -4
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/logical/not/result.json +19 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/safe_dereference/result.json +11 -5
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_parse_general.py +13 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_parse_loop.py +0 -13
- pycep_parser-0.7.0.dev1/pycep/bicep.lark +0 -409
- pycep_parser-0.7.0.dev1/tests/examples/basic/02-var/result.json +0 -100
- pycep_parser-0.7.0.dev1/tests/examples/complex/08-var-decorator/result.json +0 -36
- pycep_parser-0.7.0.dev1/tests/examples/loop/array-w-newline/result.json +0 -167
- pycep_parser-0.7.0.dev1/tests/examples/loop/range/main.bicep +0 -28
- pycep_parser-0.7.0.dev1/tests/examples/loop/range/result.json +0 -177
- pycep_parser-0.7.0.dev1/tests/test_function/examples/object/json/result.json +0 -136
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/LICENSE +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/README.md +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/pycep/__init__.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/pycep/main.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/pycep/py.typed +0 -0
- {pycep_parser-0.7.0.dev1/tests → pycep_parser-0.7.0.dev3/pycep/rules}/__init__.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/pycep/validator.py +0 -0
- {pycep_parser-0.7.0.dev1/tests/test_function → pycep_parser-0.7.0.dev3/tests}/__init__.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/basic/01-param/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/basic/02-var/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/basic/03-output/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/basic/04-resource/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/basic/05-module/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/basic/05-module/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/basic/06-type/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/basic/06-type/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complete/playground/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/01-param-decorator/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/01-param-decorator/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/02-resource-module-decorator/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/03-resource-existing/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/03-resource-existing/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/04-child-resource/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/05-deploy-condition/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/05-deploy-condition/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/06-output-decorator/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/06-output-decorator/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/07-module-alias/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/07-module-alias/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/09-metadata/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/09-metadata/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/10-extension/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/10-extension/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/11-typed-var/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/12-nullable-type/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/12-nullable-type/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/13-import/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/complex/13-import/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/invalid/invalid_multi_line.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/loop/array-w-newline/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/loop/child/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/loop/child/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/loop/condition/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/loop/object/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/scope/management_group/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/scope/management_group/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/scope/resource_group/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/scope/resource_group/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/scope/subscription/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/scope/tenant/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/examples/scope/tenant/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/any/any/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/any/any/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/array/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/array/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/concat/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/concat/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/contains/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/contains/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/empty/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/empty/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/first/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/flatten/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/intersection/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/last/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/length/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/length/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/max/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/max/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/min/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/min/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/skip/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/skip/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/take/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/take/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/array/union/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/date/date_time_add/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/date/date_time_add/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/date/date_time_from_epoch/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/date/date_time_from_epoch/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/date/date_time_to_epoch/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/date/date_time_to_epoch/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/date/utc_now/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/date/utc_now/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/deployment/deployment/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/deployment/environment/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/file/load_file_as_base64/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/file/load_file_as_base64/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/file/load_json_content/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/file/load_text_content/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/file/load_text_content/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/file/load_yaml_content/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/lambda/filter/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/logical/bool/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/logical/bool/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/numeric/int/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/numeric/int/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/object/json/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/extension_resource_id/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/extension_resource_id/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/list_keys/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/list_keys/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/management_group_resource_id/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/management_group_resource_id/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/pick_zones/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/pick_zones/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/reference/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/resource_id/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/resource_id/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/subscription_resource_id/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/subscription_resource_id/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/tenant_resource_id/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/resource/tenant_resource_id/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/scope/management_group/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/scope/resource_group/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/scope/subscription/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/scope/tenant/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/base64/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/base64/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/base64_to_json/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/base64_to_json/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/base64_to_string/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/base64_to_string/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/data_uri/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/data_uri/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/data_uri_to_string/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/data_uri_to_string/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/ends_with/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/ends_with/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/format/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/format/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/guid/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/guid/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/index_of/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/index_of/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/join/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/join/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/last_index_of/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/last_index_of/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/new_guid/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/new_guid/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/pad_left/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/pad_left/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/replace/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/replace/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/split/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/starts_with/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/starts_with/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/string/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/string/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/substring/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/substring/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/to_lower/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/to_lower/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/to_upper/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/to_upper/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/trim/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/trim/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/unique_string/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/unique_string/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/uri/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/uri/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/uri_component/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/uri_component/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/uri_component_to_string/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/examples/string/uri_component_to_string/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/test_parse_any.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/test_parse_array.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/test_parse_date.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/test_parse_deployment.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/test_parse_file.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/test_parse_lambda.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/test_parse_logical.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/test_parse_numeric.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/test_parse_object.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/test_parse_resource.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/test_parse_scope.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_function/test_parse_string.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_main.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/accessor/function/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/accessor/index/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/accessor/index/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/accessor/nested_resource/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/accessor/nested_resource/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/accessor/non_null/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/accessor/non_null/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/accessor/property/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/accessor/property/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/equals/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/equals/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/equals_case_insensitive/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/equals_case_insensitive/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/greater_than/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/greater_than/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/greater_than_or_equals/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/greater_than_or_equals/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/less_than/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/less_than/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/less_than_or_equals/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/less_than_or_equals/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/not_equals/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/not_equals/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/not_equals_case_insensitive/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/comparison/not_equals_case_insensitive/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/logical/and/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/logical/and/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/logical/coalesce/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/logical/coalesce/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/logical/conditional/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/logical/conditional/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/logical/or/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/logical/or/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/numeric/add/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/numeric/add/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/numeric/divide/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/numeric/divide/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/numeric/minus/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/numeric/minus/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/numeric/modulo/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/numeric/modulo/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/numeric/multiply/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/numeric/multiply/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/numeric/substract/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/numeric/substract/result.json +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/examples/safe_dereference/main.bicep +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/test_parse_accessor.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/test_parse_comparison.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/test_parse_logical.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/test_parse_numeric.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_operator/test_parse_safe_dereference.py +0 -0
- {pycep_parser-0.7.0.dev1 → pycep_parser-0.7.0.dev3}/tests/test_parse_scope.py +0 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
start: ((element _CPP_COMMENT_NL?) | _CPP_COMMENT_NL)*
|
|
2
|
+
|
|
3
|
+
element: "targetScope" "=" QUOTED_INTERPOLATION -> scope
|
|
4
|
+
| "import" _import_statement -> custom_import
|
|
5
|
+
| "extension" STRING ["with" object] ["as" STRING] -> extension
|
|
6
|
+
| "metadata" STRING "=" metadata_value -> metadata
|
|
7
|
+
| [decorator] "param" STRING data_type "?"? ["=" value_brackets] -> param
|
|
8
|
+
| [decorator] "var" STRING [data_type "?"?] "=" var_value -> var
|
|
9
|
+
| [decorator] "output" STRING data_type "?"? "=" output_value -> output
|
|
10
|
+
| [decorator] "resource" STRING type_api_pair [EXISTING] "=" resource_value -> resource
|
|
11
|
+
| [decorator] "module" STRING module_path "=" module_value -> module
|
|
12
|
+
| [decorator] "type" STRING "=" type_value -> custom_type
|
|
13
|
+
|
|
14
|
+
?value: _NEWLINE? "null" -> null
|
|
15
|
+
| _NEWLINE? "true" -> true
|
|
16
|
+
| _NEWLINE? "false" -> false
|
|
17
|
+
| _NEWLINE? INT -> int
|
|
18
|
+
| _NEWLINE? STRING -> string
|
|
19
|
+
| _NEWLINE? QUOTED_INTERPOLATION -> string
|
|
20
|
+
| MULTI_LINE_STRING -> multi_line_string
|
|
21
|
+
| array
|
|
22
|
+
| object
|
|
23
|
+
| _NEWLINE? function
|
|
24
|
+
| operator
|
|
25
|
+
| lambda_expression
|
|
26
|
+
|
|
27
|
+
?value_brackets: (value | "(" value ")") "!"?
|
|
28
|
+
|
|
29
|
+
// aliases
|
|
30
|
+
|
|
31
|
+
_import_statement: (("{" import_alias ("," import_alias)* "}" | import_alias) "from" QUOTED_INTERPOLATION | QUOTED_INTERPOLATION)
|
|
32
|
+
|
|
33
|
+
// element values
|
|
34
|
+
|
|
35
|
+
?var_value: value_brackets | loop
|
|
36
|
+
|
|
37
|
+
?metadata_value: QUOTED_INTERPOLATION -> string
|
|
38
|
+
|
|
39
|
+
?output_value: value_brackets | loop
|
|
40
|
+
|
|
41
|
+
?resource_value: object | loop | deploy_condition
|
|
42
|
+
|
|
43
|
+
?module_value: object | loop | deploy_condition
|
|
44
|
+
|
|
45
|
+
child_resource: "resource" STRING QUOTED_INTERPOLATION [EXISTING] "=" (object | loop | deploy_condition) _CPP_COMMENT_NL+
|
|
46
|
+
|
|
47
|
+
?type_value: value_brackets ("|" value_brackets)*
|
|
48
|
+
|
|
49
|
+
// element type extras
|
|
50
|
+
|
|
51
|
+
data_type: STRING
|
|
52
|
+
|
|
53
|
+
type_api_pair: QUOTED_INTERPOLATION
|
|
54
|
+
|
|
55
|
+
module_path: QUOTED_INTERPOLATION
|
|
56
|
+
|
|
57
|
+
import_alias: (STRING | /\*/) ["as" STRING]
|
|
58
|
+
|
|
59
|
+
// loops
|
|
60
|
+
|
|
61
|
+
loop: "[" _CPP_COMMENT_NL? "for" (loop_array | loop_array_index | loop_object) ":" [value_brackets] value_brackets _CPP_COMMENT_NL? "]"
|
|
62
|
+
|
|
63
|
+
loop_array: STRING "in" value_brackets
|
|
64
|
+
|
|
65
|
+
loop_array_index: "(" STRING "," STRING ")" "in" value_brackets
|
|
66
|
+
|
|
67
|
+
loop_object: STRING "in" "items" "(" value_brackets ")"
|
|
68
|
+
|
|
69
|
+
// deploy condition
|
|
70
|
+
|
|
71
|
+
deploy_condition: _CPP_COMMENT_NL? "if" "(" value_brackets ")" value_brackets
|
|
72
|
+
|
|
73
|
+
// data types
|
|
74
|
+
|
|
75
|
+
?quoted_string: STRING | QUOTED_STRING | QUOTED_INTERPOLATION
|
|
76
|
+
|
|
77
|
+
array: "[" _CPP_COMMENT_NL~0..10 (value_brackets ("," value_brackets)* _CPP_COMMENT_NL~0..5)* "]"
|
|
78
|
+
|
|
79
|
+
object: "{" _CPP_COMMENT_NL~0..10 ((pair ("," pair)* | child_resource) _CPP_COMMENT_NL~0..5)* "}"
|
|
80
|
+
|
|
81
|
+
pair: key ":" (value_brackets | loop) "?"?
|
|
82
|
+
|
|
83
|
+
!key: "resource" | quoted_string
|
|
84
|
+
|
|
85
|
+
lambda_expression: (value_brackets | "(" value_brackets "," value_brackets ("," value_brackets)+ ")") "=>" value_brackets
|
|
86
|
+
|
|
87
|
+
// decorators
|
|
88
|
+
|
|
89
|
+
decorator: ("@" "sys."? (deco_allowed | deco_batch | deco_description | deco_export | deco_min_len | deco_max_len | deco_min_val | deco_max_val | deco_metadata | deco_secure) _CPP_COMMENT_NL~0..5)+
|
|
90
|
+
|
|
91
|
+
deco_allowed: "allowed" "(" array ")"
|
|
92
|
+
|
|
93
|
+
deco_batch: "batchSize" "(" /\d+/ ")"
|
|
94
|
+
|
|
95
|
+
deco_description: "description" "(" (QUOTED_INTERPOLATION | MULTI_LINE_STRING) ")"
|
|
96
|
+
|
|
97
|
+
deco_export: "export" "(" ")"
|
|
98
|
+
|
|
99
|
+
deco_min_len: "minLength" "(" /\d+/ ")"
|
|
100
|
+
|
|
101
|
+
deco_max_len: "maxLength" "(" /\d+/ ")"
|
|
102
|
+
|
|
103
|
+
deco_min_val: "minValue" "(" /-?\d+/ ")"
|
|
104
|
+
|
|
105
|
+
deco_max_val: "maxValue" "(" /\d+/ ")"
|
|
106
|
+
|
|
107
|
+
deco_metadata: "metadata" "(" _CPP_COMMENT_NL? object _CPP_COMMENT_NL? ")"
|
|
108
|
+
|
|
109
|
+
deco_secure: "secure" "(" ")"
|
|
110
|
+
|
|
111
|
+
// functions
|
|
112
|
+
|
|
113
|
+
FUNCTION.1: /((sys|az)\.)?[a-zA-Z0-9]+/ "("
|
|
114
|
+
function: FUNCTION _CPP_COMMENT_NL? value_brackets? ("," _CPP_COMMENT_NL? value_brackets)* _CPP_COMMENT_NL? ")"
|
|
115
|
+
|
|
116
|
+
// operators
|
|
117
|
+
|
|
118
|
+
operator: operator_comparison | operator_logical | operator_numeric | operator_accessor
|
|
119
|
+
|
|
120
|
+
// operators - comparison
|
|
121
|
+
|
|
122
|
+
?operator_comparison: greater_than_or_equals | greater_than | less_than_or_equals | less_than
|
|
123
|
+
| equals | not_equals | equals_case_insens | not_equals_case_insens
|
|
124
|
+
|
|
125
|
+
greater_than_or_equals: value_brackets ">=" value_brackets
|
|
126
|
+
|
|
127
|
+
greater_than: value_brackets ">" value_brackets
|
|
128
|
+
|
|
129
|
+
less_than_or_equals: value_brackets "<=" value_brackets
|
|
130
|
+
|
|
131
|
+
less_than: value_brackets "<" value_brackets
|
|
132
|
+
|
|
133
|
+
equals: value_brackets "==" value_brackets
|
|
134
|
+
|
|
135
|
+
not_equals: value_brackets "!=" value_brackets
|
|
136
|
+
|
|
137
|
+
equals_case_insens: value_brackets "=~" value_brackets
|
|
138
|
+
|
|
139
|
+
not_equals_case_insens: value_brackets "!~" value_brackets
|
|
140
|
+
|
|
141
|
+
// operators - logical
|
|
142
|
+
|
|
143
|
+
?operator_logical: and_op | or_op | not_op | coalesce | conditional
|
|
144
|
+
|
|
145
|
+
and_op: value_brackets "&&" value_brackets
|
|
146
|
+
|
|
147
|
+
or_op: value_brackets "||" value_brackets
|
|
148
|
+
|
|
149
|
+
not_op: "!" value_brackets
|
|
150
|
+
|
|
151
|
+
coalesce: value_brackets "??" value_brackets
|
|
152
|
+
|
|
153
|
+
conditional: value_brackets "?" value_brackets ":" value_brackets
|
|
154
|
+
|
|
155
|
+
// operators - numeric
|
|
156
|
+
|
|
157
|
+
?operator_numeric: add | divide | minus | modulo | multiply | substract
|
|
158
|
+
|
|
159
|
+
add: value_brackets "+" value_brackets
|
|
160
|
+
|
|
161
|
+
divide: value_brackets "/" value_brackets
|
|
162
|
+
|
|
163
|
+
minus: "-" value_brackets
|
|
164
|
+
|
|
165
|
+
modulo: value_brackets "%" value_brackets
|
|
166
|
+
|
|
167
|
+
multiply: value_brackets "*" value_brackets
|
|
168
|
+
|
|
169
|
+
substract.1: value_brackets "-" value_brackets
|
|
170
|
+
|
|
171
|
+
// operators - accessor
|
|
172
|
+
|
|
173
|
+
?operator_accessor: index_accessor | function_accessor | nested_resource_accessor | property_accessor
|
|
174
|
+
|
|
175
|
+
index_accessor: value_brackets "[" "?"? value_brackets "]"
|
|
176
|
+
|
|
177
|
+
function_accessor: value_brackets "." LIST_FUNC_NAME "(" value_brackets? ["," value_brackets]+ ")"
|
|
178
|
+
|
|
179
|
+
nested_resource_accessor: value_brackets "::" value_brackets
|
|
180
|
+
|
|
181
|
+
// 'sys.' and 'az.' have to be eliminated in 1st operand (see STRING definition regexp):
|
|
182
|
+
property_accessor: value_brackets "." "?"? value_brackets
|
|
183
|
+
|
|
184
|
+
// Terms
|
|
185
|
+
|
|
186
|
+
EXISTING: "existing"
|
|
187
|
+
|
|
188
|
+
STRING: /(?!(sys|az)\.)[a-zA-Z_]([\w_])*/
|
|
189
|
+
QUOTED_STRING: "'" /[a-zA-Z_]([\w_.])*/ "'"
|
|
190
|
+
INDEXED: /(?=[\w][\w_.]+(.(get|list)[a-zA-Z]*\(('[\w-]+'|[\w.]+)?\)|[\[\]])+)(.(get|list)[a-zA-Z]*\(('[\w-]+'|[\w.]+)?\)|\[[\w\[\]_().']+\]|[\w_\-\/.,'= ])+/
|
|
191
|
+
QUOTED_INTERPOLATION: /(?!.*''')'(\${(?:[^}'{]+|(?R))*+}|\\'|[^'])*'/
|
|
192
|
+
LIST_FUNC_NAME.2: /(?=([Ll]ist[A-za-z]*|getSecret)\()([A-Za-z]+)/
|
|
193
|
+
|
|
194
|
+
MULTI_LINE_STRING: "'''" (/.*?/ | NEWLINE)+ "'''"
|
|
195
|
+
|
|
196
|
+
_NEWLINE: NEWLINE
|
|
197
|
+
_CPP_COMMENT_NL: [CPP_COMMENT] NEWLINE
|
|
198
|
+
|
|
199
|
+
%import common.C_COMMENT
|
|
200
|
+
%import common.CPP_COMMENT
|
|
201
|
+
%import common.SH_COMMENT
|
|
202
|
+
%import common.INT
|
|
203
|
+
%import common.NEWLINE
|
|
204
|
+
%import common.WS_INLINE
|
|
205
|
+
|
|
206
|
+
%ignore C_COMMENT
|
|
207
|
+
%ignore SH_COMMENT
|
|
208
|
+
%ignore WS_INLINE
|