C# Library for the Fjord Config Format
at master 4.8 kB view raw
1namespace libfcf; 2 3public class Token 4{ 5 public string value = ""; 6 7 public int lineStart; 8 public int lineEnd; 9 public int charStart; 10 public int charEnd; 11} 12 13internal class TokenIdentifier : Token 14{ 15 public new string value; 16 17 public new int lineStart; 18 public new int lineEnd; 19 public new int charStart; 20 public new int charEnd; 21 22 public TokenIdentifier(string value, int lineStart, int lineEnd, int charStart, int charEnd) 23 { 24 this.value = value; 25 26 this.lineStart = lineStart; 27 this.lineEnd = lineEnd; 28 this.charStart = charStart; 29 this.charEnd = charEnd; 30 } 31} 32 33internal class TokenString : Token 34{ 35 public new string value; 36 37 public new int lineStart; 38 public new int lineEnd; 39 public new int charStart; 40 public new int charEnd; 41 42 public TokenString(string value, int lineStart, int lineEnd, int charStart, int charEnd) 43 { 44 this.value = value; 45 46 this.lineStart = lineStart; 47 this.lineEnd = lineEnd; 48 this.charStart = charStart; 49 this.charEnd = charEnd; 50 } 51} 52 53internal class TokenNumber : Token 54{ 55 public new float value; 56 57 public new int lineStart; 58 public new int lineEnd; 59 public new int charStart; 60 public new int charEnd; 61 62 public TokenNumber(float value, int lineStart, int lineEnd, int charStart, int charEnd) 63 { 64 this.value = value; 65 66 this.lineStart = lineStart; 67 this.lineEnd = lineEnd; 68 this.charStart = charStart; 69 this.charEnd = charEnd; 70 } 71} 72 73internal class TokenBoolean : Token 74{ 75 public new bool value; 76 77 public new int lineStart; 78 public new int lineEnd; 79 public new int charStart; 80 public new int charEnd; 81 82 public TokenBoolean(bool value, int lineStart, int lineEnd, int charStart, int charEnd) 83 { 84 this.value = value; 85 86 this.lineStart = lineStart; 87 this.lineEnd = lineEnd; 88 this.charStart = charStart; 89 this.charEnd = charEnd; 90 } 91} 92 93internal class TokenAssign : Token 94{ 95 public new string value = "="; 96 97 public new int lineStart; 98 public new int lineEnd; 99 public new int charStart; 100 public new int charEnd; 101 102 public TokenAssign(int lineStart, int lineEnd, int charStart, int charEnd) 103 { 104 this.lineStart = lineStart; 105 this.lineEnd = lineEnd; 106 this.charStart = charStart; 107 this.charEnd = charEnd; 108 } 109} 110 111internal class TokenComma : Token 112{ 113 public new string value = ","; 114 115 public new int lineStart; 116 public new int lineEnd; 117 public new int charStart; 118 public new int charEnd; 119 120 public TokenComma(int lineStart, int lineEnd, int charStart, int charEnd) 121 { 122 this.lineStart = lineStart; 123 this.lineEnd = lineEnd; 124 this.charStart = charStart; 125 this.charEnd = charEnd; 126 } 127} 128 129internal class TokenArrayStart : Token 130{ 131 public new string value = "["; 132 133 public new int lineStart; 134 public new int lineEnd; 135 public new int charStart; 136 public new int charEnd; 137 138 public TokenArrayStart(int lineStart, int lineEnd, int charStart, int charEnd) 139 { 140 this.lineStart = lineStart; 141 this.lineEnd = lineEnd; 142 this.charStart = charStart; 143 this.charEnd = charEnd; 144 } 145} 146 147internal class TokenArrayEnd : Token 148{ 149 public new string value = "]"; 150 151 public new int lineStart; 152 public new int lineEnd; 153 public new int charStart; 154 public new int charEnd; 155 156 public TokenArrayEnd(int lineStart, int lineEnd, int charStart, int charEnd) 157 { 158 this.lineStart = lineStart; 159 this.lineEnd = lineEnd; 160 this.charStart = charStart; 161 this.charEnd = charEnd; 162 } 163} 164 165internal class TokenDictStart : Token 166{ 167 public new string value = "{"; 168 169 public new int lineStart; 170 public new int lineEnd; 171 public new int charStart; 172 public new int charEnd; 173 174 public TokenDictStart(int lineStart, int lineEnd, int charStart, int charEnd) 175 { 176 this.lineStart = lineStart; 177 this.lineEnd = lineEnd; 178 this.charStart = charStart; 179 this.charEnd = charEnd; 180 } 181} 182 183internal class TokenDictEnd : Token 184{ 185 public new string value = "}"; 186 187 public new int lineStart; 188 public new int lineEnd; 189 public new int charStart; 190 public new int charEnd; 191 192 public TokenDictEnd(int lineStart, int lineEnd, int charStart, int charEnd) 193 { 194 this.lineStart = lineStart; 195 this.lineEnd = lineEnd; 196 this.charStart = charStart; 197 this.charEnd = charEnd; 198 } 199} 200 201public class InvalidTokenTypeException : Exception 202{ 203 public dynamic token; 204 205 public InvalidTokenTypeException(string message, dynamic token) : base(message) 206 { 207 this.token = token; 208 } 209}