예제 #1
0
파일: Parser.cs 프로젝트: feihuobuke/xCoder
 private void scope_OnParse(AbsParser parser, ParserEventArgs e)
 {
     var sc = e.Body.ToString();
     var option = e.Option.Clone() as ParserOption;
     var invoker = new ScopeInvoker(option, sc);
     invoker.Execute(e.Option.StatementParameters);
     e.Replace = true;
     e.Replacement = new StringBuilder(invoker.Result);
 }
예제 #2
0
 private void ParamParser_OnParse(AbsParser parser, ParserEventArgs e)
 {
     var value = @params[e.Body.ToString().Trim(' ')];
     e.Replace = true;
     e.Replacement = new StringBuilder(value);
 }
예제 #3
0
 private void OutputParser_OnParse(AbsParser parser, ParserEventArgs e)
 {
     var tmp = e.Body;
     OutputParameterParser.OnParse += (OutputParameterParser_OnParse);
     var body = OutputParameterParser.Parse(tmp);
     OutputParameterParser.OnParse -= (OutputParameterParser_OnParse);
     e.Replace = true;
     e.Replacement = new StringBuilder(string.Format("Output += @\"{0}\";", body));
 }
예제 #4
0
 private void OutputParameterParser_OnParse(AbsParser parser, ParserEventArgs e)
 {
     var tmp = e.Body;
     e.Replace = true;
     e.Replacement = new StringBuilder(string.Format("\"+{0}+@\"", tmp));
 }