aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/identifiers/Identifiers.java
diff options
context:
space:
mode:
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);
+ }
+}