blob: 7d50a9076b58b70b8aad07911fa1575b5192139e [file] [log] [blame]
package de.ids_mannheim.korap.query.parse.cosmas;
import java.io.*;
import org.antlr.runtime.*;
import org.antlr.runtime.debug.DebugEventSocketProxy;
import org.antlr.runtime.tree.*;
/* COSMAS II Plain Syntax (c2ps).
* lokale Grammatik für Optionen von #IN(Opts).
* 12.12.12/FB
*
* check(input): Input Bsp.: "#IN", "#IN()", "#IN(L)", "#IN(L,min,%)", etc.
*
* Opts nimmt eine oder mehrere, durch Kommata getrennte Optionen auf:
* - Bereichsoptionen: ALL, HIT, -.
* - Positionsoptionen: L, R, F, FE, FI, N, -.
* - Ausschließungsoptionen: %, -.
* - Gruppenbildungsoptionen: min, max, -.
* Für die Nutzung ohne Optionen steht Operator #IN zur Verfügung.
*/
public class c2ps_opIN
{
public static Tree check(String input, int index)
{
ANTLRStringStream
ss = new ANTLRStringStream(input);
c2ps_opINLexer
lex = new c2ps_opINLexer(ss);
CommonTokenStream tokens =
new CommonTokenStream(lex);
c2ps_opINParser
g = new c2ps_opINParser(tokens);
c2ps_opINParser.opIN_return
c2PQReturn = null;
/*
System.out.println("check opIN:" + index + ": " + input);
System.out.flush();
*/
try
{
c2PQReturn = g.opIN();
}
catch (RecognitionException e)
{
e.printStackTrace();
}
// AST Tree anzeigen:
Tree tree = (Tree)c2PQReturn.getTree();
// System.out.println("opIN: " + tree.toStringTree() );
return tree;
}
/*
* main: testprogram:
*/
public static void main(String args[]) throws Exception
{
String[]
input = {"#IN", "#IN()", "#IN(L)", "#IN(FE,min)", "#IN(R,%,max)", "#IN(FI,ALL)",
"#IN(FE,ALL,%,MIN)"};
Tree
tree;
System.out.println("Tests von #IN-Optionen:\n");
for(int i=0; i<input.length; i++)
{
tree = check(input[i], 0);
System.out.println("#IN: input: " + input[i]);
System.out.println("#IN: AST : " + tree.toStringTree() + "\n");
}
} // main
}