/// <summary> /// Parse TDL string to ISchedule object. /// </summary> /// <param name="Text">TDL string.</param> /// <returns>ISchedule object.</returns> public static ISchedule Parse(string Text) { TimeDefParser parser = GetParser(Text); try { TimeDefParser.prog_return prog_ret = parser.prog(); return(prog_ret == null ? null : prog_ret.value); } catch (Exception ex) { throw new ParserException(ex.Message, ex); } }
// $ANTLR start "prog" // TimeDef.g:21:1: prog returns [ISchedule value] : expr EOF ; public TimeDefParser.prog_return prog() // throws RecognitionException [1] { TimeDefParser.prog_return retval = new TimeDefParser.prog_return(); retval.Start = input.LT(1); object root_0 = null; IToken EOF2 = null; TimeDefParser.expr_return expr1 = default(TimeDefParser.expr_return); object EOF2_tree=null; try { // TimeDef.g:21:31: ( expr EOF ) // TimeDef.g:22:4: expr EOF { root_0 = (object)adaptor.GetNilNode(); PushFollow(FOLLOW_expr_in_prog62); expr1 = expr(); state.followingStackPointer--; if (state.failed) return retval; if ( state.backtracking == 0 ) adaptor.AddChild(root_0, expr1.Tree); EOF2=(IToken)Match(input,EOF,FOLLOW_EOF_in_prog64); if (state.failed) return retval; if ( state.backtracking == 0 ) {EOF2_tree = (object)adaptor.Create(EOF2); adaptor.AddChild(root_0, EOF2_tree); } if ( (state.backtracking==0) ) { retval.value = ((expr1 != null) ? expr1.value : default(ISchedule)); } } retval.Stop = input.LT(-1); if ( (state.backtracking==0) ) { retval.Tree = (object)adaptor.RulePostProcessing(root_0); adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);} } catch (RecognitionException) { throw; } finally { } return retval; }