public override object VisitStructVariableDeclaration_Array([NotNull] CMinusParser.StructVariableDeclaration_ArrayContext context)
        {
            string symbolType = SymbolTable.Symbol.RemoveExtras(context.typeSpecifier().GetText());

            if (symbolType == "void")
            {
                this.EmitSemanticErrorMessage("Variable declared as void type", context);
            }

            return(new SymbolTable.Symbol(
                       id: context.ID().GetText(),
                       type: symbolType,
                       construct: SymbolTable.Symbol.Construct.ARRAY,
                       scope: 1,
                       size: uint.Parse(context.NUM().GetText()),
                       pointerCount: SymbolTable.Symbol.CountStringAsterisks(context.typeSpecifier().GetText())
                       ));
        }
Beispiel #2
0
 // TODO
 public override object VisitStructVariableDeclaration_Array([NotNull] CMinusParser.StructVariableDeclaration_ArrayContext context)
 {
     return(base.VisitStructVariableDeclaration_Array(context));
 }