@@ -74,40 +74,72 @@ protected override Parser<char, string> BuildParser(Func<Parser<char, string>?>
7474 // var parser = prdsAndTokens.Or(anyString);
7575 }
7676
77- // internal static Parser<char, string> CreateParser (Parser<char, Unit> terminator)
77+ // internal static Parser<char, string> GreedyUntil (Parser<char, Unit> terminator)
7878 // {
79- // var simpleString = StringLiteralChar.AtLeastOnceAsStringUntil(terminator).Select(x => x);
80- // var whitespaces = Parser.OneOf(Constant.WhitespaceChars). AtLeastOnceAsStringUntil(terminator).Select(x => x);
81- // var token = Parser.OneOf(simpleString.Try(), whitespaces).Select(x => x );
79+ // var term = Parser.AnyCharExcept(Constant.AllParenthesis)
80+ // . AtLeastOnceAsStringUntil(terminator)
81+ // .WithDebug("term" );
8282 //
8383 // Parser<char, string>? parser = null;
84+ //
85+ // var bracketed = Parser.Rec(() => parser!)
86+ // .ManyString()
87+ // .BetweenAnyParentheses((l, inner, r) => $"{l}{inner}{r}")
88+ // .WithDebug("bracketed");
89+ //
90+ // parser = Parser.OneOf(bracketed.Try(), term);
91+ //
92+ // return parser.AtLeastOnceUntil(terminator).JoinToString();
93+ //
94+ // // var term = Parser.AnyCharExcept(Constant.AllParenthesis).Until(terminator)
95+ // // .Select(x => new string(x.ToArray()));
96+ // //
97+ // // Parser<char, string>? parser = null;
98+ // //
99+ // // var bracketed = Parser.OneOf(Parser.Rec(() => parser!), term)
100+ // // .ManyString()
101+ // // .BetweenAnyParentheses((c1, s, c2) => $"{c1}{s}{c2}").WithDebug();
102+ // //
103+ // // parser = Parser.OneOf(bracketed.Try(), term);
104+ // // return parser.AtLeastOnceUntil(terminator).JoinToString();
105+ // }
106+
107+ // internal static Parser<char, string> GreedyUntil(Parser<char, Unit> terminator)
108+ // {
109+ // var word = StringLiteralChar.AtLeastOnceString().WithDebug();
110+ // var whitespace = Parser.OneOf(Constant.WhitespaceChars).AtLeastOnceString().WithDebug();
111+ //
112+ // // var word = StringLiteralChar.AtLeastOnceAsStringUntil(terminator).WithDebug();
113+ // // var whitespace = Parser.OneOf(Constant.WhitespaceChars).AtLeastOnceAsStringUntil(terminator).WithDebug();
114+ // var term = Parser.OneOf(word.Try(), whitespace);
84115 //
85- // // var parserBetweenParentheses = Parser.Rec(() => parser ?? throw new ArgumentNullException(nameof(parser)))
86- // // .BetweenAnyParentheses((c1, s, c2) => $"{c1}{s}{c2}");
116+ // Parser<char, string>? parser = null;
117+ //
118+ // var bracketed = Parser.OneOf(Parser.Rec(() => parser!), term)
119+ // .ManyString()
120+ // .BetweenAnyParentheses((c1, s, c2) => $"{c1}{s}{c2}").WithDebug();
87121 //
88- // // parser = Parser.OneOf(token, parserBetweenParentheses).AtLeastOnceUntil(terminator).JoinToString();
89- // parser = token.Try().Many().JoinToString();
90- // return parser;
122+ // parser = Parser.OneOf(bracketed.Try(), term);
123+ // return parser.ManyString().Before(terminator.Try());
91124 // }
92125
93126 internal static Parser < char , string > CreateParser ( Parser < char , Unit > terminator )
94127 {
95- var anyString = InvalidStringLiteralChars . AnyCharWithPlshd
96- . AtLeastOnceAsStringUntil ( lookahead ) ;
128+ var anyString = StringLiteralChar
129+ . AtLeastOnceAsStringUntil ( terminator ) ;
97130
98- var simpleString = CommonTemplateParser . StringWithPlshd ;
131+ var simpleString = StringLiteralChar . AtLeastOnceString ( ) ;
99132 var token = Parser . OneOf ( simpleString , Grammar . WhiteSpaces ) . Try ( ) ;
100133 Parser < char , string > ? term = null ;
101134
102- var parenthesised = Parsers . BetweenOneOfChars ( x => Parser . Char ( x ) . AsString ( ) ,
103- expr : Parser . Rec ( ( ) => term ?? throw new ArgumentNullException ( nameof ( term ) ) ) ,
104- Constant . AllParenthesised ) . JoinToString ( ) ;
135+ var parenthesised = Parser . Rec ( ( ) => term ?? throw new ArgumentNullException ( nameof ( term ) ) )
136+ . BetweenAnyParentheses ( ( l , s , r ) => $ "{ l } { s } { r } ") ;
105137
106138 term = Parser . OneOf ( parenthesised , token ) . Many ( ) . JoinToString ( ) ;
107139
108140 //parenthesised and tokens and whiteSpaces
109141 var prdsAndTokens = Parser . OneOf ( parenthesised , token )
110- . AtLeastOnceUntil ( lookahead )
142+ . AtLeastOnceUntil ( terminator )
111143 . JoinToString ( )
112144 . Try ( ) ;
113145
0 commit comments