public override void EnterBuiltinFunctionDefinition(BuiltinFunctionDefinition ctx) { var enclosingScope = ctx.ParentNode.NearestScope(); enclosingScope.Declare(ctx.Name, SymbolKind.BuiltinFunctionDeclaration, ctx); if (TypeRegistry.DefaultRegistry.TryGetTypeByName(ctx.Typename, out var t)) { ctx.ReturnType = t.TypeId; } }
public override void EnterFifthProgram(FifthProgram ctx) { ctx.Functions.Add(new BuiltinFunctionDefinition("print", "void", ("format", "string"), ("value", "string"))); ctx.Functions.Add(new BuiltinFunctionDefinition("print", "void", ("value", "string"))); ctx.Functions.Add(new BuiltinFunctionDefinition("write", "void", ("value", "string"))); }