encodingtable.go 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. package code128
  2. var encodingTable = [107][]bool{
  3. []bool{true, true, false, true, true, false, false, true, true, false, false},
  4. []bool{true, true, false, false, true, true, false, true, true, false, false},
  5. []bool{true, true, false, false, true, true, false, false, true, true, false},
  6. []bool{true, false, false, true, false, false, true, true, false, false, false},
  7. []bool{true, false, false, true, false, false, false, true, true, false, false},
  8. []bool{true, false, false, false, true, false, false, true, true, false, false},
  9. []bool{true, false, false, true, true, false, false, true, false, false, false},
  10. []bool{true, false, false, true, true, false, false, false, true, false, false},
  11. []bool{true, false, false, false, true, true, false, false, true, false, false},
  12. []bool{true, true, false, false, true, false, false, true, false, false, false},
  13. []bool{true, true, false, false, true, false, false, false, true, false, false},
  14. []bool{true, true, false, false, false, true, false, false, true, false, false},
  15. []bool{true, false, true, true, false, false, true, true, true, false, false},
  16. []bool{true, false, false, true, true, false, true, true, true, false, false},
  17. []bool{true, false, false, true, true, false, false, true, true, true, false},
  18. []bool{true, false, true, true, true, false, false, true, true, false, false},
  19. []bool{true, false, false, true, true, true, false, true, true, false, false},
  20. []bool{true, false, false, true, true, true, false, false, true, true, false},
  21. []bool{true, true, false, false, true, true, true, false, false, true, false},
  22. []bool{true, true, false, false, true, false, true, true, true, false, false},
  23. []bool{true, true, false, false, true, false, false, true, true, true, false},
  24. []bool{true, true, false, true, true, true, false, false, true, false, false},
  25. []bool{true, true, false, false, true, true, true, false, true, false, false},
  26. []bool{true, true, true, false, true, true, false, true, true, true, false},
  27. []bool{true, true, true, false, true, false, false, true, true, false, false},
  28. []bool{true, true, true, false, false, true, false, true, true, false, false},
  29. []bool{true, true, true, false, false, true, false, false, true, true, false},
  30. []bool{true, true, true, false, true, true, false, false, true, false, false},
  31. []bool{true, true, true, false, false, true, true, false, true, false, false},
  32. []bool{true, true, true, false, false, true, true, false, false, true, false},
  33. []bool{true, true, false, true, true, false, true, true, false, false, false},
  34. []bool{true, true, false, true, true, false, false, false, true, true, false},
  35. []bool{true, true, false, false, false, true, true, false, true, true, false},
  36. []bool{true, false, true, false, false, false, true, true, false, false, false},
  37. []bool{true, false, false, false, true, false, true, true, false, false, false},
  38. []bool{true, false, false, false, true, false, false, false, true, true, false},
  39. []bool{true, false, true, true, false, false, false, true, false, false, false},
  40. []bool{true, false, false, false, true, true, false, true, false, false, false},
  41. []bool{true, false, false, false, true, true, false, false, false, true, false},
  42. []bool{true, true, false, true, false, false, false, true, false, false, false},
  43. []bool{true, true, false, false, false, true, false, true, false, false, false},
  44. []bool{true, true, false, false, false, true, false, false, false, true, false},
  45. []bool{true, false, true, true, false, true, true, true, false, false, false},
  46. []bool{true, false, true, true, false, false, false, true, true, true, false},
  47. []bool{true, false, false, false, true, true, false, true, true, true, false},
  48. []bool{true, false, true, true, true, false, true, true, false, false, false},
  49. []bool{true, false, true, true, true, false, false, false, true, true, false},
  50. []bool{true, false, false, false, true, true, true, false, true, true, false},
  51. []bool{true, true, true, false, true, true, true, false, true, true, false},
  52. []bool{true, true, false, true, false, false, false, true, true, true, false},
  53. []bool{true, true, false, false, false, true, false, true, true, true, false},
  54. []bool{true, true, false, true, true, true, false, true, false, false, false},
  55. []bool{true, true, false, true, true, true, false, false, false, true, false},
  56. []bool{true, true, false, true, true, true, false, true, true, true, false},
  57. []bool{true, true, true, false, true, false, true, true, false, false, false},
  58. []bool{true, true, true, false, true, false, false, false, true, true, false},
  59. []bool{true, true, true, false, false, false, true, false, true, true, false},
  60. []bool{true, true, true, false, true, true, false, true, false, false, false},
  61. []bool{true, true, true, false, true, true, false, false, false, true, false},
  62. []bool{true, true, true, false, false, false, true, true, false, true, false},
  63. []bool{true, true, true, false, true, true, true, true, false, true, false},
  64. []bool{true, true, false, false, true, false, false, false, false, true, false},
  65. []bool{true, true, true, true, false, false, false, true, false, true, false},
  66. []bool{true, false, true, false, false, true, true, false, false, false, false},
  67. []bool{true, false, true, false, false, false, false, true, true, false, false},
  68. []bool{true, false, false, true, false, true, true, false, false, false, false},
  69. []bool{true, false, false, true, false, false, false, false, true, true, false},
  70. []bool{true, false, false, false, false, true, false, true, true, false, false},
  71. []bool{true, false, false, false, false, true, false, false, true, true, false},
  72. []bool{true, false, true, true, false, false, true, false, false, false, false},
  73. []bool{true, false, true, true, false, false, false, false, true, false, false},
  74. []bool{true, false, false, true, true, false, true, false, false, false, false},
  75. []bool{true, false, false, true, true, false, false, false, false, true, false},
  76. []bool{true, false, false, false, false, true, true, false, true, false, false},
  77. []bool{true, false, false, false, false, true, true, false, false, true, false},
  78. []bool{true, true, false, false, false, false, true, false, false, true, false},
  79. []bool{true, true, false, false, true, false, true, false, false, false, false},
  80. []bool{true, true, true, true, false, true, true, true, false, true, false},
  81. []bool{true, true, false, false, false, false, true, false, true, false, false},
  82. []bool{true, false, false, false, true, true, true, true, false, true, false},
  83. []bool{true, false, true, false, false, true, true, true, true, false, false},
  84. []bool{true, false, false, true, false, true, true, true, true, false, false},
  85. []bool{true, false, false, true, false, false, true, true, true, true, false},
  86. []bool{true, false, true, true, true, true, false, false, true, false, false},
  87. []bool{true, false, false, true, true, true, true, false, true, false, false},
  88. []bool{true, false, false, true, true, true, true, false, false, true, false},
  89. []bool{true, true, true, true, false, true, false, false, true, false, false},
  90. []bool{true, true, true, true, false, false, true, false, true, false, false},
  91. []bool{true, true, true, true, false, false, true, false, false, true, false},
  92. []bool{true, true, false, true, true, false, true, true, true, true, false},
  93. []bool{true, true, false, true, true, true, true, false, true, true, false},
  94. []bool{true, true, true, true, false, true, true, false, true, true, false},
  95. []bool{true, false, true, false, true, true, true, true, false, false, false},
  96. []bool{true, false, true, false, false, false, true, true, true, true, false},
  97. []bool{true, false, false, false, true, false, true, true, true, true, false},
  98. []bool{true, false, true, true, true, true, false, true, false, false, false},
  99. []bool{true, false, true, true, true, true, false, false, false, true, false},
  100. []bool{true, true, true, true, false, true, false, true, false, false, false},
  101. []bool{true, true, true, true, false, true, false, false, false, true, false},
  102. []bool{true, false, true, true, true, false, true, true, true, true, false},
  103. []bool{true, false, true, true, true, true, false, true, true, true, false},
  104. []bool{true, true, true, false, true, false, true, true, true, true, false},
  105. []bool{true, true, true, true, false, true, false, true, true, true, false},
  106. []bool{true, true, false, true, false, false, false, false, true, false, false},
  107. []bool{true, true, false, true, false, false, true, false, false, false, false},
  108. []bool{true, true, false, true, false, false, true, true, true, false, false},
  109. []bool{true, true, false, false, false, true, true, true, false, true, false, true, true},
  110. }
  111. const startASymbol byte = 103
  112. const startBSymbol byte = 104
  113. const startCSymbol byte = 105
  114. const codeASymbol byte = 101
  115. const codeBSymbol byte = 100
  116. const codeCSymbol byte = 99
  117. const stopSymbol byte = 106
  118. const (
  119. // FNC1 - Special Function 1
  120. FNC1 = '\u00f1'
  121. // FNC2 - Special Function 2
  122. FNC2 = '\u00f2'
  123. // FNC3 - Special Function 3
  124. FNC3 = '\u00f3'
  125. // FNC4 - Special Function 4
  126. FNC4 = '\u00f4'
  127. )
  128. const abTable = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
  129. const bTable = abTable + "`abcdefghijklmnopqrstuvwxyz{|}~\u007F"
  130. const aOnlyTable = "\u0000\u0001\u0002\u0003\u0004" + // NUL, SOH, STX, ETX, EOT
  131. "\u0005\u0006\u0007\u0008\u0009" + // ENQ, ACK, BEL, BS, HT
  132. "\u000A\u000B\u000C\u000D\u000E" + // LF, VT, FF, CR, SO
  133. "\u000F\u0010\u0011\u0012\u0013" + // SI, DLE, DC1, DC2, DC3
  134. "\u0014\u0015\u0016\u0017\u0018" + // DC4, NAK, SYN, ETB, CAN
  135. "\u0019\u001A\u001B\u001C\u001D" + // EM, SUB, ESC, FS, GS
  136. "\u001E\u001F" // RS, US
  137. const aTable = abTable + aOnlyTable