Example #1
0
void Expression(CPU &cpu, IO &io, struct Unit &unit){
    Term(cpu, io, unit);
    io.skipWhitespace();
    {
expression_start:
        if(io.peek('+'))
            io.callWithPushNumber<Add>(cpu, "Expression", unit);
        else if(io.peek('-'))
            io.callWithPushNumber<Subtract>(cpu, "Expression", unit);
        else {
            io.skipWhitespace();
            return;
        }
        io.skipWhitespace();
        goto expression_start;
    }
}
Example #2
0
void Subtract(CPU &cpu, IO &io, Unit &unit){
    io.match('-');
    io.skipWhitespace();
    Term(cpu, io, unit);
    io.emitLine(cpu.subtract("Subtract"));
}
Example #3
0
void Add(CPU &cpu, IO &io, Unit &unit){
    io.match('+');
    io.skipWhitespace();
    Term(cpu, io, unit);
    io.emitLine(cpu.add("Add"));
}