Initial wasm simulator checkpoint

This commit is contained in:
CNC Local
2026-05-22 04:43:21 +08:00
commit 55d9fff9f0
54 changed files with 5523 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
#include "gcode_backend.h"
#ifdef CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND
#include "linuxcnc_rs274_backend.h"
#endif
#include "smoke_gcode_parser.h"
const char *gcode_backend_name(GcodeBackendKind backend) {
switch (backend) {
case GcodeBackendKind::Smoke:
return "smoke";
case GcodeBackendKind::LinuxCncRs274:
return "linuxcnc-rs274";
default:
return "unknown";
}
}
int parse_gcode_with_backend(GcodeBackendKind backend,
CanonEventSink &sink,
const char *program,
size_t program_len,
std::string *error) {
switch (backend) {
case GcodeBackendKind::Smoke: {
SmokeGcodeParser parser(sink);
return parser.parse(program, program_len, error);
}
case GcodeBackendKind::LinuxCncRs274:
#ifdef CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND
return parse_linuxcnc_rs274_backend(sink, program, program_len, error);
#else
if (error) {
*error = "linuxcnc-rs274 backend is not compiled into this build";
}
return -1;
#endif
default:
if (error) {
*error = "unknown G-code backend";
}
return -1;
}
}