@@ -30,8 +30,9 @@ public Placeholder(bool isCorrect, string value)
3030
3131 static void Main ( string [ ] args )
3232 {
33- var whitespaces = Char ( ' ' ) . AtLeastOnceString ( ) ;
33+ var spaces = Char ( ' ' ) . AtLeastOnceString ( ) ;
3434 var endOfLines = EndOfLine . AtLeastOnceString ( ) ;
35+ var whitespaces = OneOf ( spaces , endOfLines ) ;
3536 var anyCharExcept = AnyCharExcept ( '(' , ')' , '[' , ']' , '{' , '}' , '$' , ' ' , '\n ' ) . AtLeastOnceString ( ) . Try ( )
3637 . WithDebug ( "anyCharExcept" ) ;
3738 Parser < char , IEnumerable < string > > expr = null ;
@@ -54,8 +55,8 @@ static void Main(string[] args)
5455
5556
5657 //don't work
57- var parser = OneOf ( anyCharExcept , placeholder , whitespaces , endOfLines ) . AtLeastOnce ( ) ;
58- expr = parser . Or ( parenthesised ) . AtLeastOnce ( ) . MergerMany ( ) ;
58+ var tokens = OneOf ( anyCharExcept , placeholder , whitespaces ) . AtLeastOnce ( ) ;
59+ expr = tokens . Or ( parenthesised ) . AtLeastOnce ( ) . MergerMany ( ) ;
5960
6061 //work
6162 // var parser = OneOf(anyCharExcept, placeholder).AtLeastOnce();
@@ -77,15 +78,30 @@ static void Main(string[] args)
7778 . Then ( Any . Until ( Lookahead ( Char ( ')' ) . Then ( End ) . Try ( ) ) ) )
7879 . AsString ( ) ;
7980
80- var template =
81+ var template1 =
8182 "if(($condition$) = ($test$))\n " +
8283 "return $value1$;\n " +
8384 "else\n " +
8485 "return $value2$;" ;
86+
87+ var template2 =
88+ "if($var$ $sign$ null)\n " +
89+ "{\n " +
90+ "$var$ = $value$;\n " +
91+ "}" ;
8592
86- var template2 = "((test)=(test2))" ;
87- var template3 = "$test1$ test test34" ;
88- var test = expr . ParseOrThrow ( template ) ;
93+ var template3 =
94+ "if($value1$ $sign$ null)\n " +
95+ "{\n " +
96+ "$var$ = $value1$;\n " +
97+ "}\n " +
98+ "else\n " +
99+ "{\n " +
100+ "$var$ = $value2$;\n " +
101+ "}" ;
102+ // var template2 = "((test)=(test2))";
103+ // var template3 = "$test1$ test test34";
104+ var test = expr . ParseOrThrow ( template3 ) ;
89105 }
90106 }
91107}
0 commit comments