Hex Artifact Content
Not logged in

Artifact 15707244447f69717d91d75af2ec22670ff3f709:


0000: 2f 2a 2a 0d 0a 20 2a 20 41 75 74 68 6f 72 73 3a  /**.. * Authors:
0010: 20 6b 2e 69 6e 61 62 61 0d 0a 20 2a 20 4c 69 63   k.inaba.. * Lic
0020: 65 6e 73 65 3a 20 4e 59 53 4c 20 30 2e 39 39 38  ense: NYSL 0.998
0030: 32 20 68 74 74 70 3a 2f 2f 77 77 77 2e 6b 6d 6f  2 http://www.kmo
0040: 6e 6f 73 2e 6e 65 74 2f 6e 79 73 6c 2f 0d 0a 20  nos.net/nysl/.. 
0050: 2a 0d 0a 20 2a 20 49 6e 74 65 72 70 72 65 74 65  *.. * Interprete
0060: 72 2d 77 69 73 65 20 66 72 65 73 68 20 49 44 20  r-wise fresh ID 
0070: 67 65 6e 65 72 61 74 6f 72 2e 0d 0a 20 2a 2f 0d  generator... */.
0080: 0a 6d 6f 64 75 6c 65 20 70 6f 6c 65 6d 79 2e 66  .module polemy.f
0090: 72 65 73 68 3b 0d 0a 69 6d 70 6f 72 74 20 70 6f  resh;..import po
00a0: 6c 65 6d 79 2e 5f 63 6f 6d 6d 6f 6e 3b 0d 0a 69  lemy._common;..i
00b0: 6d 70 6f 72 74 20 63 6f 72 65 2e 61 74 6f 6d 69  mport core.atomi
00c0: 63 3b 0d 0a 0d 0a 70 72 69 76 61 74 65 20 73 68  c;....private sh
00d0: 61 72 65 64 20 69 6e 74 20 66 72 65 73 68 56 61  ared int freshVa
00e0: 72 49 64 20 3d 20 2d 31 3b 0d 0a 0d 0a 2f 2f 2f  rId = -1;....///
00f0: 20 47 65 6e 65 72 61 74 65 20 6f 6e 65 20 66 72   Generate one fr
0100: 65 73 68 20 76 61 72 69 61 62 6c 65 20 6e 61 6d  esh variable nam
0110: 65 0d 0a 0d 0a 73 74 72 69 6e 67 20 66 72 65 73  e....string fres
0120: 68 56 61 72 4e 61 6d 65 28 29 0d 0a 7b 0d 0a 09  hVarName()..{...
0130: 72 65 74 75 72 6e 20 74 65 78 74 28 22 24 22 2c  return text("$",
0140: 20 61 74 6f 6d 69 63 4f 70 21 28 22 2b 3d 22 29   atomicOp!("+=")
0150: 28 66 72 65 73 68 56 61 72 49 64 2c 20 31 29 29  (freshVarId, 1))
0160: 3b 0d 0a 7d 0d 0a                                ;..}..