@Override public void assignAttributesLike(Primative likePrim) { dataType = likePrim.getDataType(); className = likePrim.getClassName(); extent = likePrim.getExtent(); }
/** The tree parser calls this at an AS node */ @Override public void defAs(JPNode asNode) { LOG.trace("Entering defAs {}", asNode); currSymbol.setAsNode(asNode); Primative primative = (Primative) currSymbol; JPNode typeNode = asNode.nextNode(); if (typeNode.getType() == ProParserTokenTypes.CLASS) typeNode = typeNode.nextNode(); if (typeNode.getType() == ProParserTokenTypes.TYPE_NAME) { primative.setDataType(DataType.getDataType(ProParserTokenTypes.CLASS)); primative.setClassName(typeNode); } else { primative.setDataType(DataType.getDataType(typeNode.getType())); } assert primative.getDataType() != null : "Failed to set datatype at " + asNode.getFilename() + " line " + asNode.getLine(); }
/** The tree parser calls this at a LIKE node */ @Override public void defLike(JPNode likeNode) { LOG.trace("Entering defLike {}", likeNode); currSymbol.setLikeNode(likeNode); Primative likePrim = (Primative) likeNode.nextNode().getSymbol(); Primative newPrim = (Primative) currSymbol; if (likePrim != null) { newPrim.assignAttributesLike(likePrim); assert newPrim.getDataType() != null : "Failed to set datatype at " + likeNode.getFilename() + " line " + likeNode.getLine(); } else { LOG.error("Failed to find LIKE datatype at {} line {}", likeNode.getFilename(), likeNode.getLine()); } }
/** * @see FieldRefNode#getSymbol() as it can be null */ public DataType getDataType() { if (getSymbol() == null) { // Just in order to avoid NPE return null; } return ((Primative) getSymbol()).getDataType(); }
@Override public void defExtent(JPNode extentNode) { LOG.trace("Entering defExtent {}", extentNode); Primative primative = (Primative) currSymbol; JPNode exprNode = extentNode.getFirstChild(); // If there is no expression node, then it's an "indeterminate extent". // If it's not a numeric literal, then we give up. if (exprNode == null || exprNode.getType() != ProParserTokenTypes.NUMBER) { primative.setExtent(-1); } else { primative.setExtent(Integer.parseInt(exprNode.getText())); } }
public String getClassName() { return ((Primative) getSymbol()).getClassName(); }
/** The tree parser calls this at an AS node */ @Override public void defAs(JPNode asNode) { LOG.trace("Entering defAs {}", asNode); currSymbol.setAsNode(asNode); Primative primative = (Primative) currSymbol; JPNode typeNode = asNode.nextNode(); if (typeNode.getType() == ProParserTokenTypes.CLASS) typeNode = typeNode.nextNode(); if (typeNode.getType() == ProParserTokenTypes.TYPE_NAME) { primative.setDataType(DataType.getDataType(ProParserTokenTypes.CLASS)); primative.setClassName(typeNode); } else { primative.setDataType(DataType.getDataType(typeNode.getType())); } assert primative.getDataType() != null : "Failed to set datatype at " + asNode.getFilename() + " line " + asNode.getLine(); }
/** The tree parser calls this at a LIKE node */ @Override public void defLike(JPNode likeNode) { LOG.trace("Entering defLike {}", likeNode); currSymbol.setLikeNode(likeNode); Primative likePrim = (Primative) likeNode.nextNode().getSymbol(); Primative newPrim = (Primative) currSymbol; if (likePrim != null) { newPrim.assignAttributesLike(likePrim); assert newPrim.getDataType() != null : "Failed to set datatype at " + likeNode.getFilename() + " line " + likeNode.getLine(); } else { LOG.error("Failed to find LIKE datatype at {} line {}", likeNode.getFilename(), likeNode.getLine()); } }
/** * Returns null if symbol is null or is a graphical component */ public DataType getDataType() { if (getSymbol() == null) { // Just in order to avoid NPE return null; } if (!(getSymbol() instanceof Primative)) { return null; } return ((Primative) getSymbol()).getDataType(); }
@Override public void defExtent(JPNode extentNode) { LOG.trace("Entering defExtent {}", extentNode); Primative primative = (Primative) currSymbol; JPNode exprNode = extentNode.getFirstChild(); // If there is no expression node, then it's an "indeterminate extent". // If it's not a numeric literal, then we give up. if (exprNode == null || exprNode.getType() != ProParserTokenTypes.NUMBER) { primative.setExtent(-1); } else { primative.setExtent(Integer.parseInt(exprNode.getText())); } }
public String getClassName() { return ((Primative) getSymbol()).getClassName(); }
@Override public void assignAttributesLike(Primative likePrim) { dataType = likePrim.getDataType(); className = likePrim.getClassName(); extent = likePrim.getExtent(); }
@Override public void assignAttributesLike(Primative likePrim) { dataType = likePrim.getDataType(); className = likePrim.getClassName(); extent = likePrim.getExtent(); }
@Override public void assignAttributesLike(Primative likePrim) { dataType = likePrim.getDataType(); className = likePrim.getClassName(); extent = likePrim.getExtent(); }