public override CompilerResult VisitTypeNameRank(DesignScriptParser.TypeNameRankContext context) { var type = VisitTypeName(context.typeName()) as TypeCompilerResult; var rank = context.LBRACK().Length; if (rank == 0) { return(new TypeCompilerResult(type.Type)); } var arrayType = LLVM.ArrayType((LLVMTypeRef)type.Type, 0); return(new TypeCompilerResult(arrayType)); }
/// <summary> /// Visit a parse tree produced by the <c>typeNameRank</c> /// labeled alternative in <see cref="DesignScriptParser.typeNameWithRank"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitTypeNameRank([NotNull] DesignScriptParser.TypeNameRankContext context) { return(VisitChildren(context)); }