1 # Autogenerated from a Treetop grammar. Edits may be lost.
6 include Treetop::Runtime
17 if node_cache[:Year].has_key?(index)
18 cached = node_cache[:Year][index]
20 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
21 @index = cached.interval.end
27 if has_terminal?('\G[0-9]', true, index)
35 if has_terminal?('\G[0-9]', true, index)
43 if has_terminal?('\G[0-9]', true, index)
51 if has_terminal?('\G[0-9]', true, index)
62 r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
69 node_cache[:Year][start_index] = r0
82 if node_cache[:Month].has_key?(index)
83 cached = node_cache[:Month][index]
85 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
86 @index = cached.interval.end
93 if has_terminal?('\G[0]', true, index)
101 if has_terminal?('\G[1-9]', true, index)
110 r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
120 if has_terminal?('\G[1]', true, index)
128 if has_terminal?('\G[0-2]', true, index)
137 r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
151 node_cache[:Month][start_index] = r0
164 if node_cache[:Day].has_key?(index)
165 cached = node_cache[:Day][index]
167 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
168 @index = cached.interval.end
175 if has_terminal?('\G[0-2]', true, index)
183 if has_terminal?('\G[0-9]', true, index)
192 r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
202 if has_terminal?('\G[3]', true, index)
210 if has_terminal?('\G[0-1]', true, index)
219 r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
233 node_cache[:Day][start_index] = r0
249 if node_cache[:Hour].has_key?(index)
250 cached = node_cache[:Hour][index]
252 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
253 @index = cached.interval.end
260 if has_terminal?('\G[0]', true, index)
268 if has_terminal?('\G[1-9]', true, index)
277 r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
287 if has_terminal?('\G[1]', true, index)
295 if has_terminal?('\G[0-9]', true, index)
304 r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
314 if has_terminal?('\G[2]', true, index)
322 if has_terminal?('\G[0-4]', true, index)
331 r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
346 node_cache[:Hour][start_index] = r0
359 if node_cache[:Minute].has_key?(index)
360 cached = node_cache[:Minute][index]
362 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
363 @index = cached.interval.end
370 if has_terminal?('\G[0]', true, index)
378 if has_terminal?('\G[0-9]', true, index)
387 r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
397 if has_terminal?('\G[1-5]', true, index)
405 if has_terminal?('\G[0-9]', true, index)
414 r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
428 node_cache[:Minute][start_index] = r0
441 if node_cache[:Second].has_key?(index)
442 cached = node_cache[:Second][index]
444 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
445 @index = cached.interval.end
452 if has_terminal?('\G[0]', true, index)
460 if has_terminal?('\G[0-9]', true, index)
469 r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
479 if has_terminal?('\G[1-5]', true, index)
487 if has_terminal?('\G[0-9]', true, index)
496 r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
510 node_cache[:Second][start_index] = r0
543 if node_cache[:DateTime].has_key?(index)
544 cached = node_cache[:DateTime][index]
546 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
547 @index = cached.interval.end
556 if has_terminal?("-", false, index)
557 r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
560 terminal_parse_failure("-")
568 if has_terminal?("-", false, index)
569 r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
572 terminal_parse_failure("-")
580 if has_terminal?(" ", false, index)
581 r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
584 terminal_parse_failure(" ")
592 if has_terminal?(":", false, index)
593 r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
596 terminal_parse_failure(":")
604 if has_terminal?(":", false, index)
605 r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
608 terminal_parse_failure(":")
626 r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
633 node_cache[:DateTime][start_index] = r0
640 if node_cache[:Base64Char].has_key?(index)
641 cached = node_cache[:Base64Char][index]
643 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
644 @index = cached.interval.end
649 if has_terminal?('\G[A-Za-z0-9+/]', true, index)
650 r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
656 node_cache[:Base64Char][start_index] = r0
663 if node_cache[:Base64Hash].has_key?(index)
664 cached = node_cache[:Base64Hash][index]
666 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
667 @index = cached.interval.end
685 r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
688 node_cache[:Base64Hash][start_index] = r0
707 if node_cache[:IPv4Byte].has_key?(index)
708 cached = node_cache[:IPv4Byte][index]
710 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
711 @index = cached.interval.end
718 if has_terminal?('\G[2]', true, index)
726 if has_terminal?('\G[5]', true, index)
734 if has_terminal?('\G[0-5]', true, index)
744 r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
754 if has_terminal?('\G[2]', true, index)
762 if has_terminal?('\G[0-4]', true, index)
770 if has_terminal?('\G[0-9]', true, index)
780 r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
790 if has_terminal?('\G[1]', true, index)
798 if has_terminal?('\G[0-9]', true, index)
806 if has_terminal?('\G[0-9]', true, index)
816 r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
826 if has_terminal?('\G[1-9]', true, index)
834 if has_terminal?('\G[0-9]', true, index)
843 r13 = instantiate_node(SyntaxNode,input, i13...index, s13)
844 r13.extend(IPv4Byte3)
852 if has_terminal?('\G[0-9]', true, index)
869 node_cache[:IPv4Byte][start_index] = r0
894 if node_cache[:IPv4Address].has_key?(index)
895 cached = node_cache[:IPv4Address][index]
897 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
898 @index = cached.interval.end
907 if has_terminal?(".", false, index)
908 r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
911 terminal_parse_failure(".")
919 if has_terminal?(".", false, index)
920 r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
923 terminal_parse_failure(".")
931 if has_terminal?(".", false, index)
932 r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
935 terminal_parse_failure(".")
949 r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
950 r0.extend(IPv4Address0)
956 node_cache[:IPv4Address][start_index] = r0
963 if node_cache[:IP].has_key?(index)
964 cached = node_cache[:IP][index]
966 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
967 @index = cached.interval.end
974 node_cache[:IP][start_index] = r0
981 if node_cache[:Hostname].has_key?(index)
982 cached = node_cache[:Hostname][index]
984 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
985 @index = cached.interval.end
992 if has_terminal?('\G[a-zA-Z\\.\\-]', true, index)
1008 r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1011 node_cache[:Hostname][start_index] = r0
1018 if node_cache[:Address].has_key?(index)
1019 cached = node_cache[:Address][index]
1021 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1022 @index = cached.interval.end
1041 node_cache[:Address][start_index] = r0
1048 if node_cache[:Port].has_key?(index)
1049 cached = node_cache[:Port][index]
1051 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1052 @index = cached.interval.end
1059 if has_terminal?('\G[0-9]', true, index)
1075 r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1078 node_cache[:Port][start_index] = r0
1085 if node_cache[:ORPort].has_key?(index)
1086 cached = node_cache[:ORPort][index]
1088 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1089 @index = cached.interval.end
1096 node_cache[:ORPort][start_index] = r0
1103 if node_cache[:DirPort].has_key?(index)
1104 cached = node_cache[:DirPort][index]
1106 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1107 @index = cached.interval.end
1114 node_cache[:DirPort][start_index] = r0
1121 if node_cache[:SP].has_key?(index)
1122 cached = node_cache[:SP][index]
1124 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1125 @index = cached.interval.end
1130 if has_terminal?(" ", false, index)
1131 r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
1134 terminal_parse_failure(" ")
1138 node_cache[:SP][start_index] = r0
1145 if node_cache[:NL].has_key?(index)
1146 cached = node_cache[:NL][index]
1148 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1149 @index = cached.interval.end
1154 if has_terminal?("\r\n", false, index)
1155 r0 = instantiate_node(SyntaxNode,input, index...(index + 2))
1158 terminal_parse_failure("\r\n")
1162 node_cache[:NL][start_index] = r0
1169 if node_cache[:ALPHA].has_key?(index)
1170 cached = node_cache[:ALPHA][index]
1172 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1173 @index = cached.interval.end
1179 if has_terminal?('\G[A-Z]', true, index)
1188 if has_terminal?('\G[a-z]', true, index)
1202 node_cache[:ALPHA][start_index] = r0
1209 if node_cache[:DIGIT].has_key?(index)
1210 cached = node_cache[:DIGIT][index]
1212 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1213 @index = cached.interval.end
1218 if has_terminal?('\G[0-9]', true, index)
1219 r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
1225 node_cache[:DIGIT][start_index] = r0
1232 if node_cache[:HEXDIG].has_key?(index)
1233 cached = node_cache[:HEXDIG][index]
1235 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1236 @index = cached.interval.end
1246 if has_terminal?("A", false, index)
1247 r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
1250 terminal_parse_failure("A")
1256 if has_terminal?("B", false, index)
1257 r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1260 terminal_parse_failure("B")
1266 if has_terminal?("C", false, index)
1267 r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
1270 terminal_parse_failure("C")
1276 if has_terminal?("D", false, index)
1277 r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
1280 terminal_parse_failure("D")
1286 if has_terminal?("E", false, index)
1287 r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
1290 terminal_parse_failure("E")
1296 if has_terminal?("F", false, index)
1297 r7 = instantiate_node(SyntaxNode,input, index...(index + 1))
1300 terminal_parse_failure("F")
1316 node_cache[:HEXDIG][start_index] = r0
1323 if node_cache[:IDChar].has_key?(index)
1324 cached = node_cache[:IDChar][index]
1326 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1327 @index = cached.interval.end
1346 node_cache[:IDChar][start_index] = r0
1351 def _nt_NicknameChar
1353 if node_cache[:NicknameChar].has_key?(index)
1354 cached = node_cache[:NicknameChar][index]
1356 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1357 @index = cached.interval.end
1363 if has_terminal?('\G[A-Z]', true, index)
1372 if has_terminal?('\G[a-z]', true, index)
1381 if has_terminal?('\G[0-9]', true, index)
1396 node_cache[:NicknameChar][start_index] = r0
1403 if node_cache[:Nickname].has_key?(index)
1404 cached = node_cache[:Nickname][index]
1406 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1407 @index = cached.interval.end
1414 r1 = _nt_NicknameChar
1428 r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1431 node_cache[:Nickname][start_index] = r0
1441 if node_cache[:Fingerprint].has_key?(index)
1442 cached = node_cache[:Fingerprint][index]
1444 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1445 @index = cached.interval.end
1451 if has_terminal?("$", false, index)
1452 r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
1455 terminal_parse_failure("$")
1476 r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1481 r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1482 r0.extend(Fingerprint0)
1488 node_cache[:Fingerprint][start_index] = r0
1495 if node_cache[:ServerID].has_key?(index)
1496 cached = node_cache[:ServerID][index]
1498 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1499 @index = cached.interval.end
1509 r2 = _nt_Fingerprint
1518 node_cache[:ServerID][start_index] = r0
1535 if node_cache[:LongName].has_key?(index)
1536 cached = node_cache[:LongName][index]
1538 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1539 @index = cached.interval.end
1546 r2 = _nt_Fingerprint
1549 if has_terminal?("=", false, index)
1550 r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1553 terminal_parse_failure("=")
1563 r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
1564 r1.extend(LongName0)
1572 r5 = _nt_Fingerprint
1581 node_cache[:LongName][start_index] = r0
1588 if node_cache[:ServerSpec].has_key?(index)
1589 cached = node_cache[:ServerSpec][index]
1591 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1592 @index = cached.interval.end
1611 node_cache[:ServerSpec][start_index] = r0
1618 if node_cache[:StreamID].has_key?(index)
1619 cached = node_cache[:StreamID][index]
1621 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1622 @index = cached.interval.end
1643 r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1646 node_cache[:StreamID][start_index] = r0
1653 if node_cache[:CircuitID].has_key?(index)
1654 cached = node_cache[:CircuitID][index]
1656 cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1657 @index = cached.interval.end
1678 r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1681 node_cache[:CircuitID][start_index] = r0
1688 class PrimitivesParser < Treetop::Runtime::CompiledParser