public virtual bool List(OMetaStream <char> inputStream, out OMetaList <HostExpression> result, out OMetaStream <char> modifiedStream) { OMetaList <HostExpression> xs = null; modifiedStream = inputStream; if (!MetaRules.Apply( delegate(OMetaStream <char> inputStream2, out OMetaList <HostExpression> result2, out OMetaStream <char> modifiedStream2) { modifiedStream2 = inputStream2; if (!MetaRules.ApplyWithArgs(Exactly, modifiedStream2, out result2, out modifiedStream2, ("(").AsHostExpressionList())) { return(MetaRules.Fail(out result2, out modifiedStream2)); } if (!MetaRules.Many( delegate(OMetaStream <char> inputStream3, out OMetaList <HostExpression> result3, out OMetaStream <char> modifiedStream3) { modifiedStream3 = inputStream3; if (!MetaRules.Apply(SExpression, modifiedStream3, out result3, out modifiedStream3)) { return(MetaRules.Fail(out result3, out modifiedStream3)); } return(MetaRules.Success()); } , modifiedStream2, out result2, out modifiedStream2)) { return(MetaRules.Fail(out result2, out modifiedStream2)); } xs = result2; if (!MetaRules.ApplyWithArgs(Exactly, modifiedStream2, out result2, out modifiedStream2, (")").AsHostExpressionList())) { return(MetaRules.Fail(out result2, out modifiedStream2)); } result2 = (new SExprList(xs.ToIEnumerable <ISExpression>())).AsHostExpressionList(); return(MetaRules.Success()); }, modifiedStream, out result, out modifiedStream)) { return(MetaRules.Fail(out result, out modifiedStream)); } return(MetaRules.Success()); }
public virtual bool String(OMetaStream <char> inputStream, out OMetaList <HostExpression> result, out OMetaStream <char> modifiedStream) { OMetaList <HostExpression> s = null; modifiedStream = inputStream; if (!MetaRules.Apply( delegate(OMetaStream <char> inputStream2, out OMetaList <HostExpression> result2, out OMetaStream <char> modifiedStream2) { modifiedStream2 = inputStream2; if (!MetaRules.ApplyWithArgs(Exactly, modifiedStream2, out result2, out modifiedStream2, ("\"").AsHostExpressionList())) { return(MetaRules.Fail(out result2, out modifiedStream2)); } if (!MetaRules.Many( delegate(OMetaStream <char> inputStream3, out OMetaList <HostExpression> result3, out OMetaStream <char> modifiedStream3) { modifiedStream3 = inputStream3; if (!MetaRules.Or(modifiedStream3, out result3, out modifiedStream3, delegate(OMetaStream <char> inputStream4, out OMetaList <HostExpression> result4, out OMetaStream <char> modifiedStream4) { modifiedStream4 = inputStream4; if (!MetaRules.Apply(EscapeChar, modifiedStream4, out result4, out modifiedStream4)) { return(MetaRules.Fail(out result4, out modifiedStream4)); } return(MetaRules.Success()); } , delegate(OMetaStream <char> inputStream4, out OMetaList <HostExpression> result4, out OMetaStream <char> modifiedStream4) { modifiedStream4 = inputStream4; if (!MetaRules.Apply( delegate(OMetaStream <char> inputStream5, out OMetaList <HostExpression> result5, out OMetaStream <char> modifiedStream5) { modifiedStream5 = inputStream5; if (!MetaRules.Not( delegate(OMetaStream <char> inputStream6, out OMetaList <HostExpression> result6, out OMetaStream <char> modifiedStream6) { modifiedStream6 = inputStream6; if (!MetaRules.ApplyWithArgs(Exactly, modifiedStream6, out result6, out modifiedStream6, ("\"").AsHostExpressionList())) { return(MetaRules.Fail(out result6, out modifiedStream6)); } return(MetaRules.Success()); } , modifiedStream5, out result5, out modifiedStream5)) { return(MetaRules.Fail(out result5, out modifiedStream5)); } if (!MetaRules.Apply(Character, modifiedStream5, out result5, out modifiedStream5)) { return(MetaRules.Fail(out result5, out modifiedStream5)); } return(MetaRules.Success()); }, modifiedStream4, out result4, out modifiedStream4)) { return(MetaRules.Fail(out result4, out modifiedStream4)); } return(MetaRules.Success()); } )) { return(MetaRules.Fail(out result3, out modifiedStream3)); } return(MetaRules.Success()); } , modifiedStream2, out result2, out modifiedStream2)) { return(MetaRules.Fail(out result2, out modifiedStream2)); } s = result2; if (!MetaRules.ApplyWithArgs(Exactly, modifiedStream2, out result2, out modifiedStream2, ("\"").AsHostExpressionList())) { return(MetaRules.Fail(out result2, out modifiedStream2)); } result2 = (s).AsHostExpressionList(); return(MetaRules.Success()); }, modifiedStream, out result, out modifiedStream)) { return(MetaRules.Fail(out result, out modifiedStream)); } return(MetaRules.Success()); }