Mercurial > hg > graal-compiler
annotate graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/instrument/PhylumMarked.java @ 14094:3f27e57439ed
Truffle/Instrumentation: significant rearrangement (including moved class) and extension of the Truffle Instrumentation Framework. New interfaces include DebugContext (which can be attached to the ExecutionContext), through which access is provided to possibly language-specific (a) node instrumentation, (b) debug services manager, (c) notification when programs halt, (d) display of language values, and (e) display of variable identifiers.
author | Michael Van De Vanter <michael.van.de.vanter@oracle.com> |
---|---|
date | Mon, 03 Feb 2014 20:58:23 -0800 |
parents | 58ca96949f2e |
children |
rev | line source |
---|---|
13562
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
1 /* |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
2 * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
4 * |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
7 * published by the Free Software Foundation. Oracle designates this |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
8 * particular file as subject to the "Classpath" exception as provided |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
9 * by Oracle in the LICENSE file that accompanied this code. |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
10 * |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
11 * This code is distributed in the hope that it will be useful, but WITHOUT |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
14 * version 2 for more details (a copy is included in the LICENSE file that |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
15 * accompanied this code). |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
16 * |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
17 * You should have received a copy of the GNU General Public License version |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
18 * 2 along with this work; if not, write to the Free Software Foundation, |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
20 * |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
22 * or visit www.oracle.com if you need additional information or have any |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
23 * questions. |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
24 */ |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
25 package com.oracle.truffle.api.nodes.instrument; |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
26 |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
27 import java.util.*; |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
28 |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
29 import com.oracle.truffle.api.nodes.*; |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
30 |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
31 /** |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
32 * A kind of {@link Node} that can be marked as belong to 0 or more {@linkplain NodePhylum phyla}. |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
33 */ |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
34 public interface PhylumMarked { |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
35 |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
36 /** |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
37 * Is this proxy tagged as belonging to a particular category of language constructs? |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
38 */ |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
39 boolean isMarkedAs(NodePhylum phylum); |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
40 |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
41 /** |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
42 * In which categories is this node tagged (<em>empty set</em> if none). |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
43 */ |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
44 Set<NodePhylum> getPhylumMarks(); |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
45 |
58ca96949f2e
Truffle: introduce the notion of a node "phylum", a user-oriented categorization of nodes that is independent of implementation, to be used by tools when identifying program parts, such as "statements".
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents:
diff
changeset
|
46 } |