Exemplo n.º 1
0
        public override void EnterFunctionDef([NotNull] DaedalusParser.FunctionDefContext context)
        {
            string        funcName        = context.nameNode().GetText();
            string        returnTypeName  = context.typeReference().GetText();
            DatSymbolType returnType      = DatSymbolTypeFromString(returnTypeName);
            uint          parametersCount = (uint)context.parameterList().parameterDecl().Length;

            var symbol = SymbolBuilder.BuildFunc(funcName, parametersCount, returnType);

            _assemblyBuilder.AddSymbol(symbol);
            _assemblyBuilder.ExecBlockStart(symbol, ExecBlockType.Function);
        }