/** * Parst einen Text und erstellt eine Liste mit Eigenschaften * * @param text - zu parsender Text * @return Liste mit Texteigenschaften */ public List<Integer> parseText(File text) { CharStream input = null; BufferedReader reader; try { reader = new BufferedReader(new InputStreamReader(new FileInputStream(text))); input = new ANTLRInputStream(reader); } catch (IOException e) { e.printStackTrace(); } SyntaxLexer lexer = new SyntaxLexer(input); CommonTokenStream tokens = new CommonTokenStream(lexer); SyntaxParser parser = new SyntaxParser(tokens); ParseTree tree = parser.stat(); ParseTreeWalker walker = new ParseTreeWalker(); // create standard walker List<Integer> list = new LinkedList<>(); AnalysisListener extractor = new AnalysisListener(list); walker.walk(extractor, tree); return list; }
/** * Mit dieser Methode werden die Merkmale aus den Texte herausgelesen und in eine CSV-Datei * gespeichert. * * @param texte - Eine Liste von Texten die Analysiert werden sollen. * @param name - Name der CSV-Datei. */ private static void texteEinlesen(File[] texte, String name) { CharStream input = null; BufferedReader reader; for (int i = 0; i < texte.length; i++) { try { reader = new BufferedReader(new InputStreamReader(new FileInputStream(texte[i]))); input = new ANTLRInputStream(reader); } catch (IOException e) { e.printStackTrace(); } SyntaxLexer lexer = new SyntaxLexer(input); CommonTokenStream tokens = new CommonTokenStream(lexer); SyntaxParser parser = new SyntaxParser(tokens); ParseTree tree = parser.stat(); ParseTreeWalker walker = new ParseTreeWalker(); // create standard // walker List<Integer> list = new LinkedList<>(); AnalysisListener extractor = new AnalysisListener(list); walker.walk(extractor, tree); saveToCSV(name, list); } }