diff options
| Commit | efa4e784bafeb146dd35ea09f2f481aaedc7e69f (patch) | |
|---|---|---|
| Author | 2024-02-23 21:29:18 +0200 | |
| Committer | 2024-02-23 21:29:18 +0200 | |
| Files | c5f4a2b91a874ecbb9a31cf5ee1e09a425c7eb30 /awk-edits/#stack.awk | |
| syndamia.com-efa4e784bafeb146dd35ea09f2f481aaedc7e69f.tar syndamia.com-efa4e784bafeb146dd35ea09f2f481aaedc7e69f.tar.gz syndamia.com-efa4e784bafeb146dd35ea09f2f481aaedc7e69f.zip | ||
| Parent | 795d04783d25c0ada4ca3a5a4b56dbc18ff34bd6 (diff) | |
(awk-edits) Added initial MEL parser
1 files changed, 26 insertions, 0 deletions
| -rw-r--r-- | awk-edits/#stack.awk | 26 |
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"] +} |