render_part() method in recognizers.py module is not doing just plain template rendering.
It does, in order:
- Automatic Regex Conversion
- Template Rendering (with
regExis the only available/injected method in the context) - Variable Detection
| services: | |
| - port: 8081 | |
| endpoints: | |
| - path: "/example" | |
| response: "hello world" |
| Bytecode: | |
| [PC: 0] LII R0A 1 | |
| [PC: 3] LII R1A 2 | |
| [PC: 6] PUSH R1A | |
| [PC: 8] PUSH R0A | |
| [PC: 10] LII R0A 50 | |
| [PC: 13] PUSH R0A | |
| [PC: 15] LII R0A 3 | |
| [PC: 18] LII R1A 1 | |
| [PC: 21] PUSH R1A |
| def tak(x, y, z): | |
| if y < x: | |
| return tak( | |
| tak(x-1, y, z), | |
| tak(y-1, z, x), | |
| tak(z-1, x, y) | |
| ) | |
| else: | |
| return z |
| #line 3 "lex.yy.c" | |
| #define YY_INT_ALIGNED short int | |
| /* A lexical scanner generated by flex */ | |
| #define FLEX_SCANNER | |
| #define YY_FLEX_MAJOR_VERSION 2 | |
| #define YY_FLEX_MINOR_VERSION 6 |
| num def f1() | |
| num a = 101 | |
| return a | |
| end | |
| num def f2() | |
| num b = 102 | |
| return b | |
| end |
| interpreter/module.c(36):freeing 0x701000000020 &0x7ffd888a9d00 | |
| utilities/helpers.c(123):freeing 0x701000000a30 &0x7ffd888a9b58 | |
| interpreter/function.c(147):freeing 0x701000000a40 &0x7ffd888a9be8 | |
| interpreter/function.c(171):freeing 0x70a0000000a0 &0x262e100 | |
| utilities/helpers.c(123):freeing 0x701000000a80 &0x7ffd888a9b58 | |
| interpreter/function.c(147):freeing 0x701000000a90 &0x7ffd888a9be8 | |
| interpreter/function.c(171):freeing 0x70a0000000a0 &0x262e100 | |
| utilities/helpers.c(123):freeing 0x701000000ad0 &0x7ffd888a9b58 | |
| interpreter/function.c(147):freeing 0x701000000ae0 &0x7ffd888a9be8 | |
| interpreter/function.c(171):freeing 0x70a0000000a0 &0x262e100 |
| /* | |
| * Intermediate C source code generated by Chaos Programming Language | |
| * Language Reference: https://chaos-lang.org | |
| * | |
| * Filename: list.c | |
| */ | |
| #include <math.h> | |
| #include "list.h" |
| #!/bin/python3 | |
| import glob | |
| import subprocess | |
| import psutil | |
| def kill(proc_pid): | |
| process = psutil.Process(proc_pid) | |
| for proc in process.children(recursive=True): |
| diff --git a/interpreter/errors.c b/interpreter/errors.c | |
| index 53e082d..b0161dd 100644 | |
| --- a/interpreter/errors.c | |
| +++ b/interpreter/errors.c | |
| @@ -173,7 +173,7 @@ void throw_error_base(unsigned short code, char *str1, char *str2, long long lld | |
| exit(code); | |
| } else { | |
| #ifndef CHAOS_COMPILER | |
| - longjmp(InteractiveShellErrorAbsorber, 1); | |
| + absorbError(); |