diff options
author | elioat <{ID}+{username}@users.noreply.github.com> | 2025-02-21 11:00:34 -0500 |
---|---|---|
committer | elioat <{ID}+{username}@users.noreply.github.com> | 2025-02-21 11:00:34 -0500 |
commit | 736446c60275b98396d38e14dd4946ca553639f1 (patch) | |
tree | 34599e7ae775dbfc506b885bd86e11bd9adf0587 /awk | |
parent | fa4847cb7fa840f4310c8de222f7e77d40c23141 (diff) | |
download | tour-736446c60275b98396d38e14dd4946ca553639f1.tar.gz |
*
Diffstat (limited to 'awk')
-rwxr-xr-x | awk/scheme/scheme/bin/compiler.awk | 18 | ||||
-rwxr-xr-x | awk/scheme/scheme/bin/vm.awk | 8 |
2 files changed, 13 insertions, 13 deletions
diff --git a/awk/scheme/scheme/bin/compiler.awk b/awk/scheme/scheme/bin/compiler.awk index b7773b7..738ca9c 100755 --- a/awk/scheme/scheme/bin/compiler.awk +++ b/awk/scheme/scheme/bin/compiler.awk @@ -38,7 +38,7 @@ END { # Splits input into individual Scheme expressions # Handles nested parentheses and comments -function split_expressions(prog, current, paren_count, i, c, expr, cleaned) { +function split_expressions(prog, current, paren_count, i, c, expr, cleaned) { current = "" paren_count = 0 @@ -137,7 +137,7 @@ function next_token() { # Recursive descent parser for Scheme expressions # Returns parsed expression as a string -function parse_expr( token, result) { +function parse_expr(token, result) { token = next_token() if (token == "EOF") return "" @@ -152,7 +152,7 @@ function parse_expr( token, result) { } # Parses a list expression (anything in parentheses) -function parse_list( result, expr) { +function parse_list(result, expr) { result = "" while (1) { @@ -169,7 +169,7 @@ function parse_list( result, expr) { # Splits an expression into operator and arguments # Handles nested expressions correctly -function split_expr(expr, i, len, c, op, args, paren_count) { +function split_expr(expr, i, len, c, op, args, paren_count) { len = length(expr) paren_count = 0 @@ -194,7 +194,7 @@ function split_expr(expr, i, len, c, op, args, paren_count) { } # Splits argument list handling nested parentheses -function split_args(args, arg_array, len, i, c, current, paren_count, arg_count) { +function split_args(args, arg_array, len, i, c, current, paren_count, arg_count) { len = length(args) current = "" paren_count = 0 @@ -228,7 +228,7 @@ function compile_number(num) { } # Code generation for primitive operations (+, -, *, cons, etc) -function compile_primitive_call(op, args, arg_array, nargs, i) { +function compile_primitive_call(op, args, arg_array, nargs, i) { debug("Primitive call: op=" op " args=" args) nargs = split_args(args, arg_array) @@ -282,7 +282,7 @@ function compile_primitive_call(op, args, arg_array, nargs, i) { } # Splits let bindings into individual variable/value pairs -function split_bindings(bindings, binding_array, count, current, paren_count, i, c) { +function split_bindings(bindings, binding_array, count, current, paren_count, i, c) { count = 0 current = "" paren_count = 0 @@ -318,7 +318,7 @@ function split_bindings(bindings, binding_array, count, current, paren_count, } # Compiles let expressions (local variable bindings) -function compile_let(args, bindings, body, binding_array, nbindings, i, var, val, binding_parts) { +function compile_let(args, bindings, body, binding_array, nbindings, i, var, val, binding_parts) { # Split into bindings and body if (substr(args, 1, 1) != "(") error("Malformed let expression") @@ -369,7 +369,7 @@ function compile_let(args, bindings, body, binding_array, nbindings, i, var, } # Compiles define expressions (function/variable definitions) -function compile_define(args, name, params, body, param_array, nparams, i, paren_start, paren_end) { +function compile_define(args, name, params, body, param_array, nparams, i, paren_start, paren_end) { # Set flag for global definition print "PUSH_CONST B:1" print "STORE from_define" # Must match exactly what vm_store checks for diff --git a/awk/scheme/scheme/bin/vm.awk b/awk/scheme/scheme/bin/vm.awk index 0f0d955..1bd9db1 100755 --- a/awk/scheme/scheme/bin/vm.awk +++ b/awk/scheme/scheme/bin/vm.awk @@ -19,7 +19,7 @@ BEGIN { # Virtual machine registers stack_ptr = 0 # Points to top of evaluation stack heap_ptr = 0 # Points to next free heap location - pc = 0 # Program counter for instruction fetch + pc = 0 # Program counter for instruction fetch # Debug mode toggle DEBUG = 0 @@ -31,7 +31,7 @@ BEGIN { delete func_name # Function names delete func_pc # Entry points delete func_code # Function bodies - func_size = 0 # Number of defined functions + func_size = 0 # Number of defined functions # Call stack for function returns call_stack_ptr = 0 @@ -421,7 +421,7 @@ function vm_pop_env() { } # Variable lookup implementation -function vm_lookup(name, i, global_name) { +function vm_lookup(name, i, global_name) { debug("Looking up " name " in environment of size: " env_size) dump_env() @@ -464,7 +464,7 @@ function vm_define_function(name, start_pc) { } # Function call implementation -function vm_call_function(name, code_lines, j, saved_pc, saved_env_size, arg, param_name) { +function vm_call_function(name, code_lines, j, saved_pc, saved_env_size, arg, param_name) { debug("Calling function: " name) if (!(name in FUNCTIONS)) { |