Op Code written -------------------------------------------- :x none (defines label x; don't confuse with "d" which writes code) cx save regs, clear regs, call x, restore regs e set up stack frame upon rule entry r exit stack frame and return from rule ic read character c and set flag, or clear flag and back up if it's not c % read any character, store in reg 0, and set flag axy read a character into reg 0, set flag to whether it's in range x-y b back up a character if the flag is false n clear flag if EOF has been reached w skip "whitespace" (all characters <= 32) and comments (set by #) #c set line comment character to c (initially NUL '\0') ( set start of capture ) set end of capture [ push cursor (i.e. current input buffer position) onto stack | set cursor to position saved on top of stack (but do not pop it) ] pop (discard) topmost stack item -c subtract byte value of c from reg 0