graph-ecs/src/query/return.js

17 lines
497 B
JavaScript

import { ReturnValues } from './types.js'
import { list, map, maybe, noCaseString, parse, seq, skip } from '../parser.js'
import { accessor, identifier, Symbol, ws } from './common.js'
const as = noCaseString('as')
const alias = seq(as, identifier)
const aliasId = seq(accessor, maybe(alias))
const keyword = noCaseString('return')
const params = map(
values => new ReturnValues(values),
seq(list(seq(Symbol.Comma, ws), aliasId))
)
export const statement = seq(skip(keyword), ws, params)