3232import com .hubspot .jinjava .lib .tag .FlexibleTag ;
3333import com .hubspot .jinjava .lib .tag .Tag ;
3434import com .hubspot .jinjava .tree .parse .ExpressionToken ;
35+ import com .hubspot .jinjava .tree .parse .StringTokenScanner ;
3536import com .hubspot .jinjava .tree .parse .TagToken ;
3637import com .hubspot .jinjava .tree .parse .TextToken ;
3738import com .hubspot .jinjava .tree .parse .Token ;
3839import com .hubspot .jinjava .tree .parse .TokenScanner ;
3940import com .hubspot .jinjava .tree .parse .TokenScannerSymbols ;
4041import com .hubspot .jinjava .tree .parse .UnclosedToken ;
4142import com .hubspot .jinjava .tree .parse .WhitespaceControlParser ;
43+ import java .util .Iterator ;
4244import org .apache .commons .lang3 .StringUtils ;
4345
4446public class TreeParser {
@@ -52,7 +54,7 @@ public class TreeParser {
5254
5355 public TreeParser (JinjavaInterpreter interpreter , String input ) {
5456 this .scanner =
55- Iterators .peekingIterator (new TokenScanner (input , interpreter .getConfig ()));
57+ Iterators .peekingIterator (createScanner (input , interpreter .getConfig ()));
5658 this .interpreter = interpreter ;
5759 this .symbols = interpreter .getConfig ().getTokenScannerSymbols ();
5860 this .whitespaceControlParser =
@@ -104,6 +106,13 @@ public Node buildTree() {
104106 return root ;
105107 }
106108
109+ private static Iterator <Token > createScanner (String input , JinjavaConfig config ) {
110+ if (config .getTokenScannerSymbols ().isStringBased ()) {
111+ return new StringTokenScanner (input , config );
112+ }
113+ return new TokenScanner (input , config );
114+ }
115+
107116 /**
108117 * @return null if EOF or error
109118 */
0 commit comments