1 package org.antlr.works.debugger.tivo; 2 3 import java.util.Stack ; 4 34 35 public class DBPlayerContextInfo { 36 37 public Stack <Integer > subrule = new Stack <Integer >(); 38 public Stack <Integer > decision = new Stack <Integer >(); 39 public Stack <Integer > mark = new Stack <Integer >(); 40 public Stack <Integer > backtrack = new Stack <Integer >(); 41 42 public void enterSubrule(int i) { 43 subrule.push(i); 44 } 45 46 public void exitSubrule() { 47 subrule.pop(); 48 } 49 50 public int getSubrule() { 51 return getPeekValue(subrule); 52 } 53 54 public void enterDecision(int i) { 55 decision.push(i); 56 } 57 58 public void exitDecision() { 59 decision.pop(); 60 } 61 62 public int getDecision() { 63 return getPeekValue(decision); 64 } 65 66 public void mark(int i) { 67 mark.push(i); 68 } 69 70 public void rewind() { 71 mark.pop(); 72 } 73 74 public int getMark() { 75 return getPeekValue(mark); 76 } 77 78 public void beginBacktrack(int level) { 79 backtrack.push(level); 80 } 81 82 public void endBacktrack() { 83 backtrack.pop(); 84 } 85 86 public int getBacktrack() { 87 return getPeekValue(backtrack); 88 } 89 90 public boolean isBacktracking() { 91 return !backtrack.isEmpty(); 92 } 93 94 public int getPeekValue(Stack <Integer > s) { 95 if(s.isEmpty()) 96 return -1; 97 else 98 return s.peek(); 99 } 100 101 public void clear() { 102 subrule.clear(); 103 decision.clear(); 104 mark.clear(); 105 backtrack.clear(); 106 } 107 } 108 | Popular Tags |