@@ -770,4 +770,115 @@ defmodule ESTree.Tools.Builder do
770770 argument: argument , loc: loc , delegate: delegate
771771 }
772772 end
773+
774+
775+ @ spec jsx_identifier (
776+ binary ,
777+ ESTree.SourceLocation . t | nil
778+ ) :: ESTree.JSXIdentifier . t
779+ def jsx_identifier ( name , loc \\ nil ) do
780+ % ESTree.JSXIdentifier {
781+ name: name , loc: loc
782+ }
783+ end
784+
785+
786+ @ spec jsx_member_expression (
787+ ESTree.JSXMemberExpression . t | ESTree.JSXIdentifier . t ,
788+ ESTree.JSXIdentifier . t ,
789+ ESTree.SourceLocation . t | nil
790+ ) :: ESTree.MemberExpression . t
791+ def jsx_member_expression ( object , property , loc \\ nil ) do
792+ % ESTree.JSXMemberExpression {
793+ object: object , property: property , loc: loc
794+ }
795+ end
796+
797+ @ spec jsx_namespaced_name (
798+ ESTree.JSXIdentifier . t ,
799+ ESTree.JSXIdentifier . t ,
800+ ESTree.SourceLocation . t | nil
801+ ) :: ESTree.JSXNamespacedName . t
802+ def jsx_namespaced_name ( namespace , name , loc \\ nil ) do
803+ % ESTree.JSXNamespacedName {
804+ namespace: namespace , name: name , loc: loc
805+ }
806+ end
807+
808+ @ spec jsx_empty_expression (
809+ ESTree.SourceLocation . t | nil
810+ ) :: ESTree.JSXEmptyExpression . t
811+ def jsx_empty_expression ( loc \\ nil ) do
812+ % ESTree.JSXEmptyExpression {
813+ loc: loc
814+ }
815+ end
816+
817+ @ spec jsx_expression_container (
818+ ESTree.Expression . t | ESTree.JSXEmptyExpression . t ,
819+ ESTree.SourceLocation . t | nil
820+ ) :: ESTree.JSXExpressionContainer . t
821+ def jsx_expression_container ( expression , loc \\ nil ) do
822+ % ESTree.JSXExpressionContainer {
823+ expression: expression , loc: loc
824+ }
825+ end
826+
827+
828+ @ spec jsx_opening_element (
829+ ESTree.JSXIdentifier . t | ESTree.JSXMemberExpression . t | ESTree.JSXNamespacedName . t ,
830+ [ ESTree.JSXAttribute . t | ESTree.JSXSpreadAttribute . t ] ,
831+ boolean ,
832+ ESTree.SourceLocation . t | nil
833+ ) :: ESTree.JSXOpeningElement . t
834+ def jsx_opening_element ( name , attributes , selfClosing \\ false , loc \\ nil ) do
835+ % ESTree.JSXOpeningElement {
836+ name: name , attributes: attributes , selfClosing: selfClosing , loc: loc
837+ }
838+ end
839+
840+
841+ @ spec jsx_closing_element (
842+ ESTree.JSXIdentifier . t | ESTree.JSXMemberExpression . t | ESTree.JSXNamespacedName . t ,
843+ ESTree.SourceLocation . t | nil
844+ ) :: ESTree.JSXClosingElement . t
845+ def jsx_closing_element ( name , loc \\ nil ) do
846+ % ESTree.JSXClosingElement {
847+ name: name , loc: loc
848+ }
849+ end
850+
851+
852+ @ spec jsx_attribute (
853+ ESTree.JSXIdentifier . t | ESTree.JSXNamespacedName . t ,
854+ ESTree.Literal . t | ESTree.JSXExpressionContainer . t | ESTree.JSXElement . t | nil ,
855+ ESTree.SourceLocation . t | nil
856+ ) :: ESTree.JSXAttribute . t
857+ def jsx_attribute ( name , value \\ nil , loc \\ nil ) do
858+ % ESTree.JSXAttribute {
859+ name: name , value: value , loc: loc
860+ }
861+ end
862+
863+ @ spec jsx_spread_attribute (
864+ ESTree.Expression . t | nil ,
865+ ESTree.SourceLocation . t | nil
866+ ) :: ESTree.SpreadElement . t
867+ def jsx_spread_attribute ( argument , loc \\ nil ) do
868+ % ESTree.JSXSpreadAttribute {
869+ argument: argument , loc: loc
870+ }
871+ end
872+
873+ @ spec jsx_element (
874+ ESTree.JSXOpeningElement . t ,
875+ [ ESTree.Literal . t | ESTree.JSXExpressionContainer . t | ESTree.JSXElement . t ] ,
876+ ESTree.JSXClosingElement . t | nil ,
877+ ESTree.SourceLocation . t | nil
878+ ) :: ESTree.JSXElement . t
879+ def jsx_element ( openingElement , children , closingElement \\ nil , loc \\ nil ) do
880+ % ESTree.JSXElement {
881+ openingElement: openingElement , children: children , closingElement: closingElement , loc: loc
882+ }
883+ end
773884end
0 commit comments