/* * Axioms.java * Created on Apr 7, 2005 * */ package cs227b.teamIago.parser; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.logging.Logger; import cs227b.teamIago.resolver.ExpList; public class Axioms { /** * Logger for this class */ private static final Logger logger = Logger.getLogger(Axioms.class.getName()); ArrayList Statements = new ArrayList(); boolean parseFromString(String gdl){ boolean parseSuccess = true; // gdl = gdl.trim(); Tokenizer tk = new Tokenizer(gdl); while (tk.x < tk.numTokens()){ Statement s = new Statement(); if (s.parse(tk)) Statements.add(s); else { logger.severe("String - Error parsing token: " + tk.next() + " at line " + tk.sourceLine() + " - exception: " + null); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ parseSuccess = false; } } return parseSuccess; } void display() { for (int i = 0; i < Statements.size(); i++) { Statement s = (Statement) Statements.get(i); Statement.expand(s); } } public static String loadStringFromFile(String filename){ StringBuffer sb = new StringBuffer(); try{ BufferedReader br = new BufferedReader(new FileReader(filename)); String line; while((line=br.readLine())!=null){ line = line.trim(); sb.append(line + "\n"); // artificial EOLN marker } } catch (IOException e){ logger.severe("String - " + e); //$NON-NLS-1$ System.exit(-1); } return sb.toString(); } public static void main(String[] args){ // String filename; // if (args.length > 0) // filename = args[0]; // else filename = "../files/tictactoe.gdl"; // // System.err.print("Loading axioms..."); // String str = loadStringFromFile(filename); // Axioms a = new Axioms(); // boolean parsed = a.parseFromString(str); // if (!parsed) { // System.err.println("Errors encountered during parsing--aborting."); // System.exit(-1); // } // System.err.println("done."); // System.err.println("<List of axioms>"); // a.display(); // System.err.println("<End of axioms>"); Axioms a = new Axioms(); String str = "((mark 3 2) noop )"; ExpList e= Parser.parseExpList(str); } }