Disabled external gits
This commit is contained in:
19
cs320-clp/src/amyc/ast/Identifier.scala
Normal file
19
cs320-clp/src/amyc/ast/Identifier.scala
Normal file
@@ -0,0 +1,19 @@
|
||||
package amyc.ast
|
||||
|
||||
object Identifier {
|
||||
private val counter = new amyc.utils.UniqueCounter[String]
|
||||
|
||||
def fresh(name: String): Identifier = new Identifier(name)
|
||||
}
|
||||
|
||||
// Denotes a unique identifier in an Amy program
|
||||
// Notice that we rely on reference equality to compare Identifiers.
|
||||
// The numeric id will be generated lazily,
|
||||
// so the Identifiers are numbered in order when we print the program.
|
||||
final class Identifier private(val name: String) {
|
||||
private lazy val id = Identifier.counter.next(name)
|
||||
|
||||
def fullName = s"${name}_$id"
|
||||
|
||||
override def toString: String = name
|
||||
}
|
Reference in New Issue
Block a user