Sha256: 76ccc2351ebd9f2ac162c18d20c18185778becc3fe4ed829d239ecad4867b677
Contents?: true
Size: 1.63 KB
Versions: 33
Compression:
Stored size: 1.63 KB
Contents
/* ** $Id: lpvm.h,v 1.3 2014/02/21 13:06:41 roberto Exp $ */ #if !defined(lpvm_h) #define lpvm_h #include "lpcap.h" /* Virtual Machine's LpegInstructions */ typedef enum Opcode { IAny, /* if no char, fail */ IChar, /* if char != aux, fail */ ISet, /* if char not in buff, fail */ ITestAny, /* in no char, jump to 'offset' */ ITestChar, /* if char != aux, jump to 'offset' */ ITestSet, /* if char not in buff, jump to 'offset' */ ISpan, /* read a span of chars in buff */ IBehind, /* walk back 'aux' characters (fail if not possible) */ IRet, /* return from a rule */ IEnd, /* end of pattern */ IChoice, /* stack a choice; next fail will jump to 'offset' */ IJmp, /* jump to 'offset' */ ICall, /* call rule at 'offset' */ IOpenCall, /* call rule number 'key' (must be closed to a ICall) */ ICommit, /* pop choice and jump to 'offset' */ IPartialCommit, /* update top choice to current position and jump */ IBackCommit, /* "fails" but jump to its own 'offset' */ IFailTwice, /* pop one choice and then fail */ IFail, /* go back to saved state on choice and jump to saved offset */ IGiveup, /* internal use */ IFullCapture, /* complete capture of last 'off' chars */ IOpenCapture, /* start a capture */ ICloseCapture, ICloseRunTime } Opcode; typedef union LpegInstruction { struct Inst { byte code; byte aux; short key; } i; int offset; byte buff[1]; } LpegInstruction; void printpatt (LpegInstruction *p, int n); const char *lpeg_match (lua_State *L, const char *o, const char *s, const char *e, LpegInstruction *op, Capture *capture, int ptop); #endif
Version data entries
33 entries across 33 versions & 1 rubygems