1 /*
   2  * Permission is hereby granted, free of charge, to any person obtaining a copy of
   3  * this software and associated documentation files (the "Software"), to deal in
   4  * the Software without restriction, including without limitation the rights to
   5  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
   6  * of the Software, and to permit persons to whom the Software is furnished to do
   7  * so, subject to the following conditions:
   8  *
   9  * The above copyright notice and this permission notice shall be included in all
  10  * copies or substantial portions of the Software.
  11  *
  12  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  13  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  14  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  15  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  16  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  17  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  18  * SOFTWARE.
  19  */
  20 package jdk.nashorn.internal.joni.constants;
  21 
  22 public interface StackType {
  23     /** stack **/
  24     final int INVALID_STACK_INDEX           = -1;
  25 
  26     /* stack type */
  27     /* used by normal-POP */
  28     final int ALT                           = 0x0001;
  29     final int LOOK_BEHIND_NOT               = 0x0002;
  30     final int POS_NOT                       = 0x0003;
  31     /* handled by normal-POP */
  32     final int MEM_START                     = 0x0100;
  33     final int MEM_END                       = 0x8200;
  34     final int REPEAT_INC                    = 0x0300;
  35     final int STATE_CHECK_MARK              = 0x1000;
  36     /* avoided by normal-POP */
  37     final int NULL_CHECK_START              = 0x3000;
  38     final int NULL_CHECK_END                = 0x5000;  /* for recursive call */
  39     final int MEM_END_MARK                  = 0x8400;
  40     final int POS                           = 0x0500;  /* used when POP-POS */
  41     final int STOP_BT                       = 0x0600;  /* mark for "(?>...)" */
  42     final int REPEAT                        = 0x0700;
  43     final int CALL_FRAME                    = 0x0800;
  44     final int RETURN                        = 0x0900;
  45     final int VOID                          = 0x0a00;  /* for fill a blank */
  46 
  47     /* stack type check mask */
  48     final int MASK_POP_USED                 = 0x00ff;
  49     final int MASK_TO_VOID_TARGET           = 0x10ff;
  50     final int MASK_MEM_END_OR_MARK          = 0x8000;  /* MEM_END or MEM_END_MARK */
  51 }