home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / regcomp.sym < prev    next >
Text File  |  1999-08-01  |  6KB  |  135 lines

  1. # Format:
  2. # NAME \t TYPE, arg-description [num-args] [longjump-len] \t DESCRIPTION
  3.  
  4. # Empty rows and #-comment rows are ignored.
  5.  
  6. # Exit points
  7. END        END,    no    End of program.
  8. SUCCEED        END,    no    Return from a subroutine, basically.
  9.  
  10. # Anchors:
  11. BOL        BOL,    no    Match "" at beginning of line.
  12. MBOL        BOL,    no    Same, assuming multiline.
  13. SBOL        BOL,    no    Same, assuming singleline.
  14. EOS        EOL,    no    Match "" at end of string.
  15. EOL        EOL,    no    Match "" at end of line.
  16. MEOL        EOL,    no    Same, assuming multiline.
  17. SEOL        EOL,    no    Same, assuming singleline.
  18. BOUND        BOUND,  no    Match "" at any word boundary
  19. BOUNDUTF8    BOUND,  no    Match "" at any word boundary
  20. BOUNDL        BOUND,  no    Match "" at any word boundary
  21. BOUNDLUTF8    BOUND,  no    Match "" at any word boundary
  22. NBOUND        NBOUND, no    Match "" at any word non-boundary
  23. NBOUNDUTF8    NBOUND, no    Match "" at any word non-boundary
  24. NBOUNDL        NBOUND, no    Match "" at any word non-boundary
  25. NBOUNDLUTF8    NBOUND, no    Match "" at any word non-boundary
  26. GPOS        GPOS,   no    Matches where last m//g left off.
  27.  
  28. # [Special] alternatives
  29. REG_ANY        REG_ANY,    no    Match any one character (except newline).
  30. ANYUTF8        REG_ANY,    no    Match any one Unicode character (except newline).
  31. SANY        REG_ANY,    no    Match any one character.
  32. SANYUTF8    REG_ANY,    no    Match any one Unicode character.
  33. ANYOF        ANYOF,  sv    Match character in (or not in) this class.
  34. ANYOFUTF8    ANYOF,  sv 1    Match character in (or not in) this class.
  35. ALNUM        ALNUM,  no    Match any alphanumeric character
  36. ALNUMUTF8    ALNUM,  no    Match any alphanumeric character in utf8
  37. ALNUML        ALNUM,  no    Match any alphanumeric char in locale
  38. ALNUMLUTF8    ALNUM,  no    Match any alphanumeric char in locale+utf8
  39. NALNUM        NALNUM, no    Match any non-alphanumeric character
  40. NALNUMUTF8    NALNUM, no    Match any non-alphanumeric character in utf8
  41. NALNUML        NALNUM, no    Match any non-alphanumeric char in locale
  42. NALNUMLUTF8    NALNUM, no    Match any non-alphanumeric char in locale+utf8
  43. SPACE        SPACE,  no    Match any whitespace character
  44. SPACEUTF8    SPACE,  no    Match any whitespace character in utf8
  45. SPACEL        SPACE,  no    Match any whitespace char in locale
  46. SPACELUTF8    SPACE,  no    Match any whitespace char in locale+utf8
  47. NSPACE        NSPACE, no    Match any non-whitespace character
  48. NSPACEUTF8    NSPACE, no    Match any non-whitespace character in utf8
  49. NSPACEL        NSPACE, no    Match any non-whitespace char in locale
  50. NSPACELUTF8    NSPACE, no    Match any non-whitespace char in locale+utf8
  51. DIGIT        DIGIT,  no    Match any numeric character
  52. DIGITUTF8    DIGIT,  no    Match any numeric character in utf8
  53. DIGITL        DIGIT,  no    Match any numeric character in locale
  54. DIGITLUTF8    DIGIT,  no    Match any numeric character in locale+utf8
  55. NDIGIT        NDIGIT, no    Match any non-numeric character
  56. NDIGITUTF8    NDIGIT, no    Match any non-numeric character in utf8
  57. NDIGITL        NDIGIT, no    Match any non-numeric character in locale
  58. NDIGITLUTF8    NDIGIT, no    Match any non-numeric character in locale+utf8
  59. CLUMP        CLUMP,  no    Match any combining character sequence
  60.  
  61. # BRANCH    The set of branches constituting a single choice are hooked
  62. #        together with their "next" pointers, since precedence prevents
  63. #        anything being concatenated to any individual branch.  The
  64. #        "next" pointer of the last BRANCH in a choice points to the
  65. #        thing following the whole choice.  This is also where the
  66. #        final "next" pointer of each individual branch points; each
  67. #        branch starts with the operand node of a BRANCH node.
  68. #
  69. BRANCH        BRANCH, node    Match this alternative, or the next...
  70.  
  71. # BACK        Normal "next" pointers all implicitly point forward; BACK
  72. #        exists to make loop structures possible.
  73. # not used
  74. BACK        BACK,   no    Match "", "next" ptr points backward.
  75.  
  76. # Literals
  77. EXACT        EXACT,  sv    Match this string (preceded by length).
  78. EXACTF        EXACT,  sv    Match this string, folded (prec. by length).
  79. EXACTFL        EXACT,  sv    Match this string, folded in locale (w/len).
  80.  
  81. # Do nothing
  82. NOTHING        NOTHING,no    Match empty string.
  83. # A variant of above which delimits a group, thus stops optimizations
  84. TAIL        NOTHING,no    Match empty string. Can jump here from outside.
  85.  
  86. # STAR,PLUS    '?', and complex '*' and '+', are implemented as circular
  87. #        BRANCH structures using BACK.  Simple cases (one character
  88. #        per match) are implemented with STAR and PLUS for speed
  89. #        and to minimize recursive plunges.
  90. #
  91. STAR        STAR,   node    Match this (simple) thing 0 or more times.
  92. PLUS        PLUS,   node    Match this (simple) thing 1 or more times.
  93.  
  94. CURLY        CURLY,  sv 2    Match this simple thing {n,m} times.
  95. CURLYN        CURLY,  no 2    Match next-after-this simple thing 
  96. #                {n,m} times, set parenths.
  97. CURLYM        CURLY,  no 2    Match this medium-complex thing {n,m} times.
  98. CURLYX        CURLY,  sv 2    Match this complex thing {n,m} times.
  99.  
  100. # This terminator creates a loop structure for CURLYX
  101. WHILEM        WHILEM, no    Do curly processing and see if rest matches.
  102.  
  103. # OPEN,CLOSE,GROUPP    ...are numbered at compile time.
  104. OPEN        OPEN,   num 1    Mark this point in input as start of #n.
  105. CLOSE        CLOSE,  num 1    Analogous to OPEN.
  106.  
  107. REF        REF,    num 1    Match some already matched string
  108. REFF        REF,    num 1    Match already matched string, folded
  109. REFFL        REF,    num 1    Match already matched string, folded in loc.
  110.  
  111. # grouping assertions
  112. IFMATCH        BRANCHJ,off 1 2    Succeeds if the following matches.
  113. UNLESSM        BRANCHJ,off 1 2    Fails if the following matches.
  114. SUSPEND        BRANCHJ,off 1 1    "Independent" sub-RE.
  115. IFTHEN        BRANCHJ,off 1 1    Switch, should be preceeded by switcher .
  116. GROUPP        GROUPP, num 1    Whether the group matched.
  117.  
  118. # Support for long RE
  119. LONGJMP        LONGJMP,off 1 1    Jump far away.
  120. BRANCHJ        BRANCHJ,off 1 1    BRANCH with long offset.
  121.  
  122. # The heavy worker
  123. EVAL        EVAL,   evl 1    Execute some Perl code.
  124.  
  125. # Modifiers
  126. MINMOD        MINMOD, no    Next operator is not greedy.
  127. LOGICAL        LOGICAL,no    Next opcode should set the flag only.
  128.  
  129. # This is not used yet
  130. RENUM        BRANCHJ,off 1 1    Group with independently numbered parens.
  131.  
  132. # This is not really a node, but an optimized away piece of a "long" node.
  133. # To simplify debugging output, we mark it as if it were a node
  134. OPTIMIZED    NOTHING,off    Placeholder for dump.
  135.