/** * Takes the overbroad syntax parsed by the Nearley parser (parsedsyntax.ts) and * restricts it to the actual grammar of C0. */ import * as syn from "./parsedsyntax"; import * as ast from "../ast"; import { Lang } from "../lang"; export declare function restrictType(lang: Lang, syn: syn.Type): ast.Type; export declare function restrictValueType(lang: Lang, syn: syn.Type): ast.ValueType; export declare function restrictExpression(lang: Lang, syn: syn.Expression): ast.Expression; export declare function restrictLValue(lang: Lang, syn: syn.Expression): ast.LValue; export declare function restrictStatement(lang: Lang, syn: syn.Statement): ast.Statement; export declare function restrictParams(lang: Lang, params: syn.VariableDeclarationOnly[]): ast.VariableDeclarationOnly[]; export declare function restrictDeclaration(lang: Lang, decl: syn.Declaration): ast.Declaration;