# Resolvable {{ abc }} ==> Document( Resolvable ) # Resolvable, Text {{ abc }}xyz ==> Document(Resolvable, Text) # Text, Resolvable xyz{{ abc }} ==> Document(Text, Resolvable) # Regular tag, Resolvable, regular tag {{ abc }} ==> Document( Element( OpenTag(StartTag,TagName,EndTag), Resolvable, CloseTag(StartCloseTag,TagName,EndTag) ) ) # Resolvable then regular tags {{ abc }} ==> Document( Resolvable, Element( OpenTag(StartTag,TagName,EndTag), CloseTag(StartCloseTag,TagName,EndTag) ) ) # Regular tags then resolvable {{ abc }} ==> Document( Element( OpenTag(StartTag,TagName,EndTag), CloseTag(StartCloseTag,TagName,EndTag) ), Resolvable ) # Regular tag, Resolvable, Text, regular tag {{ abc }}xyz ==> Document( Element( OpenTag(StartTag,TagName,EndTag), Resolvable, Text, CloseTag(StartCloseTag,TagName,EndTag) ) ) # Regular tag, Text, Resolvable, regular tag xyz{{ abc }} ==> Document( Element( OpenTag(StartTag,TagName,EndTag), Text, Resolvable, CloseTag(StartCloseTag,TagName,EndTag) ) ) # Regular tag, Text, Resolvable, Text, regular tag xyz{{ abc }}xyz ==> Document( Element( OpenTag(StartTag,TagName,EndTag), Text, Resolvable, Text, CloseTag(StartCloseTag,TagName,EndTag) ) ) # Resolvable inside attribute value (double quotes) ==> Document( Element( SelfClosingTag(StartTag,TagName,Attribute(AttributeName,Is,AttributeValue(Resolvable)),EndTag) ) ) # Resolvable mixed with text inside attribute value ==> Document( Element( SelfClosingTag(StartTag,TagName,Attribute(AttributeName,Is,AttributeValue(Resolvable)),EndTag) ) ) # Single brace only in double-quoted attribute
==> Document( Element( OpenTag(StartTag,TagName,Attribute(AttributeName,Is,AttributeValue),EndTag), CloseTag(StartCloseTag,TagName,EndTag) ) ) # Single brace only in single-quoted attribute
==> Document( Element( OpenTag(StartTag,TagName,Attribute(AttributeName,Is,AttributeValue),EndTag), CloseTag(StartCloseTag,TagName,EndTag) ) ) # Single brace at end of double-quoted attribute
==> Document( Element( OpenTag(StartTag,TagName,Attribute(AttributeName,Is,AttributeValue),EndTag), CloseTag(StartCloseTag,TagName,EndTag) ) ) # Single brace at end of single-quoted attribute
==> Document( Element( OpenTag(StartTag,TagName,Attribute(AttributeName,Is,AttributeValue),EndTag), CloseTag(StartCloseTag,TagName,EndTag) ) ) # Single brace at start of double-quoted attribute
==> Document( Element( OpenTag(StartTag,TagName,Attribute(AttributeName,Is,AttributeValue),EndTag), CloseTag(StartCloseTag,TagName,EndTag) ) ) # Resolvable followed by single brace in attribute
==> Document( Element( OpenTag(StartTag,TagName,Attribute(AttributeName,Is,AttributeValue(Resolvable)),EndTag), CloseTag(StartCloseTag,TagName,EndTag) ) )