ykmnkmi / jinja.dart

Jinja2 template engine port for Dart.
https://pub.dev/packages/jinja
MIT License
51 stars 11 forks source link

PHP syntax is not possible #5

Closed leonardoInf closed 4 years ago

leonardoInf commented 4 years ago

There is one special situation where the tests still fail:

If (and only if) the variableStart tag begins with blockStart tag (e.g. <?= contains <?)

the SpanScanner seems to do bullshit and does not recognize <?= as a variableStart tag and instead chooses to treat it like a blockStart which obviously fails (see the stack trace). The regexp seems okay to me, so what`s here?

  package:jinja/src/parser.dart 82:5         Parser.error
  package:jinja/src/parser.dart 105:5        Parser.expected
  package:jinja/src/parser.dart 220:21       Parser.parseStatement
  package:jinja/src/parser.dart 193:20       Parser.subParse
  package:jinja/src/parser.dart 136:19       Parser.parseBody
  package:jinja/src/parser.dart 370:18       Parser.parseFor
  package:jinja/src/parser.dart 235:18       Parser.parseStatement
  package:jinja/src/parser.dart 193:20       Parser.subParse
  package:jinja/src/parser.dart 136:19       Parser.parseBody
  package:jinja/src/parser.dart 125:18       Parser.parse
  package:jinja/src/environment.dart 148:55  Environment.fromString
  test/lexer_and_parser_test.dart 273:15     main.<fn>.<fn>

00:06 +97 -2: test/lexer_and_parser_test.dart: leftStripBlocks php syntax compact [E]                                                                                                                                                    
  TemplateSyntaxError on line 3 column 10: statement tag expected
  package:jinja/src/parser.dart 82:5         Parser.error
  package:jinja/src/parser.dart 105:5        Parser.expected
  package:jinja/src/parser.dart 220:21       Parser.parseStatement
  package:jinja/src/parser.dart 193:20       Parser.subParse
  package:jinja/src/parser.dart 136:19       Parser.parseBody
  package:jinja/src/parser.dart 370:18       Parser.parseFor
  package:jinja/src/parser.dart 235:18       Parser.parseStatement
  package:jinja/src/parser.dart 193:20       Parser.subParse
  package:jinja/src/parser.dart 136:19       Parser.parseBody
  package:jinja/src/parser.dart 125:18       Parser.parse
  package:jinja/src/environment.dart 148:55  Environment.fromString
  test/lexer_and_parser_test.dart 294:15     main.<fn>.<fn>

....

ykmnkmi commented 4 years ago

I am working on tokenizer and parser here, and rewrite parser and AST. Currently busy.

leonardoInf commented 4 years ago

Ok, please review the pull request.