parse_members_source

func parse_members_source(source: String) -> ParseOutcome

Parse a whole input as nominal-body members (ADR 0026): the grammar struct and extension bodies use, so a macro expansion spliced into a declaration body yields member declarations — methods, not plain functions.

View Source
pub func parse_members_source(source: String) -> ParseOutcome {
	let result = scan(source: source)
	let comments = result.comments
	let parser = scan_parser(source: source, result: result)
	parser.skip_semicolons_and_newlines()
	loop parser.current().kind != .eof {
		if parser.is_failed() { break }
		let item = parser.decl(context: .struct_body, is_static: false)
		if parser.is_failed() { break }
		parser.items.push(item)
		parser.skip_semicolons_and_newlines()
	}
	parser.finish(comments: comments)
}