public override IAstNode VisitExternalDeclaration([NotNull] ExternalDeclarationContext context) { var retVal = ( Prototype )context.Signature.Accept(this); RuntimeState.FunctionDeclarations.AddOrReplaceItem(retVal); return(retVal); }
public override IAstNode VisitExternalDeclaration(ExternalDeclarationContext context) { var retVal = ( Prototype )context.Signature.Accept(this); var error = retVal.CollectErrors( ); if (error.Count == 0) { RuntimeState.FunctionDeclarations.AddOrReplaceItem(retVal); } return(retVal); }
private void ParseTranslationUnit(TranslationUnitContext node) { TranslationUnitContext transUnit = node.translationUnit(); ExternalDeclarationContext externalDeclaration = node.externalDeclaration(); if (transUnit != null) { this.ParseTranslationUnit(transUnit); } if (externalDeclaration != null) { DeclarationContext[] declarations = externalDeclaration.GetRuleContexts <DeclarationContext>(); FunctionDefinitionContext[] functions = externalDeclaration.GetRuleContexts <FunctionDefinitionContext>(); foreach (DeclarationContext declaration in declarations) { InitDeclaratorListContext initDeclaratorList = declaration.initDeclaratorList(); string name = initDeclaratorList.initDeclarator().declarator().directDeclarator().Identifier().GetText(); this.WriteKeyValue("Field", name); } foreach (FunctionDefinitionContext function in functions) { DirectDeclaratorContext[] directDeclarators = function.declarator().GetRuleContexts <DirectDeclaratorContext>(); foreach (DirectDeclaratorContext directDeclarator in directDeclarators) { string name = directDeclarator.directDeclarator().Identifier().GetText(); this.WriteKeyValue("Function", name); } } } }
public override Value VisitExternalDeclaration([NotNull] ExternalDeclarationContext context) { return(context.Signature.Accept(this)); }