001 package org.mesopotamia.lang.java; 002 003 import org.mesopotamia.LanguageElement; 004 import org.mesopotamia.MesopotamiaException; 005 import org.mesopotamia.MesopotamiaRuntimeException; 006 import org.mesopotamia.NodeData; 007 import org.mesopotamia.RepositoryLanguage; 008 import org.mesopotamia.Scan; 009 import org.mesopotamia.lang.java.ref.TypeInfo; 010 import org.mesopotamia.lang.java.ref.TypeSpecInfo; 011 012 public class ArrayDeclarator extends PrimaryExpression { 013 014 public ArrayDeclarator(NodeData xData, Class<?> context, Scan scan, 015 RepositoryLanguage language, Object environment) throws MesopotamiaException { 016 super(xData, context, scan, language, environment); 017 018 // Select attributes 019 020 } 021 022 public TypeSpecInfo getTypeSpecInfo() { 023 try { 024 LanguageElement firstOperand = getChild(0); 025 final TypeSpecInfo ts = firstOperand instanceof Expression ? ((Expression) firstOperand).getTypeSpecInfo() : null; 026 return ts==null ? null : new TypeSpecInfo() { 027 028 public int getDimensions() { 029 return ts.getDimensions()+1; 030 } 031 032 public TypeInfo getTypeInfo() { 033 return ts.getTypeInfo(); 034 } 035 036 }; 037 } catch (MesopotamiaException e) { 038 throw new MesopotamiaRuntimeException(e); 039 } 040 } 041 042 }