1 29 package org.jruby.lexer.yacc; 30 31 35 public class StackState implements Cloneable { 36 private long stack = 0; 37 38 public void reset() { 39 reset(0); 40 } 41 42 public void reset(long backup) { 43 stack = backup; 44 } 45 46 public long begin() { 47 long old = stack; 48 stack <<= 1; 49 stack |= 1; 50 return old; 51 } 52 53 public void end() { 54 stack >>= 1; 55 } 56 57 public void stop() { 58 stack <<= 1; 59 } 60 61 public void restart() { 62 stack |= (stack & 1) << 1; 63 stack >>= 1; 64 } 65 66 public boolean isInState() { 67 return (stack & 1) != 0; 68 } 69 } 70 | Popular Tags |