In Jekyll style, I found that 'include_relative' is incorrectly represented as token SimpleTag, instead of IncludeRelative (as expected in PR #288). Seems to be caused by Lexer action which should be executed only for Liquid style.
As a consequence, filename components were parsed as separate parameters instead of token file_name_or_output. This behaviour got unnoticed only because all parameters were incorrectly concatenated into one string (which is my main concern; to be fixed outside of this PR)
In Liquid style, tag 'include_relative' has no default implementation (token InvalidTagId), but can be defined as a custom block (token SimpleBlock) or a tag (SimpleTag). Lexer action works correctly for these checks.
To facilitate flavor-specific lexical analysis, I am adding flag isLiquidStyleInclude to LiquidLexer; same flag was added to the LiquidParser in #196.
@msangel Please let me know if you see a better or simpler solution. I do not work with Jekyll, I am submitting this change as a prerequisite for rendering of custom tags with two or more parameters in Liquid.
SimpleTag
, instead ofIncludeRelative
(as expected in PR #288). Seems to be caused by Lexer action which should be executed only for Liquid style.InvalidTagId
), but can be defined as a custom block (tokenSimpleBlock
) or a tag (SimpleTag
). Lexer action works correctly for these checks.isLiquidStyleInclude
toLiquidLexer
; same flag was added to theLiquidParser
in #196.@msangel Please let me know if you see a better or simpler solution. I do not work with Jekyll, I am submitting this change as a prerequisite for rendering of custom tags with two or more parameters in Liquid.