예제 #1
0
        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;
            }
        }
예제 #2
0
 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")));
 }