1 6 7 package analyzer.listeners; 8 9 import java.io.StreamTokenizer ; 10 11 24 public abstract class TCRParser extends Parser { 25 26 boolean editor; 27 28 29 public TCRParser(String pathAndTS) { 30 super(pathAndTS+".TCR.log"); 31 } 32 33 protected void analyzeTokenInput() throws SyntaxException{ 34 nextNUMBER(); 35 timestamp=new Double (st.nval).longValue(); 36 caseProperty(); 37 } 38 39 private void caseProperty() throws SyntaxException{ 40 nextWORD(); 41 if(svalIs("opened")){ 42 caseOpenClose(); 43 } else if(svalIs("activated")){ 44 String s=caseWindow(); 45 if(s!=null)analyzeActivated(s,editor); 46 } else if(svalIs("activatedNodes")){ 47 caseNodes(); 48 } else if(svalIs("NBGAINEDFOCUS")){ 49 analyzeGAINED(); 50 } else if(svalIs("NBLOSTFOCUS")){ 51 analyzeLOST(); 52 } else { 53 throw(new SyntaxException("skipped: "+st.sval)); 54 } 55 } 56 57 private void caseOpenClose() throws SyntaxException{ 58 String s; 59 nextWORD(); 60 if(svalIs("opening")){ 61 s=caseWindow(); 62 analyzeOpen(s,editor); 63 } else if(svalIs("closing")){ 64 s=caseWindow(); 65 analyzeClose(s,editor); 66 } else if(svalIs("exception")){ 67 throw(new SyntaxException("")); 68 } else { 69 throw(new SyntaxException("unexpected token open/close:"+st.sval)); 70 } 71 } 72 73 private String caseWindow() throws SyntaxException{ 74 nextWORD(); 75 if(svalIs("editor")){ 76 editor=true; 77 nextWORD(); 78 } else editor=false; 79 return st.sval; 80 } 81 82 private void caseNodes() throws SyntaxException{ 83 String p,s; 84 nextWORD(); 85 while(st.ttype==WORD){ 86 if(!svalIs("parent")) throw(new SyntaxException("no parent "+st.sval)); 87 nextWORD(); 88 p=st.sval; 89 nextWORD(); 90 if(!svalIs("node"))throw(new SyntaxException("node name not found")); 91 nextWORD(); 92 s=st.sval; 93 analyzeNode(p,s); 94 next(); 95 } 96 st.pushBack(); 98 } 99 100 101 104 abstract protected void eof(); 105 106 109 abstract protected void init(); 110 111 abstract protected void analyzeNode(String parent, String node); 112 113 abstract protected void analyzeOpen(String windowId, boolean editor); 114 115 abstract protected void analyzeClose(String windowId , boolean editor); 116 117 abstract protected void analyzeActivated(String windowId, boolean editor); 118 119 abstract protected void analyzeGAINED(); 120 121 abstract protected void analyzeLOST(); 122 123 } 124 | Popular Tags |