package de.unisiegen.gtitool.core.parser; import de.unisiegen.gtitool.core.entities.Alphabet; import de.unisiegen.gtitool.core.entities.DefaultRegexAlphabet; import de.unisiegen.gtitool.core.entities.DefaultSymbol; import de.unisiegen.gtitool.core.entities.DefaultTransition; import de.unisiegen.gtitool.core.entities.Symbol; import de.unisiegen.gtitool.core.entities.Word; import de.unisiegen.gtitool.core.entities.regex.LeafNode; import de.unisiegen.gtitool.core.entities.regex.RegexNode; import de.unisiegen.gtitool.core.parser.alphabet.AlphabetParseable; import de.unisiegen.gtitool.core.parser.regex.RegexParseable; import de.unisiegen.gtitool.core.parser.regexalphabet.RegexAlphabetParseable; import de.unisiegen.gtitool.core.parser.symbol.SymbolParseable; import de.unisiegen.gtitool.core.parser.transition.TransitionParseable; import de.unisiegen.gtitool.core.parser.word.WordParseable; import de.unisiegen.gtitool.core.regex.DefaultRegex; /** * The test class of the parser. * * @author Christian Fehler * @author Simon Meurer * @version $Id$ */ @SuppressWarnings ( { "all" } ) public class ParserTest { public static void main ( String [] arguments ) { /* * Alphabet */ AlphabetParseable alphabetParseable = new AlphabetParseable (); String alphabetText = "Z,[a-z],[0-9], A, B"; try { Alphabet alphabet = ( Alphabet ) alphabetParseable.newParser ( alphabetText ).parse (); System.out.println ( alphabet ); } catch ( Exception e ) { e.printStackTrace (); } /* * Symbol */ SymbolParseable symbolParseable = new SymbolParseable (); String symbolText = "a"; try { Symbol symbol = ( Symbol ) symbolParseable.newParser ( symbolText ) .parse (); System.out.println ( symbol ); } catch ( Exception e ) { e.printStackTrace (); } /* * Word */ WordParseable wordParseable = new WordParseable (); String wordText = "abba"; try { Word word = ( Word ) wordParseable.newParser ( wordText ).parse (); System.out.println ( word ); } catch ( Exception e ) { e.printStackTrace (); } /* * Regex */ RegexParseable regexParseable = new RegexParseable (); String regexText = "[a-w]·l"; try { RegexNode regex = ( RegexNode ) regexParseable.newParser ( regexText ) .parse (); DefaultRegex conv = new DefaultRegex ( new DefaultRegexAlphabet ( new DefaultSymbol ( "a" ), new DefaultSymbol ( "b" ), new DefaultSymbol ( "c" ), new DefaultSymbol ( "d" ) ) ); conv.setRegexNode ( regex.toCoreSyntax ( true ), regex.toCoreSyntax ( true ).toString () ); System.out.println ( conv.getRegexNode () ); String firstpos = ""; for ( RegexNode current : regex.firstPos () ) { if ( firstpos.length () > 0 ) { firstpos += ";"; } if ( current instanceof LeafNode ) { firstpos += ( ( LeafNode ) current ).getPosition (); } } System.out.println ( "FirstPos: {" + firstpos + "}" ); String lastpos = ""; for ( RegexNode current : regex.lastPos () ) { if ( lastpos.length () > 0 ) { lastpos += ";"; } lastpos += ( ( LeafNode ) current ).getPosition (); } System.out.println ( "LastPos: {" + lastpos + "}" ); RegexNode coreSyntax = regex.toCoreSyntax ( true ); System.out.println ( "ToCoreSyntax:" + coreSyntax.toString () ); String followPos = ""; for ( Integer current : conv.followPos ( 1 ) ) { if ( followPos.length () > 0 ) { followPos += ";"; } followPos += current; } System.out.println ( "FollowPos(1): {" + followPos + "}" ); } catch ( Exception e ) { e.printStackTrace (); } // Transitions try { String transitionText = "{2,Z, [3-6],A,[a-z]}"; TransitionParseable tp = new TransitionParseable (); DefaultTransition t = ( DefaultTransition ) tp .newParser ( transitionText ).parse (); System.out.println ( t.toString () ); } catch ( Exception e ) { e.printStackTrace (); } // Transitions try { String regexAlphabetString = "{1,[a-z],2 }"; RegexAlphabetParseable rap = new RegexAlphabetParseable (); DefaultRegexAlphabet t = ( DefaultRegexAlphabet ) rap.newParser ( regexAlphabetString ).parse (); System.out.println ( t.toString () ); } catch ( Exception e ) { e.printStackTrace (); } } }