MCPcopy Create free account
hub / github.com/antlr/codebuff / getAttribute

Method getAttribute

output/java/1.4.19/Interpreter.java:1222–1242  ·  view source on GitHub ↗

Find an attribute via dynamic scoping up enclosing scope chain. Only look for a dictionary definition if the attribute is not found, so attributes sent in to a template override dictionary names. Return ST#EMPTY_ATTR if found definition but no value.

(InstanceScope scope, String name)

Source from the content-addressed store, hash-verified

1220 */
1221
1222 public Object getAttribute(InstanceScope scope, String name) {
1223 InstanceScope current = scope;
1224 while ( current !=null ) {
1225 ST p = current.st;
1226 FormalArgument localArg = null;
1227 if ( p.impl.formalArguments!=null ) localArg = p.impl.formalArguments.get(name);
1228 if ( localArg !=null ) {
1229 Object o = p.locals[localArg.index];
1230 return o;
1231 }
1232 current = current.parent; // look up enclosing scope chain
1233 }
1234 // got to root scope and no definition, try dictionaries in group and up
1235 final ST self = scope.st;
1236 STGroup g = self.impl.nativeGroup;
1237 Object o = getDictionary(g, name);
1238 if ( o !=null ) return o;
1239
1240 // not found, report unknown attr
1241 throw new STNoSuchAttributeException(name, scope);
1242 }
1243
1244 public Object getDictionary(STGroup g, String name) {
1245 if ( g.isDictionary(name) ) {

Callers 2

_execMethod · 0.95
passthruMethod · 0.95

Calls 2

getDictionaryMethod · 0.95
getMethod · 0.65

Tested by

no test coverage detected