Page MenuHomePhabricator

D10121.diff
No OneTemporary

D10121.diff

diff --git a/src/parser/aast/api/AASTNode.php b/src/parser/aast/api/AASTNode.php
--- a/src/parser/aast/api/AASTNode.php
+++ b/src/parser/aast/api/AASTNode.php
@@ -130,22 +130,32 @@
return $this->tokenCache;
}
+ public function selectTokensOfType($type_name) {
+ return $this->selectTokensOfTypes(array($type_name));
+ }
/**
- * Select all tokens of a given type.
+ * Select all tokens of any given types.
*/
- public function selectTokensOfType($type_name) {
- if (isset($this->tokenCache)) {
- return idx($this->tokenCache, $type_name, array());
- } else {
- $result = array();
- foreach ($this->getTokens() as $id => $token) {
- if ($token->getTypeName() == $type_name) {
- $result[$id] = $token;
+ public function selectTokensOfTypes(array $type_names) {
+ $tokens = array();
+
+ foreach ($type_names as $type_name) {
+ if (isset($this->tokenCache)) {
+ $cached_tokens = idx($this->tokenCache, $type_name, array());
+ foreach ($cached_tokens as $id => $cached_token) {
+ $tokens[$id] = $cached_token;
+ }
+ } else {
+ foreach ($this->getTokens() as $id => $token) {
+ if ($token->getTypeName() == $type_name) {
+ $tokens[$id] = $token;
+ }
}
}
- return $result;
}
+
+ return $tokens;
}
public function selectDescendantsOfType($type_name) {

File Metadata

Mime Type
text/plain
Expires
May 9 2024, 8:35 PM (5 w, 22 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6276979
Default Alt Text
D10121.diff (1 KB)

Event Timeline