summaryrefslogtreecommitdiff
path: root/rules/CC/auto/EXPRESSIONS
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2022-12-12 11:47:52 +0100
committerOliver Reiche <oliver.reiche@huawei.com>2022-12-12 11:47:52 +0100
commit6e10ee13df0b83511d7fe94bb755ac53f993c0ec (patch)
tree64615ddb751a207ae8da42a620f085795cf1c035 /rules/CC/auto/EXPRESSIONS
parent247e09b1ba01deb5649c6a73a7f272e1f72178fe (diff)
parentd44be66f2a916168e0f5a7055e49f12c252b2cd2 (diff)
downloadrules-cc-6e10ee13df0b83511d7fe94bb755ac53f993c0ec.tar.gz
Add 'rules/' from commit 'd44be66f2a916168e0f5a7055e49f12c252b2cd2'
git-subtree-dir: rules git-subtree-mainline: 247e09b1ba01deb5649c6a73a7f272e1f72178fe git-subtree-split: d44be66f2a916168e0f5a7055e49f12c252b2cd2
Diffstat (limited to 'rules/CC/auto/EXPRESSIONS')
-rw-r--r--rules/CC/auto/EXPRESSIONS32
1 files changed, 32 insertions, 0 deletions
diff --git a/rules/CC/auto/EXPRESSIONS b/rules/CC/auto/EXPRESSIONS
new file mode 100644
index 0000000..ac19f7a
--- /dev/null
+++ b/rules/CC/auto/EXPRESSIONS
@@ -0,0 +1,32 @@
+{ "last_list_entry":
+ { "vars": ["list"]
+ , "expression":
+ { "type": "foldl"
+ , "range": {"type": "var", "name": "list"}
+ , "start": null
+ , "body": {"type": "var", "name": "_"}
+ }
+ }
+, "first_list_entry":
+ { "vars": ["list"]
+ , "imports": {"last": "last_list_entry"}
+ , "expression":
+ { "type": "let*"
+ , "bindings":
+ [ [ "list"
+ , { "type": "foldl"
+ , "range": {"type": "var", "name": "list", "default": []}
+ , "start": null
+ , "body":
+ { "type": "if"
+ , "cond": {"type": "var", "name": "$1"}
+ , "then": {"type": "var", "name": "$1"}
+ , "else": [{"type": "var", "name": "_"}]
+ }
+ }
+ ]
+ ]
+ , "body": {"type": "CALL_EXPRESSION", "name": "last"}
+ }
+ }
+}