|
21 | 21 | import org.piccode.rt.PiccodeBoolean; |
22 | 22 | import org.piccode.rt.PiccodeException; |
23 | 23 | import org.piccode.rt.PiccodeReturnException; |
24 | | -import org.piccode.rt.PiccodeString; |
25 | 24 | import org.piccode.rt.PiccodeUnit; |
26 | 25 | import org.piccode.rt.PiccodeValue; |
27 | 26 | import org.piccode.rt.PiccodeWarning; |
|
44 | 43 | */ |
45 | 44 | public class Compiler { |
46 | 45 |
|
| 46 | + private static List<Runnable> nativeFunctions = new ArrayList<>(); |
| 47 | + |
47 | 48 | public static PiccodeValue compile(String file, String code) { |
48 | 49 | return compile(file, code, List.of()); |
49 | 50 | } |
@@ -150,19 +151,22 @@ public static void prepareGlobalScope(String file, String globalScopeName) { |
150 | 151 | addSystemFunctions(); |
151 | 152 | } |
152 | 153 |
|
| 154 | + public static void addNativeFunctions(Runnable funcs) { |
| 155 | + funcs.run(); |
| 156 | + } |
153 | 157 | private static void addSystemFunctions() { |
154 | | - PiccodeIOModule.addFunctions(); |
155 | | - PiccodeArrayModule.addFunctions(); |
156 | | - PiccodeStringModule.addFunctions(); |
157 | | - PiccodeTupleModule.addFunctions(); |
158 | | - PiccodeMathModule.addFunctions(); |
159 | | - PiccodeSystemModule.addFunctions(); |
160 | | - PiccodeTimeModule.addFunctions(); |
161 | | - PiccodeTypesModule.addFunctions(); |
162 | | - PiccodeVirtualModule.addFunctions(); |
163 | | - PiccodeFileModule.addFunctions(); |
164 | | - PiccodeFsModule.addFunctions(); |
165 | | - PiccodeObjectModule.addFunctions(); |
| 158 | + addNativeFunctions(PiccodeIOModule::addFunctions); |
| 159 | + addNativeFunctions(PiccodeArrayModule::addFunctions); |
| 160 | + addNativeFunctions(PiccodeStringModule::addFunctions); |
| 161 | + addNativeFunctions(PiccodeTupleModule::addFunctions); |
| 162 | + addNativeFunctions(PiccodeMathModule::addFunctions); |
| 163 | + addNativeFunctions(PiccodeSystemModule::addFunctions); |
| 164 | + addNativeFunctions(PiccodeTimeModule::addFunctions); |
| 165 | + addNativeFunctions(PiccodeTypesModule::addFunctions); |
| 166 | + addNativeFunctions(PiccodeVirtualModule::addFunctions); |
| 167 | + addNativeFunctions(PiccodeFileModule::addFunctions); |
| 168 | + addNativeFunctions(PiccodeFsModule::addFunctions); |
| 169 | + addNativeFunctions(PiccodeObjectModule::addFunctions); |
166 | 170 |
|
167 | 171 | Context.addAnnotation("Deprecated", (frame, node) -> { |
168 | 172 | var warning = new PiccodeWarning(node.file, node.line, node.column, "Invocation of a deprecated function"); |
|
0 commit comments