. "> > ;"assembler name (e.g. GRTR?, SUB)" ;"numeric opcode" ;"argspec. see examples." ;"C implementation (use names from argspec)" ;"unique name (e.g. GRTRB, SUBB)" )> > .i > <3 .ops> >) .results>> >>> > > .act>)> > "=" >> ",">> > > .act>)> >> ": return \"" > "\";" ,CR>> > > )> result> ");" ,CR>) (ELSE > BYTE> >> " = p[" "];" ,CR>) (<==? <2 <1 .args>> OFFSET> >> " = (int8_t)p[" "];" ,CR>) (<==? <2 <1 .args>> FIX> >> " = GETFIX(bp[p[" "]]);" ,CR>) >)>>> > > > ) "NAME" act) .act>)> > ": {" ,CR >> "const uint8_t * const oldp = p;" ,CR "p += " >>>> !\; ,CR > ,CR "break;" ,CR !\} ,CR>> > > ) (s "\"<%s") "NAME" act) \\n\""> .act>)> result> "%hhi") (ELSE > BYTE> "%hhu") (<==? <2 <1 .args>> OFFSET> "%hhi") (<==? <2 <1 .args>> FIX> "fix%hhu")>)>>> > > "\"">) (i 0) (n >)) )> > "]">> >> ) "NAME" act) .act>)> >> ": " ,CR "if (inlen < " >>> ") { return EBADOPARGS; };" ,CR "*buf += snprintf(*buf, outlen, " > "(*p)"> ");" ,CR "*p += " >>> ";" ,CR "return 0;" ,CR>> > > rhs)) JUMP(offs);" SUB (SUB (x FIX) (y FIX) result) SUBB (SUB (x FIX) (rhs BYTE) result) MUL (MUL (x FIX) (y FIX) result) HALT (HALT) "return;">> > > > ;> > > ;> >