1 package edu.uci.eecs.specCompiler.codeGenerator;
3 public class IDExtractor {
7 private int idBeginIdx, idEndIdx;
9 public IDExtractor(String code) {
14 public IDExtractor(String code, int beginIdx) {
16 this.index = beginIdx;
19 public void reset(int beginIdx) {
20 this.index = beginIdx;
27 public int getIDBeginIdx() {
28 return this.idBeginIdx;
31 public int getIDEndIdx() {
35 public int lineNumOfID() {
37 for (int i = 0; i < idBeginIdx; i++) {
38 if (code.charAt(i) == '\n')
44 public int lineBeginIdxOfID() {
46 for (i = idBeginIdx - 1; i >= 0; i--) {
47 if (code.charAt(i) == '\n')
53 public int lineEndIdxOfID() {
55 for (i = idEndIdx + 1; i < code.length(); i++) {
56 if (code.charAt(i) == '\n') {
63 public String getPrevID() {
68 ch = code.charAt(endIdx);
69 if ((ch == '_' || (ch >= 'a' && ch <= 'z') || ch >= 'A'
77 ch = code.charAt(beginIdx);
78 if (!((ch == '_' || (ch >= 'a' && ch <= 'z') || ch >= 'A'
85 if (beginIdx > endIdx)
87 idBeginIdx = beginIdx + 1;
89 return code.substring(beginIdx + 1, endIdx + 1);
92 public String getNextID() {
97 ch = code.charAt(beginIdx);
98 if ((ch == '_' || (ch >= 'a' && ch <= 'z') || ch >= 'A'
106 ch = code.charAt(endIdx);
107 if (!((ch == '_' || (ch >= 'a' && ch <= 'z') || ch >= 'A'
114 if (beginIdx > endIdx)
116 idBeginIdx = beginIdx;
117 idEndIdx = endIdx - 1;
118 return code.substring(beginIdx, endIdx);