17 lines
497 B
JavaScript
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)
|
|
|