Syntax.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package me.hammerle.code;
  2. public enum Syntax
  3. {
  4. UNKNOWN(" ", 0),
  5. OPEN_BRACKET("(", 1, (byte) 2),
  6. CLOSE_BRACKET(")", 1, (byte) 1),
  7. OPEN_SBRACKET("[", 1, (byte) 4),
  8. CLOSE_SBRACKET("]", 1, (byte) 3),
  9. INC("++", 2, (byte) 5, (byte) 1),
  10. POST_INC("p+", 2, (byte) 5, (byte) 1),
  11. DEC("--", 2, (byte) 5, (byte) 1),
  12. POST_DEC("p-", 2, (byte) 5, (byte) 1),
  13. NOT("!", 2, (byte) 0, (byte) 1),
  14. BIT_NOT("~", 2, (byte) 0, (byte) 1),
  15. MUL("*", 3),
  16. DIV("/", 3),
  17. MOD("%", 3),
  18. ADD("+", 4),
  19. SUB("-", 4),
  20. LEFT_SHIFT("<<", 5),
  21. RIGHT_SHIFT(">>", 5),
  22. SMALLER("<", 6),
  23. SMALLER_EQUAL("<=", 6),
  24. GREATER(">", 6),
  25. GREATER_EQUAL(">=", 6),
  26. EQUAL("==", 7),
  27. NOT_EQUAL("!=", 7),
  28. BIT_AND("&", 8),
  29. BIT_XOR("^", 9),
  30. BIT_OR("|", 10),
  31. AND("&&", 11),
  32. OR("||", 12),
  33. SET("=", 14),
  34. SET_ADD("+=", 14),
  35. SET_SUB("-=", 14),
  36. SET_MUL("*=", 14),
  37. SET_DIV("/=", 14),
  38. SET_MOD("%=", 14),
  39. SET_SHIFT_LEFT("<<=", 14),
  40. SET_SHIFT_RIGHT(">>=", 14),
  41. SET_BIT_AND("&=", 14),
  42. SET_BIT_XOR("^=", 14),
  43. SET_BIT_OR("|=", 14),
  44. COMMA(",", 15, (byte) -1);
  45. private int weight;
  46. private String function;
  47. private byte status;
  48. private byte pars;
  49. Syntax(String function, int weight, byte status, byte pars)
  50. {
  51. this.weight = weight;
  52. this.function = function;
  53. this.status = status;
  54. this.pars = pars;
  55. }
  56. Syntax(String function, int weight, byte status)
  57. {
  58. this(function, weight, status, (byte) 2);
  59. }
  60. Syntax(String function, int weight)
  61. {
  62. this(function, weight, (byte) 0);
  63. }
  64. public String getFunction()
  65. {
  66. return function;
  67. }
  68. public int getWeight()
  69. {
  70. return weight;
  71. }
  72. public boolean shouldStartLayer()
  73. {
  74. return status == 1 || status == 3;
  75. }
  76. public boolean shouldEndLayer()
  77. {
  78. return status == 2 || status == 4;
  79. }
  80. public boolean isFunction()
  81. {
  82. return status >= 0;
  83. }
  84. public boolean isArray()
  85. {
  86. return status == 3 || status == 4;
  87. }
  88. public boolean isIncOrDec()
  89. {
  90. return status == 5;
  91. }
  92. public byte getParameters()
  93. {
  94. return pars;
  95. }
  96. }