예제 #1
0
  /**
   * 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;
  }
예제 #2
0
파일: Learning.java 프로젝트: jhary82/ISys
  /**
   * 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);
    }
  }