UNPKG

@lezer/javascript

Version:
80 lines (52 loc) 1.97 kB
# Self-closing element {"dialect": "jsx"} <img/> ==> Script(ExpressionStatement(JSXElement(JSXSelfClosingTag(JSXStartTag,JSXBuiltin(JSXIdentifier),JSXSelfCloseEndTag)))) # Regular element {"dialect": "jsx"} <Foo>bar</Foo> ==> Script(ExpressionStatement(JSXElement( JSXOpenTag(JSXStartTag, JSXIdentifier, JSXEndTag), JSXText, JSXCloseTag(JSXStartCloseTag, JSXIdentifier, JSXEndTag)))) # Fragment {"dialect": "jsx"} <>bar</> ==> Script(ExpressionStatement(JSXElement( JSXFragmentTag(JSXStartTag, JSXEndTag), JSXText, JSXCloseTag(JSXStartCloseTag, JSXEndTag)))) # Namespaced name {"dialect": "jsx"} <blah-namespace:img/> ==> Script(ExpressionStatement(JSXElement( JSXSelfClosingTag(JSXStartTag,JSXNamespacedName(JSXIdentifier, JSXIdentifier),JSXSelfCloseEndTag)))) # Member name {"dialect": "jsx"} <pkg.Component/> ==> Script(ExpressionStatement(JSXElement( JSXSelfClosingTag(JSXStartTag,JSXMemberExpression(JSXIdentifier, JSXIdentifier),JSXSelfCloseEndTag)))) # Nested tags {"dialect": "jsx"} <a><b.C>text</b.C>{x} {...y}</a> ==> Script(ExpressionStatement(JSXElement( JSXOpenTag(JSXStartTag, JSXBuiltin(JSXIdentifier), JSXEndTag), JSXElement( JSXOpenTag(JSXStartTag, JSXMemberExpression(JSXIdentifier, JSXIdentifier), JSXEndTag), JSXText, JSXCloseTag(JSXStartCloseTag, JSXMemberExpression(JSXIdentifier, JSXIdentifier), JSXEndTag)), JSXEscape(VariableName), JSXText, JSXEscape(Spread, VariableName), JSXCloseTag(JSXStartCloseTag, JSXBuiltin(JSXIdentifier), JSXEndTag)))) # Attributes {"dialect": "jsx"} <Foo a="1" b {...attrs} c={c}></Foo> ==> Script(ExpressionStatement(JSXElement( JSXOpenTag(JSXStartTag, JSXIdentifier, JSXAttribute(JSXIdentifier, Equals, JSXAttributeValue), JSXAttribute(JSXIdentifier), JSXSpreadAttribute(Spread, VariableName), JSXAttribute(JSXIdentifier, Equals, JSXEscape(VariableName)), JSXEndTag), JSXCloseTag(JSXStartCloseTag, JSXIdentifier, JSXEndTag))))