options { STATIC = false; IGNORE_CASE = false; } PARSER_BEGIN(WordNetParser) import java.io.*; public class WordNetParser { public static void main(String args[]) throws ParseException, TokenMgrError { if (args.length < 1) { System.err.println("\nUsage: app input_file first_data_ptr\n"); System.exit(1); } try { FileInputStream fio = new FileInputStream(args[0]); WordNetParser interpreter = new WordNetParser(fio); interpreter.Start(); } catch (Exception exp) { exp.printStackTrace(); } } } PARSER_END(WordNetParser) /* SKIP : { " " | "\t" | "\r" } */ TOKEN : { < #EOL : "\n" > } TOKEN : { < #SPC : (" ")+ > } TOKEN : { < #LINE_NUM : (["1"-"9"]) (){0,2} > } TOKEN : { < #NUMBER_DIG8 : (["0"-"9"]){8} > } TOKEN : { < #NUMBER_DIG3 : (["0"-"9"]){3} > } TOKEN : { < #NUMBER_DIG2 : (["0"-"9"]){2} > } TOKEN : { < #NUMBER_DIG1 : (["0"-"9"]) > } TOKEN : { < #NUMBER_HEXDIG1 : (["0"-"9", "a"-"f"]) > } TOKEN : { < #NUMBER_HEXDIG2 : (){2} > } TOKEN : { < #SS_TYPE : ("a"|"n"|"v"|"s"|"r") > } TOKEN : { < #FREETEXT : (~[" ", "\n", "|"]) (~["\n", "|"])+ > } TOKEN: { < SYNSET_OFFSET : > } TOKEN: { < LEX_FN : > } TOKEN : { < P_CNT : > } TOKEN : { < TYPE_CNT : > } TOKEN : { < POS_SRC : (){2} > } TOKEN : { < PTR_SYMBOL_NOUN : ("!"|"@"|"@i"|"~"|"~i"|"#m"|"#s"|"#p"|"%m"|"%s"|"%p"|"="|"+"|";c"|"-c"|";r"|"-r"|";u"|"-u") > } TOKEN : { < GLOSS : "|" > } TOKEN : { < COMMENT : ()* > } TOKEN : { < WORD : ~["0", " ", "\n", "|"] (["0"-"9"]|["a"-"z"]|["A"-"Z"]|"'"|"-"|"_"|"."|"/"|"\"")* > } TOKEN : { < WORD_UNIT : > } void Start() : {} { ( {System.out.println("Comment skipped");} | DataLine () {System.out.println("Data line parsed");} )+ { System.out.println("File Parsed OK");} } void DataLine() : { Token val_lex_fn, val_type_cnt; } { ( // synset_offset lex_filenum ss_type w_cnt word lex_id [word lex_id...] p_cnt [ptr...] | gloss val_lex_fn = val_type_cnt = SubLine() ) } void SubLine() : { } { ( { System.out.println("word_unit done"); } )+ { System.out.println("Pcnt2 done"); } ( { System.out.println("symbol_n done"); } { System.out.println("ptr_offset done"); } )* }