1{ 2 "name": "ledger", 3 "rules": { 4 "source_file": { 5 "type": "REPEAT", 6 "content": { 7 "type": "CHOICE", 8 "members": [ 9 { 10 "type": "SYMBOL", 11 "name": "journal_item" 12 }, 13 { 14 "type": "STRING", 15 "value": "\n" 16 } 17 ] 18 } 19 }, 20 "journal_item": { 21 "type": "CHOICE", 22 "members": [ 23 { 24 "type": "SYMBOL", 25 "name": "comment" 26 }, 27 { 28 "type": "SYMBOL", 29 "name": "directive" 30 }, 31 { 32 "type": "SYMBOL", 33 "name": "xact" 34 } 35 ] 36 }, 37 "comment": { 38 "type": "SEQ", 39 "members": [ 40 { 41 "type": "CHOICE", 42 "members": [ 43 { 44 "type": "STRING", 45 "value": ";" 46 }, 47 { 48 "type": "STRING", 49 "value": "*" 50 } 51 ] 52 }, 53 { 54 "type": "PATTERN", 55 "value": ".*\\n" 56 } 57 ] 58 }, 59 "indented_line": { 60 "type": "SEQ", 61 "members": [ 62 { 63 "type": "SYMBOL", 64 "name": "whitespace" 65 }, 66 { 67 "type": "PATTERN", 68 "value": "[^\\n]+\\n" 69 } 70 ] 71 }, 72 "directive": { 73 "type": "CHOICE", 74 "members": [ 75 { 76 "type": "SYMBOL", 77 "name": "account_directive" 78 }, 79 { 80 "type": "SYMBOL", 81 "name": "commodity_directive" 82 }, 83 { 84 "type": "SYMBOL", 85 "name": "tag_directive" 86 }, 87 { 88 "type": "SEQ", 89 "members": [ 90 { 91 "type": "SYMBOL", 92 "name": "word_directive" 93 }, 94 { 95 "type": "STRING", 96 "value": "\n" 97 } 98 ] 99 }, 100 { 101 "type": "SEQ", 102 "members": [ 103 { 104 "type": "SYMBOL", 105 "name": "char_directive" 106 }, 107 { 108 "type": "STRING", 109 "value": "\n" 110 } 111 ] 112 } 113 ] 114 }, 115 "account_directive": { 116 "type": "SEQ", 117 "members": [ 118 { 119 "type": "SEQ", 120 "members": [ 121 { 122 "type": "STRING", 123 "value": "account" 124 }, 125 { 126 "type": "SYMBOL", 127 "name": "whitespace" 128 }, 129 { 130 "type": "SYMBOL", 131 "name": "account" 132 }, 133 { 134 "type": "STRING", 135 "value": "\n" 136 } 137 ] 138 }, 139 { 140 "type": "REPEAT", 141 "content": { 142 "type": "SYMBOL", 143 "name": "account_subdirective" 144 } 145 } 146 ] 147 }, 148 "account_subdirective": { 149 "type": "CHOICE", 150 "members": [ 151 { 152 "type": "SYMBOL", 153 "name": "alias_subdirective" 154 }, 155 { 156 "type": "SYMBOL", 157 "name": "default_subdirective" 158 }, 159 { 160 "type": "SYMBOL", 161 "name": "note_subdirective" 162 }, 163 { 164 "type": "SYMBOL", 165 "name": "assert_subdirective" 166 }, 167 { 168 "type": "SYMBOL", 169 "name": "check_subdirective" 170 }, 171 { 172 "type": "SEQ", 173 "members": [ 174 { 175 "type": "SYMBOL", 176 "name": "whitespace" 177 }, 178 { 179 "type": "STRING", 180 "value": "eval" 181 }, 182 { 183 "type": "SYMBOL", 184 "name": "whitespace" 185 }, 186 { 187 "type": "PATTERN", 188 "value": ".+\\n" 189 } 190 ] 191 }, 192 { 193 "type": "SEQ", 194 "members": [ 195 { 196 "type": "SYMBOL", 197 "name": "whitespace" 198 }, 199 { 200 "type": "STRING", 201 "value": "payee" 202 }, 203 { 204 "type": "SYMBOL", 205 "name": "whitespace" 206 }, 207 { 208 "type": "PATTERN", 209 "value": ".+\\n" 210 } 211 ] 212 } 213 ] 214 }, 215 "commodity_directive": { 216 "type": "SEQ", 217 "members": [ 218 { 219 "type": "SEQ", 220 "members": [ 221 { 222 "type": "STRING", 223 "value": "commodity" 224 }, 225 { 226 "type": "SYMBOL", 227 "name": "whitespace" 228 }, 229 { 230 "type": "SYMBOL", 231 "name": "commodity" 232 }, 233 { 234 "type": "STRING", 235 "value": "\n" 236 } 237 ] 238 }, 239 { 240 "type": "REPEAT", 241 "content": { 242 "type": "SYMBOL", 243 "name": "commodity_subdirective" 244 } 245 } 246 ] 247 }, 248 "commodity_subdirective": { 249 "type": "CHOICE", 250 "members": [ 251 { 252 "type": "SYMBOL", 253 "name": "alias_subdirective" 254 }, 255 { 256 "type": "SYMBOL", 257 "name": "default_subdirective" 258 }, 259 { 260 "type": "SYMBOL", 261 "name": "format_subdirective" 262 }, 263 { 264 "type": "SYMBOL", 265 "name": "note_subdirective" 266 }, 267 { 268 "type": "SEQ", 269 "members": [ 270 { 271 "type": "SYMBOL", 272 "name": "whitespace" 273 }, 274 { 275 "type": "STRING", 276 "value": "nomarket" 277 }, 278 { 279 "type": "STRING", 280 "value": "\n" 281 } 282 ] 283 } 284 ] 285 }, 286 "tag_directive": { 287 "type": "SEQ", 288 "members": [ 289 { 290 "type": "SEQ", 291 "members": [ 292 { 293 "type": "STRING", 294 "value": "tag" 295 }, 296 { 297 "type": "SYMBOL", 298 "name": "whitespace" 299 }, 300 { 301 "type": "PATTERN", 302 "value": "\\p{L}+\\n" 303 } 304 ] 305 }, 306 { 307 "type": "REPEAT", 308 "content": { 309 "type": "CHOICE", 310 "members": [ 311 { 312 "type": "SYMBOL", 313 "name": "assert_subdirective" 314 }, 315 { 316 "type": "SYMBOL", 317 "name": "check_subdirective" 318 } 319 ] 320 } 321 } 322 ] 323 }, 324 "word_directive": { 325 "type": "CHOICE", 326 "members": [ 327 { 328 "type": "SEQ", 329 "members": [ 330 { 331 "type": "STRING", 332 "value": "include" 333 }, 334 { 335 "type": "SYMBOL", 336 "name": "whitespace" 337 }, 338 { 339 "type": "SYMBOL", 340 "name": "filename" 341 } 342 ] 343 }, 344 { 345 "type": "STRING", 346 "value": "end" 347 }, 348 { 349 "type": "SEQ", 350 "members": [ 351 { 352 "type": "STRING", 353 "value": "alias" 354 }, 355 { 356 "type": "SYMBOL", 357 "name": "whitespace" 358 }, 359 { 360 "type": "PATTERN", 361 "value": "[^=]+" 362 }, 363 { 364 "type": "STRING", 365 "value": "=" 366 }, 367 { 368 "type": "PATTERN", 369 "value": ".+" 370 } 371 ] 372 }, 373 { 374 "type": "SEQ", 375 "members": [ 376 { 377 "type": "STRING", 378 "value": "def" 379 }, 380 { 381 "type": "SYMBOL", 382 "name": "whitespace" 383 }, 384 { 385 "type": "PATTERN", 386 "value": ".+" 387 } 388 ] 389 }, 390 { 391 "type": "SEQ", 392 "members": [ 393 { 394 "type": "STRING", 395 "value": "year" 396 }, 397 { 398 "type": "SYMBOL", 399 "name": "whitespace" 400 }, 401 { 402 "type": "PATTERN", 403 "value": "\\d{4}" 404 } 405 ] 406 }, 407 { 408 "type": "SEQ", 409 "members": [ 410 { 411 "type": "STRING", 412 "value": "bucket" 413 }, 414 { 415 "type": "SYMBOL", 416 "name": "whitespace" 417 }, 418 { 419 "type": "SYMBOL", 420 "name": "account" 421 } 422 ] 423 } 424 ] 425 }, 426 "filename": { 427 "type": "PATTERN", 428 "value": ".+" 429 }, 430 "char_directive": { 431 "type": "CHOICE", 432 "members": [ 433 { 434 "type": "SYMBOL", 435 "name": "check_in" 436 }, 437 { 438 "type": "SYMBOL", 439 "name": "check_out" 440 }, 441 { 442 "type": "SEQ", 443 "members": [ 444 { 445 "type": "STRING", 446 "value": "A" 447 }, 448 { 449 "type": "SYMBOL", 450 "name": "whitespace" 451 }, 452 { 453 "type": "SYMBOL", 454 "name": "account" 455 } 456 ] 457 }, 458 { 459 "type": "SEQ", 460 "members": [ 461 { 462 "type": "STRING", 463 "value": "Y" 464 }, 465 { 466 "type": "SYMBOL", 467 "name": "whitespace" 468 }, 469 { 470 "type": "PATTERN", 471 "value": "\\d{4}" 472 } 473 ] 474 }, 475 { 476 "type": "SEQ", 477 "members": [ 478 { 479 "type": "STRING", 480 "value": "N" 481 }, 482 { 483 "type": "SYMBOL", 484 "name": "whitespace" 485 }, 486 { 487 "type": "SYMBOL", 488 "name": "commodity" 489 } 490 ] 491 }, 492 { 493 "type": "SEQ", 494 "members": [ 495 { 496 "type": "STRING", 497 "value": "D" 498 }, 499 { 500 "type": "SYMBOL", 501 "name": "whitespace" 502 }, 503 { 504 "type": "SYMBOL", 505 "name": "amount" 506 } 507 ] 508 }, 509 { 510 "type": "SEQ", 511 "members": [ 512 { 513 "type": "STRING", 514 "value": "C" 515 }, 516 { 517 "type": "SYMBOL", 518 "name": "whitespace" 519 }, 520 { 521 "type": "SEQ", 522 "members": [ 523 { 524 "type": "SYMBOL", 525 "name": "commodity" 526 }, 527 { 528 "type": "CHOICE", 529 "members": [ 530 { 531 "type": "SYMBOL", 532 "name": "whitespace" 533 }, 534 { 535 "type": "BLANK" 536 } 537 ] 538 }, 539 { 540 "type": "STRING", 541 "value": "=" 542 }, 543 { 544 "type": "CHOICE", 545 "members": [ 546 { 547 "type": "SYMBOL", 548 "name": "whitespace" 549 }, 550 { 551 "type": "BLANK" 552 } 553 ] 554 }, 555 { 556 "type": "SYMBOL", 557 "name": "amount" 558 } 559 ] 560 } 561 ] 562 }, 563 { 564 "type": "SEQ", 565 "members": [ 566 { 567 "type": "STRING", 568 "value": "P" 569 }, 570 { 571 "type": "SYMBOL", 572 "name": "whitespace" 573 }, 574 { 575 "type": "SEQ", 576 "members": [ 577 { 578 "type": "SYMBOL", 579 "name": "date" 580 }, 581 { 582 "type": "SYMBOL", 583 "name": "whitespace" 584 }, 585 { 586 "type": "SYMBOL", 587 "name": "commodity" 588 }, 589 { 590 "type": "CHOICE", 591 "members": [ 592 { 593 "type": "SYMBOL", 594 "name": "whitespace" 595 }, 596 { 597 "type": "BLANK" 598 } 599 ] 600 }, 601 { 602 "type": "SYMBOL", 603 "name": "amount" 604 } 605 ] 606 } 607 ] 608 } 609 ] 610 }, 611 "alias_subdirective": { 612 "type": "SEQ", 613 "members": [ 614 { 615 "type": "SYMBOL", 616 "name": "whitespace" 617 }, 618 { 619 "type": "STRING", 620 "value": "alias" 621 }, 622 { 623 "type": "SYMBOL", 624 "name": "whitespace" 625 }, 626 { 627 "type": "PATTERN", 628 "value": ".+\\n" 629 } 630 ] 631 }, 632 "default_subdirective": { 633 "type": "SEQ", 634 "members": [ 635 { 636 "type": "SYMBOL", 637 "name": "whitespace" 638 }, 639 { 640 "type": "STRING", 641 "value": "default" 642 }, 643 { 644 "type": "STRING", 645 "value": "\n" 646 } 647 ] 648 }, 649 "format_subdirective": { 650 "type": "SEQ", 651 "members": [ 652 { 653 "type": "SYMBOL", 654 "name": "whitespace" 655 }, 656 { 657 "type": "STRING", 658 "value": "format" 659 }, 660 { 661 "type": "SYMBOL", 662 "name": "whitespace" 663 }, 664 { 665 "type": "SYMBOL", 666 "name": "amount" 667 } 668 ] 669 }, 670 "note_subdirective": { 671 "type": "SEQ", 672 "members": [ 673 { 674 "type": "SYMBOL", 675 "name": "whitespace" 676 }, 677 { 678 "type": "STRING", 679 "value": "note" 680 }, 681 { 682 "type": "SYMBOL", 683 "name": "whitespace" 684 }, 685 { 686 "type": "PATTERN", 687 "value": ".+\\n" 688 } 689 ] 690 }, 691 "assert_subdirective": { 692 "type": "SEQ", 693 "members": [ 694 { 695 "type": "SYMBOL", 696 "name": "whitespace" 697 }, 698 { 699 "type": "STRING", 700 "value": "assert" 701 }, 702 { 703 "type": "SYMBOL", 704 "name": "whitespace" 705 }, 706 { 707 "type": "PATTERN", 708 "value": ".+\\n" 709 } 710 ] 711 }, 712 "check_subdirective": { 713 "type": "SEQ", 714 "members": [ 715 { 716 "type": "SYMBOL", 717 "name": "whitespace" 718 }, 719 { 720 "type": "STRING", 721 "value": "check" 722 }, 723 { 724 "type": "SYMBOL", 725 "name": "whitespace" 726 }, 727 { 728 "type": "PATTERN", 729 "value": ".+\\n" 730 } 731 ] 732 }, 733 "check_in": { 734 "type": "SEQ", 735 "members": [ 736 { 737 "type": "CHOICE", 738 "members": [ 739 { 740 "type": "STRING", 741 "value": "i" 742 }, 743 { 744 "type": "STRING", 745 "value": "I" 746 } 747 ] 748 }, 749 { 750 "type": "CHOICE", 751 "members": [ 752 { 753 "type": "SYMBOL", 754 "name": "whitespace" 755 }, 756 { 757 "type": "BLANK" 758 } 759 ] 760 }, 761 { 762 "type": "SYMBOL", 763 "name": "date" 764 }, 765 { 766 "type": "CHOICE", 767 "members": [ 768 { 769 "type": "SYMBOL", 770 "name": "whitespace" 771 }, 772 { 773 "type": "BLANK" 774 } 775 ] 776 }, 777 { 778 "type": "SYMBOL", 779 "name": "time" 780 }, 781 { 782 "type": "CHOICE", 783 "members": [ 784 { 785 "type": "SYMBOL", 786 "name": "whitespace" 787 }, 788 { 789 "type": "BLANK" 790 } 791 ] 792 }, 793 { 794 "type": "SYMBOL", 795 "name": "account" 796 }, 797 { 798 "type": "CHOICE", 799 "members": [ 800 { 801 "type": "SEQ", 802 "members": [ 803 { 804 "type": "SYMBOL", 805 "name": "spacer" 806 }, 807 { 808 "type": "CHOICE", 809 "members": [ 810 { 811 "type": "SYMBOL", 812 "name": "whitespace" 813 }, 814 { 815 "type": "BLANK" 816 } 817 ] 818 }, 819 { 820 "type": "SYMBOL", 821 "name": "payee" 822 } 823 ] 824 }, 825 { 826 "type": "BLANK" 827 } 828 ] 829 } 830 ] 831 }, 832 "check_out": { 833 "type": "SEQ", 834 "members": [ 835 { 836 "type": "CHOICE", 837 "members": [ 838 { 839 "type": "STRING", 840 "value": "o" 841 }, 842 { 843 "type": "STRING", 844 "value": "O" 845 } 846 ] 847 }, 848 { 849 "type": "CHOICE", 850 "members": [ 851 { 852 "type": "SYMBOL", 853 "name": "whitespace" 854 }, 855 { 856 "type": "BLANK" 857 } 858 ] 859 }, 860 { 861 "type": "SYMBOL", 862 "name": "date" 863 }, 864 { 865 "type": "CHOICE", 866 "members": [ 867 { 868 "type": "SYMBOL", 869 "name": "whitespace" 870 }, 871 { 872 "type": "BLANK" 873 } 874 ] 875 }, 876 { 877 "type": "SYMBOL", 878 "name": "time" 879 } 880 ] 881 }, 882 "xact": { 883 "type": "CHOICE", 884 "members": [ 885 { 886 "type": "SYMBOL", 887 "name": "plain_xact" 888 }, 889 { 890 "type": "SYMBOL", 891 "name": "periodic_xact" 892 } 893 ] 894 }, 895 "plain_xact": { 896 "type": "SEQ", 897 "members": [ 898 { 899 "type": "SEQ", 900 "members": [ 901 { 902 "type": "SYMBOL", 903 "name": "date" 904 }, 905 { 906 "type": "CHOICE", 907 "members": [ 908 { 909 "type": "SEQ", 910 "members": [ 911 { 912 "type": "SYMBOL", 913 "name": "whitespace" 914 }, 915 { 916 "type": "SYMBOL", 917 "name": "status" 918 } 919 ] 920 }, 921 { 922 "type": "BLANK" 923 } 924 ] 925 }, 926 { 927 "type": "CHOICE", 928 "members": [ 929 { 930 "type": "SEQ", 931 "members": [ 932 { 933 "type": "SYMBOL", 934 "name": "whitespace" 935 }, 936 { 937 "type": "SYMBOL", 938 "name": "code" 939 } 940 ] 941 }, 942 { 943 "type": "BLANK" 944 } 945 ] 946 }, 947 { 948 "type": "CHOICE", 949 "members": [ 950 { 951 "type": "SEQ", 952 "members": [ 953 { 954 "type": "SYMBOL", 955 "name": "whitespace" 956 }, 957 { 958 "type": "SYMBOL", 959 "name": "payee" 960 } 961 ] 962 }, 963 { 964 "type": "BLANK" 965 } 966 ] 967 }, 968 { 969 "type": "STRING", 970 "value": "\n" 971 } 972 ] 973 }, 974 { 975 "type": "REPEAT1", 976 "content": { 977 "type": "CHOICE", 978 "members": [ 979 { 980 "type": "SYMBOL", 981 "name": "posting" 982 }, 983 { 984 "type": "SEQ", 985 "members": [ 986 { 987 "type": "SYMBOL", 988 "name": "whitespace" 989 }, 990 { 991 "type": "SYMBOL", 992 "name": "note" 993 }, 994 { 995 "type": "STRING", 996 "value": "\n" 997 } 998 ] 999 } 1000 ] 1001 } 1002 } 1003 ] 1004 }, 1005 "periodic_xact": { 1006 "type": "SEQ", 1007 "members": [ 1008 { 1009 "type": "SEQ", 1010 "members": [ 1011 { 1012 "type": "STRING", 1013 "value": "~" 1014 }, 1015 { 1016 "type": "SYMBOL", 1017 "name": "whitespace" 1018 }, 1019 { 1020 "type": "SYMBOL", 1021 "name": "interval" 1022 }, 1023 { 1024 "type": "STRING", 1025 "value": "\n" 1026 } 1027 ] 1028 }, 1029 { 1030 "type": "REPEAT1", 1031 "content": { 1032 "type": "CHOICE", 1033 "members": [ 1034 { 1035 "type": "SYMBOL", 1036 "name": "posting" 1037 }, 1038 { 1039 "type": "SEQ", 1040 "members": [ 1041 { 1042 "type": "SYMBOL", 1043 "name": "whitespace" 1044 }, 1045 { 1046 "type": "SYMBOL", 1047 "name": "note" 1048 }, 1049 { 1050 "type": "STRING", 1051 "value": "\n" 1052 } 1053 ] 1054 } 1055 ] 1056 } 1057 } 1058 ] 1059 }, 1060 "interval": { 1061 "type": "CHOICE", 1062 "members": [ 1063 { 1064 "type": "PATTERN", 1065 "value": "[eE][vV][eE][rR][yY][ ][dD][aA][yY]" 1066 }, 1067 { 1068 "type": "PATTERN", 1069 "value": "[eE][vV][eE][rR][yY][ ][wW][eE][eE][kK]" 1070 }, 1071 { 1072 "type": "PATTERN", 1073 "value": "[eE][vV][eE][rR][yY][ ][mM][oO][nN][tT][hH]" 1074 }, 1075 { 1076 "type": "PATTERN", 1077 "value": "[eE][vV][eE][rR][yY][ ][qQ][uU][aA][rR][tT][eE][rR]" 1078 }, 1079 { 1080 "type": "PATTERN", 1081 "value": "[eE][vV][eE][rR][yY][ ][yY][eE][aA][rR]" 1082 }, 1083 { 1084 "type": "PATTERN", 1085 "value": "[eE][vV][eE][rR][yY] \\d+ [dD][aA][yY][sS]" 1086 }, 1087 { 1088 "type": "PATTERN", 1089 "value": "[eE][vV][eE][rR][yY] \\d+ [wW][eE][eE][kK][sS]" 1090 }, 1091 { 1092 "type": "PATTERN", 1093 "value": "[eE][vV][eE][rR][yY] \\d+ [mM][oO][nN][tT][hH][sS]" 1094 }, 1095 { 1096 "type": "PATTERN", 1097 "value": "[eE][vV][eE][rR][yY] \\d+ [qQ][uU][aA][rR][tT][eE][rR][sS]" 1098 }, 1099 { 1100 "type": "PATTERN", 1101 "value": "[eE][vV][eE][rR][yY] \\d+ [yY][eE][aA][rR][sS]" 1102 }, 1103 { 1104 "type": "PATTERN", 1105 "value": "[dD][aA][iI][lL][yY]" 1106 }, 1107 { 1108 "type": "PATTERN", 1109 "value": "[wW][eE][eE][kK][lL][yY]" 1110 }, 1111 { 1112 "type": "PATTERN", 1113 "value": "[bB][iI][wW][eE][eE][kK][lL][yY]" 1114 }, 1115 { 1116 "type": "PATTERN", 1117 "value": "[mM][oO][nN][tT][hH][lL][yY]" 1118 }, 1119 { 1120 "type": "PATTERN", 1121 "value": "[bB][iI][mM][oO][nN][tT][hH][lL][yY]" 1122 }, 1123 { 1124 "type": "PATTERN", 1125 "value": "[qQ][uU][aA][rR][tT][eE][rR][lL][yY]" 1126 }, 1127 { 1128 "type": "PATTERN", 1129 "value": "[yY][eE][aA][rR][lL][yY]" 1130 } 1131 ] 1132 }, 1133 "date": { 1134 "type": "SEQ", 1135 "members": [ 1136 { 1137 "type": "SYMBOL", 1138 "name": "_single_date" 1139 }, 1140 { 1141 "type": "CHOICE", 1142 "members": [ 1143 { 1144 "type": "SEQ", 1145 "members": [ 1146 { 1147 "type": "STRING", 1148 "value": "=" 1149 }, 1150 { 1151 "type": "SYMBOL", 1152 "name": "_single_date" 1153 } 1154 ] 1155 }, 1156 { 1157 "type": "BLANK" 1158 } 1159 ] 1160 } 1161 ] 1162 }, 1163 "_dsep": { 1164 "type": "PATTERN", 1165 "value": "[-\\.\\/]" 1166 }, 1167 "_2d": { 1168 "type": "PATTERN", 1169 "value": "\\d{2}" 1170 }, 1171 "_4d": { 1172 "type": "PATTERN", 1173 "value": "\\d{4}" 1174 }, 1175 "_single_date": { 1176 "type": "CHOICE", 1177 "members": [ 1178 { 1179 "type": "SEQ", 1180 "members": [ 1181 { 1182 "type": "SYMBOL", 1183 "name": "_4d" 1184 }, 1185 { 1186 "type": "SYMBOL", 1187 "name": "_dsep" 1188 }, 1189 { 1190 "type": "SYMBOL", 1191 "name": "_2d" 1192 }, 1193 { 1194 "type": "SYMBOL", 1195 "name": "_dsep" 1196 }, 1197 { 1198 "type": "SYMBOL", 1199 "name": "_2d" 1200 } 1201 ] 1202 }, 1203 { 1204 "type": "SEQ", 1205 "members": [ 1206 { 1207 "type": "SYMBOL", 1208 "name": "_2d" 1209 }, 1210 { 1211 "type": "SYMBOL", 1212 "name": "_dsep" 1213 }, 1214 { 1215 "type": "SYMBOL", 1216 "name": "_2d" 1217 }, 1218 { 1219 "type": "SYMBOL", 1220 "name": "_dsep" 1221 }, 1222 { 1223 "type": "SYMBOL", 1224 "name": "_2d" 1225 } 1226 ] 1227 }, 1228 { 1229 "type": "SEQ", 1230 "members": [ 1231 { 1232 "type": "SYMBOL", 1233 "name": "_2d" 1234 }, 1235 { 1236 "type": "SYMBOL", 1237 "name": "_dsep" 1238 }, 1239 { 1240 "type": "SYMBOL", 1241 "name": "_2d" 1242 } 1243 ] 1244 } 1245 ] 1246 }, 1247 "time": { 1248 "type": "PATTERN", 1249 "value": "\\d{2}:\\d{2}:\\d{2}" 1250 }, 1251 "status": { 1252 "type": "CHOICE", 1253 "members": [ 1254 { 1255 "type": "STRING", 1256 "value": "*" 1257 }, 1258 { 1259 "type": "STRING", 1260 "value": "!" 1261 } 1262 ] 1263 }, 1264 "code": { 1265 "type": "SEQ", 1266 "members": [ 1267 { 1268 "type": "STRING", 1269 "value": "(" 1270 }, 1271 { 1272 "type": "PATTERN", 1273 "value": "[^)]*" 1274 }, 1275 { 1276 "type": "STRING", 1277 "value": ")" 1278 } 1279 ] 1280 }, 1281 "payee": { 1282 "type": "PATTERN", 1283 "value": "[^(*!\\n][^*!\\n]*" 1284 }, 1285 "note": { 1286 "type": "SEQ", 1287 "members": [ 1288 { 1289 "type": "STRING", 1290 "value": ";" 1291 }, 1292 { 1293 "type": "PATTERN", 1294 "value": ".*" 1295 } 1296 ] 1297 }, 1298 "posting": { 1299 "type": "SEQ", 1300 "members": [ 1301 { 1302 "type": "SYMBOL", 1303 "name": "whitespace" 1304 }, 1305 { 1306 "type": "CHOICE", 1307 "members": [ 1308 { 1309 "type": "SEQ", 1310 "members": [ 1311 { 1312 "type": "SYMBOL", 1313 "name": "status" 1314 }, 1315 { 1316 "type": "CHOICE", 1317 "members": [ 1318 { 1319 "type": "SYMBOL", 1320 "name": "whitespace" 1321 }, 1322 { 1323 "type": "BLANK" 1324 } 1325 ] 1326 } 1327 ] 1328 }, 1329 { 1330 "type": "BLANK" 1331 } 1332 ] 1333 }, 1334 { 1335 "type": "SYMBOL", 1336 "name": "account" 1337 }, 1338 { 1339 "type": "CHOICE", 1340 "members": [ 1341 { 1342 "type": "SEQ", 1343 "members": [ 1344 { 1345 "type": "SYMBOL", 1346 "name": "spacer" 1347 }, 1348 { 1349 "type": "CHOICE", 1350 "members": [ 1351 { 1352 "type": "SEQ", 1353 "members": [ 1354 { 1355 "type": "CHOICE", 1356 "members": [ 1357 { 1358 "type": "SYMBOL", 1359 "name": "whitespace" 1360 }, 1361 { 1362 "type": "BLANK" 1363 } 1364 ] 1365 }, 1366 { 1367 "type": "SYMBOL", 1368 "name": "amount" 1369 } 1370 ] 1371 }, 1372 { 1373 "type": "BLANK" 1374 } 1375 ] 1376 }, 1377 { 1378 "type": "CHOICE", 1379 "members": [ 1380 { 1381 "type": "SEQ", 1382 "members": [ 1383 { 1384 "type": "CHOICE", 1385 "members": [ 1386 { 1387 "type": "SYMBOL", 1388 "name": "whitespace" 1389 }, 1390 { 1391 "type": "BLANK" 1392 } 1393 ] 1394 }, 1395 { 1396 "type": "SYMBOL", 1397 "name": "price" 1398 } 1399 ] 1400 }, 1401 { 1402 "type": "BLANK" 1403 } 1404 ] 1405 }, 1406 { 1407 "type": "CHOICE", 1408 "members": [ 1409 { 1410 "type": "SEQ", 1411 "members": [ 1412 { 1413 "type": "CHOICE", 1414 "members": [ 1415 { 1416 "type": "SYMBOL", 1417 "name": "whitespace" 1418 }, 1419 { 1420 "type": "BLANK" 1421 } 1422 ] 1423 }, 1424 { 1425 "type": "SYMBOL", 1426 "name": "balance_assertion" 1427 } 1428 ] 1429 }, 1430 { 1431 "type": "BLANK" 1432 } 1433 ] 1434 }, 1435 { 1436 "type": "CHOICE", 1437 "members": [ 1438 { 1439 "type": "SEQ", 1440 "members": [ 1441 { 1442 "type": "CHOICE", 1443 "members": [ 1444 { 1445 "type": "SYMBOL", 1446 "name": "whitespace" 1447 }, 1448 { 1449 "type": "BLANK" 1450 } 1451 ] 1452 }, 1453 { 1454 "type": "SYMBOL", 1455 "name": "note" 1456 } 1457 ] 1458 }, 1459 { 1460 "type": "BLANK" 1461 } 1462 ] 1463 } 1464 ] 1465 }, 1466 { 1467 "type": "BLANK" 1468 } 1469 ] 1470 }, 1471 { 1472 "type": "STRING", 1473 "value": "\n" 1474 } 1475 ] 1476 }, 1477 "account": { 1478 "type": "ALIAS", 1479 "content": { 1480 "type": "CHOICE", 1481 "members": [ 1482 { 1483 "type": "SYMBOL", 1484 "name": "account_name" 1485 }, 1486 { 1487 "type": "SEQ", 1488 "members": [ 1489 { 1490 "type": "STRING", 1491 "value": "(" 1492 }, 1493 { 1494 "type": "SYMBOL", 1495 "name": "account_name" 1496 }, 1497 { 1498 "type": "STRING", 1499 "value": ")" 1500 } 1501 ] 1502 }, 1503 { 1504 "type": "SEQ", 1505 "members": [ 1506 { 1507 "type": "STRING", 1508 "value": "[" 1509 }, 1510 { 1511 "type": "SYMBOL", 1512 "name": "account_name" 1513 }, 1514 { 1515 "type": "STRING", 1516 "value": "]" 1517 } 1518 ] 1519 } 1520 ] 1521 }, 1522 "named": false, 1523 "value": "" 1524 }, 1525 "account_name": { 1526 "type": "PATTERN", 1527 "value": "[^ ;](\\S \\S|\\S)*" 1528 }, 1529 "amount": { 1530 "type": "CHOICE", 1531 "members": [ 1532 { 1533 "type": "SEQ", 1534 "members": [ 1535 { 1536 "type": "SYMBOL", 1537 "name": "quantity" 1538 }, 1539 { 1540 "type": "CHOICE", 1541 "members": [ 1542 { 1543 "type": "SYMBOL", 1544 "name": "whitespace" 1545 }, 1546 { 1547 "type": "BLANK" 1548 } 1549 ] 1550 }, 1551 { 1552 "type": "SYMBOL", 1553 "name": "commodity" 1554 } 1555 ] 1556 }, 1557 { 1558 "type": "SEQ", 1559 "members": [ 1560 { 1561 "type": "SYMBOL", 1562 "name": "commodity" 1563 }, 1564 { 1565 "type": "CHOICE", 1566 "members": [ 1567 { 1568 "type": "SYMBOL", 1569 "name": "whitespace" 1570 }, 1571 { 1572 "type": "BLANK" 1573 } 1574 ] 1575 }, 1576 { 1577 "type": "SYMBOL", 1578 "name": "quantity" 1579 } 1580 ] 1581 } 1582 ] 1583 }, 1584 "quantity": { 1585 "type": "SEQ", 1586 "members": [ 1587 { 1588 "type": "CHOICE", 1589 "members": [ 1590 { 1591 "type": "STRING", 1592 "value": "-" 1593 }, 1594 { 1595 "type": "BLANK" 1596 } 1597 ] 1598 }, 1599 { 1600 "type": "PATTERN", 1601 "value": "\\d([\\d., ]*\\d)?" 1602 } 1603 ] 1604 }, 1605 "commodity": { 1606 "type": "CHOICE", 1607 "members": [ 1608 { 1609 "type": "PATTERN", 1610 "value": "\\p{L}+" 1611 }, 1612 { 1613 "type": "PATTERN", 1614 "value": "\\p{Sc}" 1615 }, 1616 { 1617 "type": "PATTERN", 1618 "value": "\"[^\"\\n]*\"" 1619 } 1620 ] 1621 }, 1622 "price": { 1623 "type": "SEQ", 1624 "members": [ 1625 { 1626 "type": "CHOICE", 1627 "members": [ 1628 { 1629 "type": "STRING", 1630 "value": "@" 1631 }, 1632 { 1633 "type": "STRING", 1634 "value": "@@" 1635 } 1636 ] 1637 }, 1638 { 1639 "type": "CHOICE", 1640 "members": [ 1641 { 1642 "type": "SYMBOL", 1643 "name": "whitespace" 1644 }, 1645 { 1646 "type": "BLANK" 1647 } 1648 ] 1649 }, 1650 { 1651 "type": "SYMBOL", 1652 "name": "amount" 1653 } 1654 ] 1655 }, 1656 "balance_assertion": { 1657 "type": "SEQ", 1658 "members": [ 1659 { 1660 "type": "STRING", 1661 "value": "=" 1662 }, 1663 { 1664 "type": "CHOICE", 1665 "members": [ 1666 { 1667 "type": "SYMBOL", 1668 "name": "whitespace" 1669 }, 1670 { 1671 "type": "BLANK" 1672 } 1673 ] 1674 }, 1675 { 1676 "type": "CHOICE", 1677 "members": [ 1678 { 1679 "type": "SYMBOL", 1680 "name": "amount" 1681 } 1682 ] 1683 } 1684 ] 1685 }, 1686 "whitespace": { 1687 "type": "REPEAT1", 1688 "content": { 1689 "type": "CHOICE", 1690 "members": [ 1691 { 1692 "type": "STRING", 1693 "value": " " 1694 }, 1695 { 1696 "type": "STRING", 1697 "value": "\t" 1698 } 1699 ] 1700 } 1701 }, 1702 "spacer": { 1703 "type": "CHOICE", 1704 "members": [ 1705 { 1706 "type": "STRING", 1707 "value": " " 1708 }, 1709 { 1710 "type": "STRING", 1711 "value": "\t" 1712 }, 1713 { 1714 "type": "STRING", 1715 "value": " \t" 1716 } 1717 ] 1718 } 1719 }, 1720 "extras": [], 1721 "conflicts": [], 1722 "precedences": [], 1723 "externals": [], 1724 "inline": [ 1725 "indented_line", 1726 "spacer", 1727 "whitespace" 1728 ], 1729 "supertypes": [] 1730} 1731 1732