Hex Artifact Content
Not logged in

Artifact 62182a8e7452f9e8c6baa2b8e743fba48bffee27:


0000: ef bb bf 2f 2a 2a 0d 0a 20 2a 20 41 75 74 68 6f  .../**.. * Autho
0010: 72 73 3a 20 6b 2e 69 6e 61 62 61 0d 0a 20 2a 20  rs: k.inaba.. * 
0020: 4c 69 63 65 6e 73 65 3a 20 4e 59 53 4c 20 30 2e  License: NYSL 0.
0030: 39 39 38 32 20 68 74 74 70 3a 2f 2f 77 77 77 2e  9982 http://www.
0040: 6b 6d 6f 6e 6f 73 2e 6e 65 74 2f 6e 79 73 6c 2f  kmonos.net/nysl/
0050: 0d 0a 20 2a 0d 0a 20 2a 20 44 65 66 69 6e 69 74  .. *.. * Definit
0060: 69 6f 6e 20 6f 66 20 63 6f 6e 73 74 61 6e 74 73  ion of constants
0070: 20 72 65 6c 61 74 65 64 20 74 6f 20 74 68 65 20   related to the 
0080: 6c 61 79 65 72 73 2e 0d 0a 20 2a 2f 0d 0a 6d 6f  layers... */..mo
0090: 64 75 6c 65 20 70 6f 6c 65 6d 79 2e 6c 61 79 65  dule polemy.laye
00a0: 72 3b 0d 0a 69 6d 70 6f 72 74 20 70 6f 6c 65 6d  r;..import polem
00b0: 79 2e 5f 63 6f 6d 6d 6f 6e 3b 0d 0a 69 6d 70 6f  y._common;..impo
00c0: 72 74 20 70 6f 6c 65 6d 79 2e 66 61 69 6c 75 72  rt polemy.failur
00d0: 65 3b 0d 0a 0d 0a 2f 2f 2f 20 54 79 70 65 20 66  e;..../// Type f
00e0: 6f 72 20 74 68 65 20 6c 61 79 65 72 20 49 44 0d  or the layer ID.
00f0: 0a 0d 0a 61 6c 69 61 73 20 73 74 72 69 6e 67 20  ...alias string 
0100: 4c 61 79 65 72 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a  Layer;....enum :
0110: 20 4c 61 79 65 72 0d 0a 7b 0d 0a 09 53 79 73 74   Layer..{...Syst
0120: 65 6d 4c 61 79 65 72 20 20 20 3d 20 22 28 73 79  emLayer   = "(sy
0130: 73 74 65 6d 29 22 2c 20 20 20 2f 2f 2f 20 50 72  stem)",   /// Pr
0140: 65 64 65 66 69 6e 65 64 20 6c 61 79 65 72 20 66  edefined layer f
0150: 6f 72 20 69 6e 74 65 72 6e 61 6c 20 64 61 74 61  or internal data
0160: 0d 0a 09 56 61 6c 75 65 4c 61 79 65 72 20 20 20  ...ValueLayer   
0170: 20 3d 20 22 40 76 61 6c 75 65 22 2c 20 20 20 20   = "@value",    
0180: 20 2f 2f 2f 20 50 72 65 64 65 66 69 6e 65 64 20   /// Predefined 
0190: 6c 61 79 65 72 20 66 6f 72 20 6e 6f 72 6d 61 6c  layer for normal
01a0: 20 72 75 6e 0d 0a 09 4d 61 63 72 6f 4c 61 79 65   run...MacroLaye
01b0: 72 20 20 20 20 3d 20 22 40 6d 61 63 72 6f 22 2c  r    = "@macro",
01c0: 20 20 20 20 20 2f 2f 2f 20 50 72 65 64 65 66 69       /// Predefi
01d0: 6e 65 64 20 6c 61 79 65 72 20 66 6f 72 20 6d 61  ned layer for ma
01e0: 63 72 6f 20 72 75 6e 20 28 40 6c 61 79 28 29 20  cro run (@lay() 
01f0: 63 68 61 6e 67 65 73 20 6c 61 79 65 72 29 0d 0a  changes layer)..
0200: 09 52 61 77 4d 61 63 72 6f 4c 61 79 65 72 20 3d  .RawMacroLayer =
0210: 20 22 28 72 61 77 6d 61 63 72 6f 29 22 2c 20 2f   "(rawmacro)", /
0220: 2f 2f 20 50 72 65 64 65 66 69 6e 65 64 20 6c 61  // Predefined la
0230: 79 65 72 20 66 6f 72 20 6d 61 63 72 6f 20 72 75  yer for macro ru
0240: 6e 20 28 40 6c 61 79 28 29 20 62 65 63 6f 6d 65  n (@lay() become
0250: 73 20 41 53 54 29 0d 0a 7d 0d 0a 0d 0a 62 6f 6f  s AST)..}....boo
0260: 6c 20 69 73 4d 61 63 72 6f 69 73 68 4c 61 79 65  l isMacroishLaye
0270: 72 28 20 4c 61 79 65 72 20 6c 61 79 20 29 0d 0a  r( Layer lay )..
0280: 7b 0d 0a 09 72 65 74 75 72 6e 20 6c 61 79 3d 3d  {...return lay==
0290: 4d 61 63 72 6f 4c 61 79 65 72 20 7c 7c 20 6c 61  MacroLayer || la
02a0: 79 3d 3d 52 61 77 4d 61 63 72 6f 4c 61 79 65 72  y==RawMacroLayer
02b0: 3b 0d 0a 7d 0d 0a 0d 0a 62 6f 6f 6c 20 69 73 4e  ;..}....bool isN
02c0: 6f 4c 61 79 65 72 43 68 61 6e 67 65 4c 61 79 65  oLayerChangeLaye
02d0: 72 28 20 4c 61 79 65 72 20 6c 61 79 20 29 0d 0a  r( Layer lay )..
02e0: 7b 0d 0a 09 72 65 74 75 72 6e 20 6c 61 79 3d 3d  {...return lay==
02f0: 52 61 77 4d 61 63 72 6f 4c 61 79 65 72 3b 0d 0a  RawMacroLayer;..
0300: 7d 0d 0a                                         }..