1 package edu.uci.eecs.specCompiler.specExtraction;
3 import java.io.BufferedWriter;
5 import java.io.FileWriter;
6 import java.io.IOException;
7 import java.util.ArrayList;
9 import edu.uci.eecs.specCompiler.codeGenerator.Environment;
10 import edu.uci.eecs.specCompiler.codeGenerator.SemanticsChecker;
11 import edu.uci.eecs.specCompiler.grammerParser.ParseException;
12 import edu.uci.eecs.specCompiler.grammerParser.SpecParser;
14 public class ParserUtils {
15 public static String trimSpace(String line) {
18 for (i = 0; i < line.length(); i++) {
20 if (ch != ' ' && ch != '\t')
23 for (j = line.length() - 1; j >= 0; j--) {
25 if (ch != ' ' && ch != '\t')
31 return line.substring(i, j + 1);
34 public static String array2Str(ArrayList code) {
35 StringBuilder sb = new StringBuilder();
36 for (int i = 0; i < code.size(); i++) {
37 sb.append(code.get(i) + "\n");
42 public static String getClassName(String classDefineLine) {
43 IDExtractor extractor = new IDExtractor(classDefineLine,
44 classDefineLine.length() - 1);
45 return extractor.getPrevID();
48 public static String getTemplateStr(String templateLine) {
49 String templateStr = null;
51 ArrayList<VariableDeclaration> templateArgs = SpecParser.getTemplateArg(templateLine);
52 templateStr = "<" + templateArgs.get(0).name;
53 for (int i = 1; i < templateArgs.size(); i++) {
54 templateStr = templateStr + ", " + templateArgs.get(i);
56 templateStr = templateStr + ">";
57 } catch (ParseException e) {
63 public static void write2File(File file, ArrayList<String> content) {
64 String newFileName = Environment.GENERATED_FILE_DIR + "/" + file.getName();
65 File newFile = new File(newFileName);
66 newFile.getParentFile().mkdirs();
67 if (!newFile.exists()) {
69 newFile.createNewFile();
70 } catch (IOException e) {
75 BufferedWriter bw = new BufferedWriter(new FileWriter(newFile));
76 for (int i = 0; i < content.size(); i++) {
77 bw.write(content.get(i) + "\n");
80 } catch (IOException e) {