railt/graphql

View on GitHub
resources/grammar/expression/literal/object.pp2

Summary

Maintainability
Test Coverage

/**
 * --------------------------------------------------------------------------
 *  GraphQL Object Values (Input Object Values)
 * --------------------------------------------------------------------------
 *
 * Input object literal values are unordered lists of keyed input values
 * wrapped in curly‐braces { }. The values of an object literal may be any
 * input value literal or variable (ex.  { name: "Hello world", score: 1.0 }).
 * We refer to literal representation of input objects as “object literals.”
 *
 * NOTE: Input object fields are unordered
 *
 * @see https://facebook.github.io/graphql/June2018/#sec-Input-Object-Values
 */

ObjectLiteral -> {
    return new Expr\Literal\ObjectLiteralNode($children);
}
  : ::T_BRACE_OPEN::
        (ObjectLiteralField() ::T_COMMA::?)*
    ::T_BRACE_CLOSE::
  ;

ObjectLiteralField -> {
    return new Expr\Literal\ObjectLiteralFieldNode(
        $children[0],
        $children[1],
    );
}
  : Identifier() ::T_COLON:: Expression()
  ;