public static CParser.ParameterTypeListContext RBAParameters( this CParser.FunctionDefinitionContext functionDefinition) { return(functionDefinition ?.declarator() ?.directDeclarator() ?.parameterTypeList()); }
public static CParser.TypeSpecifierContext RBATypeSpecifier( this CParser.FunctionDefinitionContext functionDefinition) { return(functionDefinition ?.declarationSpecifiers() ?.declarationSpecifier()?[0] ?.typeSpecifier()); }
public static ITerminalNode RBAIdentifier( this CParser.FunctionDefinitionContext functionDefinition) { return(functionDefinition ?.declarator() ?.directDeclarator() ?.directDeclarator() ?.Identifier()); }
private void AnalyzeFunctionDefinition( CParser.FunctionDefinitionContext functionDefinition) { var identifier = functionDefinition.RBAIdentifier(); if (identifier?.ToString() == "main") { HasEntryPoint = true; } }
protected void GenerateFunctionDefinition( CParser.FunctionDefinitionContext functionDefinition) { var typeSpecifier = functionDefinition.RBATypeSpecifier(); var identifier = functionDefinition.RBAIdentifier(); var parameters = functionDefinition.RBAParameters(); var compoundStatement = functionDefinition?.compoundStatement(); DefineFunction(typeSpecifier, identifier, parameters); EmitFunction(typeSpecifier, identifier, parameters, compoundStatement); }
public override void ExitFunctionDefinition(CParser.FunctionDefinitionContext context) { //declarationSpecifiers? declarator declarationList? compoundStatement CDeclaration.EndFunctionDefinition(GetSpecifierCount(context.declarationSpecifiers())); }
//DECLARATIONS public override void EnterFunctionDefinition(CParser.FunctionDefinitionContext context) { CDeclaration.BeginFunctionDefinition(); }