After seeing the motion control functions in DoMore BRX I think you could write an interpreter fairly easily. Years ago I wrote what I called G-code in a DL205, but it stood for Growbot. It allowed operators to write a sequence of operations for multiple tasks using an Opcode and data.
I do G-code programming and it really is just 4 functions. G0 rapid from current location to some point no path control. G1 move from here to a point with a specified feedrate and linear interpolation of the path. G2 feed rate, end point, center and circular interpolation to the right. G3 the same as G2 to the left. Most of the rest of the G-codes do things like determine whether a move is incremental or absolute mode from an origin, fixture offsets etc.
G70 & G80 range commands are modal, they stay active until can canceled by a G80 and do things like drill cycles, peck cycles, pockets.
M codes are used to start & stop the spindle, blow off air, coolant, clamps, that kind of thing.
The code is in a simple ascii file with one command and parameters per line, as needed by the command. So you need file parser that just calls subprograms or tasks for each function. DoMore is kind of perfect for this.
I ran an old CNC controller whose only user interface was two digital data displays, and pilot lights for G, M, N for line numbers! You can get away without a fancy display if you use a CAM program to write the code. CamBam for $149 would do a great job.