@Override public int getArgumentCount() { return base.getArgumentCount(); }
@Override public int getArgumentCount() { return base.getArgumentCount(); }
protected int getArgumentCount(CAstEntity f) { return f.getArgumentCount(); }
protected int getArgumentCount(CAstEntity f) { return f.getArgumentCount(); }
@Override protected Position[] getParameterPositions(CAstEntity e) { if (e.getKind() == CAstEntity.SCRIPT_ENTITY) { return new Position[0]; } else { Position[] ps = new Position[ e.getArgumentCount() ]; for(int i = 2; i < e.getArgumentCount(); i++) { ps[i] = e.getPosition(i-2); } return ps; } }
@Override protected Position[] getParameterPositions(CAstEntity e) { if (e.getKind() == CAstEntity.SCRIPT_ENTITY) { return new Position[0]; } else { Position[] ps = new Position[ e.getArgumentCount() ]; for(int i = 2; i < e.getArgumentCount(); i++) { ps[i] = e.getPosition(i-2); } return ps; } }
@Override protected Position[] getParameterPositions(CAstEntity n) { int offset = 0; Position[] parameterPositions = new Position[ n.getArgumentCount() ]; if ((n.getType() instanceof CAstType.Method) && !((CAstType.Method)n.getType()).isStatic()) { offset = 1; } for(int i = 0; i < n.getArgumentCount() - offset; i++) { parameterPositions[i+offset] = n.getPosition(i); } return parameterPositions; } }
@Override protected Position[] getParameterPositions(CAstEntity n) { int offset = 0; Position[] parameterPositions = new Position[ n.getArgumentCount() ]; if ((n.getType() instanceof CAstType.Method) && !((CAstType.Method)n.getType()).isStatic()) { offset = 1; } for(int i = 0; i < n.getArgumentCount() - offset; i++) { parameterPositions[i+offset] = n.getPosition(i); } return parameterPositions; } }
protected AbstractScope makeScriptScope(final CAstEntity s, Scope parent) { return new AbstractScope(parent) { SymbolTable scriptGlobalSymtab = new SymbolTable(s.getArgumentCount());
protected AbstractScope makeScriptScope(final CAstEntity s, Scope parent) { return new AbstractScope(parent) { SymbolTable scriptGlobalSymtab = new SymbolTable(s.getArgumentCount());
private void dump(CAstEntity entity, int indent, StringBuilder buf) { Collection<CAstEntity> scopedEntities = Collections.emptySet(); if(entity.getKind() == CAstEntity.SCRIPT_ENTITY) { buf.append(indent(indent)).append(entity.getName()).append(":\n"); scopedEntities = dumpScopedEntities(entity, indent+2, buf); dump(entity.getAST(), indent, buf, entity.getControlFlow()); } else if(entity.getKind() == CAstEntity.FUNCTION_ENTITY) { buf.append(indent(indent)).append("function ").append(entity.getName()).append('('); for(int i=0;i<entity.getArgumentCount();++i) { if(i>0) buf.append(", "); buf.append(entity.getArgumentNames()[i]); } buf.append(") {\n"); scopedEntities = dumpScopedEntities(entity, indent+2, buf); dump(entity.getAST(), indent+2, buf, entity.getControlFlow()); buf.append(indent(indent)).append("}\n\n"); } else { throw new Error("Unknown entity kind " + entity.getKind()); } for(CAstEntity scopedEntity : scopedEntities) dump(scopedEntity, indent, buf); }