Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Parser.php

function Parser::parseJSXFragment

Parses a jsx fragment

Return value

\Peast\Syntax\Node\JSX\JSXFragment|null

2 calls to Parser::parseJSXFragment()
Parser::parseJSXAttribute in vendor/mck89/peast/lib/Peast/Syntax/JSX/Parser.php
Parses a jsx spread attribute
Parser::parseJSXChild in vendor/mck89/peast/lib/Peast/Syntax/JSX/Parser.php
Parses a jsx child

File

vendor/mck89/peast/lib/Peast/Syntax/JSX/Parser.php, line 39

Class

Parser
JSX parser trait

Namespace

Peast\Syntax\JSX

Code

protected function parseJSXFragment() {
    $startOpeningToken = $this->scanner
        ->getToken();
    if (!$startOpeningToken || $startOpeningToken->value !== "<") {
        return null;
    }
    $endOpeningToken = $this->scanner
        ->getNextToken();
    if (!$endOpeningToken || $endOpeningToken->value !== ">") {
        return null;
    }
    $this->scanner
        ->consumeToken();
    $this->scanner
        ->consumeToken();
    $children = $this->parseJSXChildren();
    if (!($startClosingToken = $this->scanner
        ->consume("<")) || !$this->scanner
        ->consume("/") || !$this->scanner
        ->reconsumeCurrentTokenInJSXMode() || $endOpeningToken->value !== ">") {
        $this->error();
    }
    $this->scanner
        ->consumeToken();
    
    //Opening tag
    $openingNode = $this->createJSXNode("JSXOpeningFragment", $startOpeningToken);
    $this->completeNode($openingNode, $endOpeningToken->location->end);
    
    //Closing tag
    $closingNode = $this->createJSXNode("JSXClosingFragment", $startClosingToken);
    $this->completeNode($closingNode);
    
    //Fragment
    $node = $this->createJSXNode("JSXFragment", $startOpeningToken);
    $node->setOpeningFragment($openingNode);
    $node->setClosingFragment($closingNode);
    if ($children) {
        $node->setChildren($children);
    }
    return $this->completeNode($node);
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal