aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/identifiers/Identifiers.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-09 14:21:48 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-09 14:21:59 +0100
commit0a550c3bb4e624d76b3876e92a2bd0e235301fba (patch)
treeee89fc17f79155f830b3413318cf3c2c76364e2d /src/main/java/org/zwobble/couscous/ast/identifiers/Identifiers.java
parentf005b283a1b1c74c8b98499069e6afcb5e9a9ade (diff)
Remove MethodTypeParameter and adjust Identifier generation
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/identifiers/Identifiers.java')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/identifiers/Identifiers.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/identifiers/Identifiers.java b/src/main/java/org/zwobble/couscous/ast/identifiers/Identifiers.java
new file mode 100644
index 0000000..9beac27
--- /dev/null
+++ b/src/main/java/org/zwobble/couscous/ast/identifiers/Identifiers.java
@@ -0,0 +1,29 @@
+package org.zwobble.couscous.ast.identifiers;
+
+public class Identifiers {
+ public static final Identifier TOP = new TopIdentifier();
+
+ public static Identifier type(Identifier identifier, String name) {
+ return extend(identifier, name, IdentifierType.TYPE);
+ }
+
+ public static Identifier method(Identifier identifier, String name) {
+ return extend(identifier, name, IdentifierType.METHOD);
+ }
+
+ public static Identifier constructor(Identifier identifier) {
+ return extend(identifier, "", IdentifierType.CONSTRUCTOR);
+ }
+
+ public static Identifier variable(Identifier identifier, String name) {
+ return extend(identifier, name, IdentifierType.VARIABLE);
+ }
+
+ private static Identifier extend(Identifier identifier, String name, IdentifierType type) {
+ return new ExtendedIdentifier(identifier, name, type);
+ }
+
+ public static Identifier forType(String name) {
+ return type(TOP, name);
+ }
+}