Summary Files Commits Branches @commit @diff @stats
path: root / awk-edits / #stack.awk
diff options
context:
space:
mode:
Commitefa4e784bafeb146dd35ea09f2f481aaedc7e69f (patch)
Author
 Syndamia <kamen@syndamia.com>
2024-02-23 21:29:18 +0200
Committer
 Syndamia <kamen@syndamia.com>
2024-02-23 21:29:18 +0200
Filesc5f4a2b91a874ecbb9a31cf5ee1e09a425c7eb30 /awk-edits/#stack.awk
syndamia.com-efa4e784bafeb146dd35ea09f2f481aaedc7e69f.tar
syndamia.com-efa4e784bafeb146dd35ea09f2f481aaedc7e69f.tar.gz
syndamia.com-efa4e784bafeb146dd35ea09f2f481aaedc7e69f.zip
Parent795d04783d25c0ada4ca3a5a4b56dbc18ff34bd6 (diff)
(awk-edits) Added initial MEL parser
1 files changed, 26 insertions, 0 deletions
-rw-r--r--awk-edits/#stack.awk26
diff --git a/awk-edits/#stack.awk b/awk-edits/#stack.awk
new file mode 100644
index 0000000..a8b0b2a
--- /dev/null
+++ b/awk-edits/#stack.awk
@@ -0,0 +1,26 @@
+function newStack(name) {
+ __stacks[name, "length"] = 0
+}
+
+function topStack(name) {
+ return __stacks[name, __stacks[name, "length"] - 1]
+}
+
+function lengthStack(name) {
+ return __stacks[name, "length"]
+}
+
+function pushStack(name, value) {
+ __stacks[name, __stacks[name, "length"]++] = value
+}
+
+function popStack(name, value) {
+ delete __stacks[name, --__stacks[name, "length"]]
+}
+
+function deleteStack(name) {
+ for (i = 0; i < __stacks[name, "length"]; i++) {
+ delete __stacks[name, i]
+ }
+ delete __stacks[name, "length"]
+}