File Annotation
Not logged in
3995a5eb6a 2010-11-21        kinaba: /**
3995a5eb6a 2010-11-21        kinaba:  * Authors: k.inaba
3995a5eb6a 2010-11-21        kinaba:  * License: NYSL 0.9982 http://www.kmonos.net/nysl/
3995a5eb6a 2010-11-21        kinaba:  *
3995a5eb6a 2010-11-21        kinaba:  * Interpreter-wise fresh ID generator.
3995a5eb6a 2010-11-21        kinaba:  */
3995a5eb6a 2010-11-21        kinaba: module polemy.fresh;
3995a5eb6a 2010-11-21        kinaba: import polemy._common;
3995a5eb6a 2010-11-21        kinaba: import core.atomic;
3995a5eb6a 2010-11-21        kinaba: 
3995a5eb6a 2010-11-21        kinaba: private shared int freshVarId = -1;
3995a5eb6a 2010-11-21        kinaba: 
3995a5eb6a 2010-11-21        kinaba: /// Generate one fresh variable name
3995a5eb6a 2010-11-21        kinaba: 
3995a5eb6a 2010-11-21        kinaba: string freshVarName()
3995a5eb6a 2010-11-21        kinaba: {
3995a5eb6a 2010-11-21        kinaba: 	return text("$", atomicOp!("+=")(freshVarId, 1));
3995a5eb6a 2010-11-21        kinaba: }