From f733ecc88cdb41f8c343b9d54629c3306d0f25af Mon Sep 17 00:00:00 2001 From: Ulya Trofimovich Date: Fri, 11 Oct 2019 07:50:43 +0100 Subject: [PATCH] Initial commit --- .buildinfo | 4 + .doctrees/environment.pickle | Bin 0 -> 120212 bytes .doctrees/examples/example_04.doctree | Bin 0 -> 10137 bytes .doctrees/examples/example_05.doctree | Bin 0 -> 15015 bytes .doctrees/examples/example_06.doctree | Bin 0 -> 26137 bytes .doctrees/examples/example_07.doctree | Bin 0 -> 46522 bytes .doctrees/examples/example_09.doctree | Bin 0 -> 11088 bytes .doctrees/examples/example_10.doctree | Bin 0 -> 16946 bytes .doctrees/examples/example_11.doctree | Bin 0 -> 25364 bytes .doctrees/examples/example_13.doctree | Bin 0 -> 11022 bytes .doctrees/examples/example_14.doctree | Bin 0 -> 14642 bytes .doctrees/examples/example_15.doctree | Bin 0 -> 11298 bytes .doctrees/examples/example_16.doctree | Bin 0 -> 10988 bytes .doctrees/examples/example_17.doctree | Bin 0 -> 9516 bytes .doctrees/examples/examples.doctree | Bin 0 -> 3992 bytes .doctrees/index.doctree | Bin 0 -> 27638 bytes .doctrees/install/install.doctree | Bin 0 -> 15311 bytes .doctrees/manual/dot/example.doctree | Bin 0 -> 3573 bytes .doctrees/manual/manual.doctree | Bin 0 -> 537751 bytes .../manual/skeleton/skeleton_example.doctree | Bin 0 -> 15851 bytes .doctrees/manual/syntax/example.doctree | Bin 0 -> 12504 bytes .../condition_order/wcondition_order.doctree | Bin 0 -> 14865 bytes .../wempty_character_class.doctree | Bin 0 -> 6358 bytes .../wmatch_empty_string.doctree | Bin 0 -> 9495 bytes .../wsentinel_in_midrule.doctree | Bin 0 -> 10311 bytes .../swapped_range/wswapped_range.doctree | Bin 0 -> 4932 bytes .../wundefined_control_flow.doctree | Bin 0 -> 19967 bytes .../wunreachable_rules.doctree | Bin 0 -> 9629 bytes .../useless_escape/wuseless_escape.doctree | Bin 0 -> 16735 bytes .../articles/submatch_challenge.doctree | Bin 0 -> 27208 bytes .../releases/changelog/changelog.doctree | Bin 0 -> 281426 bytes .doctrees/releases/release_notes.doctree | Bin 0 -> 90118 bytes .doctrees/releases/release_notes/0_15.doctree | Bin 0 -> 9054 bytes .../releases/release_notes/0_15_1.doctree | Bin 0 -> 3435 bytes .../releases/release_notes/0_15_2.doctree | Bin 0 -> 3984 bytes .../releases/release_notes/0_15_3.doctree | Bin 0 -> 4155 bytes .doctrees/releases/release_notes/0_16.doctree | Bin 0 -> 10829 bytes .doctrees/releases/release_notes/1_0.doctree | Bin 0 -> 21383 bytes .../releases/release_notes/1_0_1.doctree | Bin 0 -> 3368 bytes .../releases/release_notes/1_0_2.doctree | Bin 0 -> 3392 bytes .../releases/release_notes/1_0_3.doctree | Bin 0 -> 3386 bytes .doctrees/releases/release_notes/1_1.doctree | Bin 0 -> 7428 bytes .../releases/release_notes/1_1_1.doctree | Bin 0 -> 4451 bytes .doctrees/releases/release_notes/1_2.doctree | Bin 0 -> 32797 bytes .../releases/release_notes/1_2_1.doctree | Bin 0 -> 5406 bytes .nojekyll | 0 ...re2c_a_more_versatile_scanner_generator.ps | 5249 ++++++++ ...inistic_finite_automata_with_lookahead.pdf | Bin 0 -> 835629 bytes ...cient_posix_submatch_extraction_on_nfa.pdf | Bin 0 -> 438073 bytes CNAME | 1 + _downloads/04_parsing_integers_blocks.i.re | 78 + .../05_parsing_integers_conditions.ci.re | 59 + _downloads/06_braille.cr8i.re | 229 + _downloads/06_braille.utf8.txt | 4 + _downloads/07_cxx98.i.re | 374 + _downloads/09_etc_passwd.i--tags.re | 74 + _downloads/09_etc_passwd.txt | 3 + _downloads/10_uri.dat.txt | 4 + _downloads/10_uri_rfc3986.i--tags.re | 169 + _downloads/11_http.dat.txt | 14 + _downloads/11_http_rfc7230.i--tags.re | 296 + _downloads/13_records.dat.txt | 12 + _downloads/13_records.i--tags.re | 98 + _downloads/14_options.i--tags.re | 91 + _downloads/15_binsyms.i--input(custom).re | 49 + .../16_fake_sentinel.i--input(custom).re | 31 + _downloads/17_ifstream.i--input(custom).re | 30 + _downloads/example.c.line4.input | Bin 0 -> 746 bytes _downloads/example.c.line4.keys | Bin 0 -> 1470 bytes _downloads/example.c.txt | 242 + _downloads/example.re.txt | 4 + _downloads/fixorder.re.txt | 34 + _downloads/hang.re | 17 + _downloads/syntax.c.txt | 60 + _downloads/syntax.re | 33 + _images/dfa.png | Bin 0 -> 8049 bytes _images/dfa_min.png | Bin 0 -> 2485 bytes _images/dfa_raw.png | Bin 0 -> 37705 bytes _images/example.png | Bin 0 -> 33111 bytes _images/feed.png | Bin 0 -> 7519 bytes ...37694037d3a71e41413578cd234edd3d833051.png | Bin 0 -> 3259 bytes ...3e6468d8e8436144abc2ac7a0eba94cfcf8833.png | Bin 0 -> 240 bytes ...c6035d057f521b139d5008dc46cc0ac4ad0d35.png | Bin 0 -> 871 bytes ...35fa0f6f8e4a39a6a3498583f5b7de4138e058.png | Bin 0 -> 269 bytes ...6bd8b5c62ffa658aaf86378127d64d5e03c433.png | Bin 0 -> 550 bytes ...db08e51669ad87af374b5f0fd4dacbb2de0ea6.png | Bin 0 -> 261 bytes ...480c8cf19c69c3af184a56ed6985d65b9b244f.png | Bin 0 -> 279 bytes ...6c23b13e59ef813dcae81710428f8e21fee05f.png | Bin 0 -> 212 bytes ...a27f7d74eb31b3c2cd639dad0f41bcbcb7688a.png | Bin 0 -> 281 bytes ...719de2b4bb24ecfb2b5fe5d28bfce049432409.png | Bin 0 -> 772 bytes ...8ce57bd007871a404e32870db45b88533e1b76.png | Bin 0 -> 743 bytes ...35981bab3fb1e23a2f374e4a027a565471a18d.png | Bin 0 -> 248 bytes ...43a75f21850f283e7a9052c6d4e429e86f2fdf.png | Bin 0 -> 465 bytes ...301c72d768733527c1682f02f6ead4568d4881.png | Bin 0 -> 356 bytes ...5680b8275f933e71a564f1e7c4b7948de56152.png | Bin 0 -> 481 bytes ...74dc5c9418a329ecbe0073e1fe05190eda9a85.png | Bin 0 -> 336 bytes ...797cf166ba72d581981b92f88fef1e2eb77d04.png | Bin 0 -> 460 bytes _images/nfa.png | Bin 0 -> 13479 bytes _images/nfa_simple.png | Bin 0 -> 6641 bytes _images/utf8_any.png | Bin 0 -> 182659 bytes _sources/examples/example_04.rst.txt | 44 + _sources/examples/example_05.rst.txt | 64 + _sources/examples/example_06.rst.txt | 81 + _sources/examples/example_07.rst.txt | 84 + _sources/examples/example_09.rst.txt | 53 + _sources/examples/example_10.rst.txt | 58 + _sources/examples/example_11.rst.txt | 47 + _sources/examples/example_13.rst.txt | 48 + _sources/examples/example_14.rst.txt | 52 + _sources/examples/example_15.rst.txt | 67 + _sources/examples/example_16.rst.txt | 38 + _sources/examples/example_17.rst.txt | 32 + _sources/examples/examples.rst.txt | 20 + _sources/index.rst.txt | 143 + _sources/install/install.rst.txt | 133 + _sources/manual/dot/example.rst.txt | 16 + _sources/manual/manual.rst.txt | 123 + .../manual/skeleton/skeleton_example.rst.txt | 77 + _sources/manual/syntax/example.rst.txt | 19 + .../condition_order/wcondition_order.rst.txt | 81 + .../wempty_character_class.rst.txt | 35 + .../wmatch_empty_string.rst.txt | 45 + .../wsentinel_in_midrule.rst.txt | 84 + .../swapped_range/wswapped_range.rst.txt | 26 + .../wundefined_control_flow.rst.txt | 85 + .../wunreachable_rules.rst.txt | 57 + .../useless_escape/wuseless_escape.rst.txt | 77 + .../articles/submatch_challenge.rst.txt | 153 + _sources/releases/changelog/changelog.rst.txt | 1109 ++ _sources/releases/release_notes.rst.txt | 22 + _sources/releases/release_notes/0_15.rst.txt | 36 + .../releases/release_notes/0_15_1.rst.txt | 7 + .../releases/release_notes/0_15_2.rst.txt | 7 + .../releases/release_notes/0_15_3.rst.txt | 12 + _sources/releases/release_notes/0_16.rst.txt | 40 + _sources/releases/release_notes/1_0.rst.txt | 93 + _sources/releases/release_notes/1_0_1.rst.txt | 7 + _sources/releases/release_notes/1_0_2.rst.txt | 7 + _sources/releases/release_notes/1_0_3.rst.txt | 6 + _sources/releases/release_notes/1_1.rst.txt | 18 + _sources/releases/release_notes/1_1_1.rst.txt | 10 + _sources/releases/release_notes/1_2.rst.txt | 126 + _sources/releases/release_notes/1_2_1.rst.txt | 13 + _static/ajax-loader.gif | Bin 0 -> 673 bytes _static/basic.css | 665 + _static/comment-bright.png | Bin 0 -> 756 bytes _static/comment-close.png | Bin 0 -> 829 bytes _static/comment.png | Bin 0 -> 641 bytes _static/doctools.js | 313 + _static/documentation_options.js | 9 + _static/down-pressed.png | Bin 0 -> 222 bytes _static/down.png | Bin 0 -> 202 bytes _static/favicon.ico | Bin 0 -> 318 bytes _static/file.png | Bin 0 -> 286 bytes _static/jquery-3.2.1.js | 10253 ++++++++++++++++ _static/jquery.js | 4 + _static/minus.png | Bin 0 -> 90 bytes _static/plus.png | Bin 0 -> 90 bytes _static/pygments.css | 72 + _static/searchtools.js | 761 ++ _static/theme-re2c.css | 171 + _static/underscore-1.3.1.js | 999 ++ _static/underscore.js | 31 + _static/up-pressed.png | Bin 0 -> 214 bytes _static/up.png | Bin 0 -> 203 bytes _static/websupport.js | 808 ++ examples/example_04.html | 246 + examples/example_05.html | 220 + examples/example_06.html | 581 + examples/example_07.html | 875 ++ examples/example_09.html | 249 + examples/example_10.html | 445 + examples/example_11.html | 698 ++ examples/example_13.html | 302 + examples/example_14.html | 278 + examples/example_15.html | 210 + examples/example_16.html | 146 + examples/example_17.html | 138 + examples/examples.html | 74 + feed/atom.xml | 224 + feed/feed.png | Bin 0 -> 7519 bytes genindex.html | 61 + index.html | 190 + install/install.html | 167 + manual/dot/example.html | 70 + manual/manual.html | 2920 +++++ manual/skeleton/skeleton_example.html | 122 + manual/syntax/example.html | 164 + .../condition_order/wcondition_order.html | 190 + .../wempty_character_class.html | 92 + .../wmatch_empty_string.html | 127 + .../wsentinel_in_midrule.html | 164 + .../swapped_range/wswapped_range.html | 78 + .../wundefined_control_flow.html | 226 + .../unreachable_rules/wunreachable_rules.html | 111 + .../useless_escape/wuseless_escape.html | 133 + objects.inv | Bin 0 -> 3328 bytes releases/articles/submatch_challenge.html | 183 + releases/changelog/changelog.html | 1299 ++ releases/release_notes.html | 414 + releases/release_notes/0_15.html | 85 + releases/release_notes/0_15_1.html | 62 + releases/release_notes/0_15_2.html | 63 + releases/release_notes/0_15_3.html | 65 + releases/release_notes/0_16.html | 89 + releases/release_notes/1_0.html | 138 + releases/release_notes/1_0_1.html | 62 + releases/release_notes/1_0_2.html | 62 + releases/release_notes/1_0_3.html | 62 + releases/release_notes/1_1.html | 71 + releases/release_notes/1_1_1.html | 66 + releases/release_notes/1_2.html | 166 + releases/release_notes/1_2_1.html | 68 + search.html | 72 + searchindex.js | 1 + 215 files changed, 37229 insertions(+) create mode 100644 .buildinfo create mode 100644 .doctrees/environment.pickle create mode 100644 .doctrees/examples/example_04.doctree create mode 100644 .doctrees/examples/example_05.doctree create mode 100644 .doctrees/examples/example_06.doctree create mode 100644 .doctrees/examples/example_07.doctree create mode 100644 .doctrees/examples/example_09.doctree create mode 100644 .doctrees/examples/example_10.doctree create mode 100644 .doctrees/examples/example_11.doctree create mode 100644 .doctrees/examples/example_13.doctree create mode 100644 .doctrees/examples/example_14.doctree create mode 100644 .doctrees/examples/example_15.doctree create mode 100644 .doctrees/examples/example_16.doctree create mode 100644 .doctrees/examples/example_17.doctree create mode 100644 .doctrees/examples/examples.doctree create mode 100644 .doctrees/index.doctree create mode 100644 .doctrees/install/install.doctree create mode 100644 .doctrees/manual/dot/example.doctree create mode 100644 .doctrees/manual/manual.doctree create mode 100644 .doctrees/manual/skeleton/skeleton_example.doctree create mode 100644 .doctrees/manual/syntax/example.doctree create mode 100644 .doctrees/manual/warnings/condition_order/wcondition_order.doctree create mode 100644 .doctrees/manual/warnings/empty_character_class/wempty_character_class.doctree create mode 100644 .doctrees/manual/warnings/match_empty_string/wmatch_empty_string.doctree create mode 100644 .doctrees/manual/warnings/sentinel_in_midrule/wsentinel_in_midrule.doctree create mode 100644 .doctrees/manual/warnings/swapped_range/wswapped_range.doctree create mode 100644 .doctrees/manual/warnings/undefined_control_flow/wundefined_control_flow.doctree create mode 100644 .doctrees/manual/warnings/unreachable_rules/wunreachable_rules.doctree create mode 100644 .doctrees/manual/warnings/useless_escape/wuseless_escape.doctree create mode 100644 .doctrees/releases/articles/submatch_challenge.doctree create mode 100644 .doctrees/releases/changelog/changelog.doctree create mode 100644 .doctrees/releases/release_notes.doctree create mode 100644 .doctrees/releases/release_notes/0_15.doctree create mode 100644 .doctrees/releases/release_notes/0_15_1.doctree create mode 100644 .doctrees/releases/release_notes/0_15_2.doctree create mode 100644 .doctrees/releases/release_notes/0_15_3.doctree create mode 100644 .doctrees/releases/release_notes/0_16.doctree create mode 100644 .doctrees/releases/release_notes/1_0.doctree create mode 100644 .doctrees/releases/release_notes/1_0_1.doctree create mode 100644 .doctrees/releases/release_notes/1_0_2.doctree create mode 100644 .doctrees/releases/release_notes/1_0_3.doctree create mode 100644 .doctrees/releases/release_notes/1_1.doctree create mode 100644 .doctrees/releases/release_notes/1_1_1.doctree create mode 100644 .doctrees/releases/release_notes/1_2.doctree create mode 100644 .doctrees/releases/release_notes/1_2_1.doctree create mode 100644 .nojekyll create mode 100644 1994_bumbulis_cowan_re2c_a_more_versatile_scanner_generator.ps create mode 100644 2017_trofimovich_tagged_deterministic_finite_automata_with_lookahead.pdf create mode 100644 2019_borsotti_trofimovich_efficient_posix_submatch_extraction_on_nfa.pdf create mode 100644 CNAME create mode 100644 _downloads/04_parsing_integers_blocks.i.re create mode 100644 _downloads/05_parsing_integers_conditions.ci.re create mode 100644 _downloads/06_braille.cr8i.re create mode 100644 _downloads/06_braille.utf8.txt create mode 100644 _downloads/07_cxx98.i.re create mode 100644 _downloads/09_etc_passwd.i--tags.re create mode 100644 _downloads/09_etc_passwd.txt create mode 100644 _downloads/10_uri.dat.txt create mode 100644 _downloads/10_uri_rfc3986.i--tags.re create mode 100644 _downloads/11_http.dat.txt create mode 100644 _downloads/11_http_rfc7230.i--tags.re create mode 100644 _downloads/13_records.dat.txt create mode 100644 _downloads/13_records.i--tags.re create mode 100644 _downloads/14_options.i--tags.re create mode 100644 _downloads/15_binsyms.i--input(custom).re create mode 100644 _downloads/16_fake_sentinel.i--input(custom).re create mode 100644 _downloads/17_ifstream.i--input(custom).re create mode 100644 _downloads/example.c.line4.input create mode 100644 _downloads/example.c.line4.keys create mode 100644 _downloads/example.c.txt create mode 100644 _downloads/example.re.txt create mode 100644 _downloads/fixorder.re.txt create mode 100644 _downloads/hang.re create mode 100644 _downloads/syntax.c.txt create mode 100644 _downloads/syntax.re create mode 100644 _images/dfa.png create mode 100644 _images/dfa_min.png create mode 100644 _images/dfa_raw.png create mode 100644 _images/example.png create mode 100644 _images/feed.png create mode 100644 _images/math/0037694037d3a71e41413578cd234edd3d833051.png create mode 100644 _images/math/2a3e6468d8e8436144abc2ac7a0eba94cfcf8833.png create mode 100644 _images/math/31c6035d057f521b139d5008dc46cc0ac4ad0d35.png create mode 100644 _images/math/3235fa0f6f8e4a39a6a3498583f5b7de4138e058.png create mode 100644 _images/math/3a6bd8b5c62ffa658aaf86378127d64d5e03c433.png create mode 100644 _images/math/48db08e51669ad87af374b5f0fd4dacbb2de0ea6.png create mode 100644 _images/math/58480c8cf19c69c3af184a56ed6985d65b9b244f.png create mode 100644 _images/math/5c6c23b13e59ef813dcae81710428f8e21fee05f.png create mode 100644 _images/math/7da27f7d74eb31b3c2cd639dad0f41bcbcb7688a.png create mode 100644 _images/math/86719de2b4bb24ecfb2b5fe5d28bfce049432409.png create mode 100644 _images/math/928ce57bd007871a404e32870db45b88533e1b76.png create mode 100644 _images/math/9a35981bab3fb1e23a2f374e4a027a565471a18d.png create mode 100644 _images/math/b343a75f21850f283e7a9052c6d4e429e86f2fdf.png create mode 100644 _images/math/bd301c72d768733527c1682f02f6ead4568d4881.png create mode 100644 _images/math/c75680b8275f933e71a564f1e7c4b7948de56152.png create mode 100644 _images/math/dd74dc5c9418a329ecbe0073e1fe05190eda9a85.png create mode 100644 _images/math/f4797cf166ba72d581981b92f88fef1e2eb77d04.png create mode 100644 _images/nfa.png create mode 100644 _images/nfa_simple.png create mode 100644 _images/utf8_any.png create mode 100644 _sources/examples/example_04.rst.txt create mode 100644 _sources/examples/example_05.rst.txt create mode 100644 _sources/examples/example_06.rst.txt create mode 100644 _sources/examples/example_07.rst.txt create mode 100644 _sources/examples/example_09.rst.txt create mode 100644 _sources/examples/example_10.rst.txt create mode 100644 _sources/examples/example_11.rst.txt create mode 100644 _sources/examples/example_13.rst.txt create mode 100644 _sources/examples/example_14.rst.txt create mode 100644 _sources/examples/example_15.rst.txt create mode 100644 _sources/examples/example_16.rst.txt create mode 100644 _sources/examples/example_17.rst.txt create mode 100644 _sources/examples/examples.rst.txt create mode 100644 _sources/index.rst.txt create mode 100644 _sources/install/install.rst.txt create mode 100644 _sources/manual/dot/example.rst.txt create mode 100644 _sources/manual/manual.rst.txt create mode 100644 _sources/manual/skeleton/skeleton_example.rst.txt create mode 100644 _sources/manual/syntax/example.rst.txt create mode 100644 _sources/manual/warnings/condition_order/wcondition_order.rst.txt create mode 100644 _sources/manual/warnings/empty_character_class/wempty_character_class.rst.txt create mode 100644 _sources/manual/warnings/match_empty_string/wmatch_empty_string.rst.txt create mode 100644 _sources/manual/warnings/sentinel_in_midrule/wsentinel_in_midrule.rst.txt create mode 100644 _sources/manual/warnings/swapped_range/wswapped_range.rst.txt create mode 100644 _sources/manual/warnings/undefined_control_flow/wundefined_control_flow.rst.txt create mode 100644 _sources/manual/warnings/unreachable_rules/wunreachable_rules.rst.txt create mode 100644 _sources/manual/warnings/useless_escape/wuseless_escape.rst.txt create mode 100644 _sources/releases/articles/submatch_challenge.rst.txt create mode 100644 _sources/releases/changelog/changelog.rst.txt create mode 100644 _sources/releases/release_notes.rst.txt create mode 100644 _sources/releases/release_notes/0_15.rst.txt create mode 100644 _sources/releases/release_notes/0_15_1.rst.txt create mode 100644 _sources/releases/release_notes/0_15_2.rst.txt create mode 100644 _sources/releases/release_notes/0_15_3.rst.txt create mode 100644 _sources/releases/release_notes/0_16.rst.txt create mode 100644 _sources/releases/release_notes/1_0.rst.txt create mode 100644 _sources/releases/release_notes/1_0_1.rst.txt create mode 100644 _sources/releases/release_notes/1_0_2.rst.txt create mode 100644 _sources/releases/release_notes/1_0_3.rst.txt create mode 100644 _sources/releases/release_notes/1_1.rst.txt create mode 100644 _sources/releases/release_notes/1_1_1.rst.txt create mode 100644 _sources/releases/release_notes/1_2.rst.txt create mode 100644 _sources/releases/release_notes/1_2_1.rst.txt create mode 100644 _static/ajax-loader.gif create mode 100644 _static/basic.css create mode 100644 _static/comment-bright.png create mode 100644 _static/comment-close.png create mode 100644 _static/comment.png create mode 100644 _static/doctools.js create mode 100644 _static/documentation_options.js create mode 100644 _static/down-pressed.png create mode 100644 _static/down.png create mode 100644 _static/favicon.ico create mode 100644 _static/file.png create mode 100644 _static/jquery-3.2.1.js create mode 100644 _static/jquery.js create mode 100644 _static/minus.png create mode 100644 _static/plus.png create mode 100644 _static/pygments.css create mode 100644 _static/searchtools.js create mode 100644 _static/theme-re2c.css create mode 100644 _static/underscore-1.3.1.js create mode 100644 _static/underscore.js create mode 100644 _static/up-pressed.png create mode 100644 _static/up.png create mode 100644 _static/websupport.js create mode 100644 examples/example_04.html create mode 100644 examples/example_05.html create mode 100644 examples/example_06.html create mode 100644 examples/example_07.html create mode 100644 examples/example_09.html create mode 100644 examples/example_10.html create mode 100644 examples/example_11.html create mode 100644 examples/example_13.html create mode 100644 examples/example_14.html create mode 100644 examples/example_15.html create mode 100644 examples/example_16.html create mode 100644 examples/example_17.html create mode 100644 examples/examples.html create mode 100644 feed/atom.xml create mode 100644 feed/feed.png create mode 100644 genindex.html create mode 100644 index.html create mode 100644 install/install.html create mode 100644 manual/dot/example.html create mode 100644 manual/manual.html create mode 100644 manual/skeleton/skeleton_example.html create mode 100644 manual/syntax/example.html create mode 100644 manual/warnings/condition_order/wcondition_order.html create mode 100644 manual/warnings/empty_character_class/wempty_character_class.html create mode 100644 manual/warnings/match_empty_string/wmatch_empty_string.html create mode 100644 manual/warnings/sentinel_in_midrule/wsentinel_in_midrule.html create mode 100644 manual/warnings/swapped_range/wswapped_range.html create mode 100644 manual/warnings/undefined_control_flow/wundefined_control_flow.html create mode 100644 manual/warnings/unreachable_rules/wunreachable_rules.html create mode 100644 manual/warnings/useless_escape/wuseless_escape.html create mode 100644 objects.inv create mode 100644 releases/articles/submatch_challenge.html create mode 100644 releases/changelog/changelog.html create mode 100644 releases/release_notes.html create mode 100644 releases/release_notes/0_15.html create mode 100644 releases/release_notes/0_15_1.html create mode 100644 releases/release_notes/0_15_2.html create mode 100644 releases/release_notes/0_15_3.html create mode 100644 releases/release_notes/0_16.html create mode 100644 releases/release_notes/1_0.html create mode 100644 releases/release_notes/1_0_1.html create mode 100644 releases/release_notes/1_0_2.html create mode 100644 releases/release_notes/1_0_3.html create mode 100644 releases/release_notes/1_1.html create mode 100644 releases/release_notes/1_1_1.html create mode 100644 releases/release_notes/1_2.html create mode 100644 releases/release_notes/1_2_1.html create mode 100644 search.html create mode 100644 searchindex.js diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 00000000..c0515877 --- /dev/null +++ b/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: e7cfb42cf34345cdc0457a5baa4857c7 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..7d0a336d8cd1750e87dd3a24e06aadcbc757dd50 GIT binary patch literal 120212 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 S+|De{mc%}C7;E*>{{IVY%#k|) literal 0 HcmV?d00001 diff --git a/.doctrees/examples/example_04.doctree b/.doctrees/examples/example_04.doctree new file mode 100644 index 0000000000000000000000000000000000000000..fa981423fe552e36f8af103eeb1801af1976b8de GIT binary patch literal 10137 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 literal 0 HcmV?d00001 diff --git a/.doctrees/examples/example_05.doctree b/.doctrees/examples/example_05.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2a902c91b831f86f92e8fbf597d3050a4b973bd7 GIT binary patch literal 15015 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 literal 0 HcmV?d00001 diff --git a/.doctrees/examples/example_09.doctree b/.doctrees/examples/example_09.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9666707c439d72f6ff6fa649aa85a93d324c3c51 GIT binary patch literal 11088 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 P*|ZB~4oin)++O<+`-BiN literal 0 HcmV?d00001 diff --git a/.doctrees/examples/example_10.doctree b/.doctrees/examples/example_10.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1c9d65ce720b494823a2011f29f30034d7f19d50 GIT binary patch literal 16946 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 literal 0 HcmV?d00001 diff --git a/.doctrees/examples/example_11.doctree b/.doctrees/examples/example_11.doctree new file mode 100644 index 0000000000000000000000000000000000000000..12f8ef663cb09d6c8b68674054f956ad06a50dca GIT binary patch literal 25364 zcmeHQTaVmEc9w13re#UKM0xPq*iy@~yL+a4re{X7+_L0Ww6<3(dF;sJg}t^ybJ*2G zYS<))m)2+{EgT>LEG!csNaym9yeC0|1VMm2=TGDZ>`RazkoSD2E@ZKLX4ZR69=ah> zWL2G0=T@gKJUsgP=wB>2N5n5bGYFk5_57q0gae*T@{?3B;z2t3^GWj$Cr>7gd?B_U zBw-die3BnQ3&-{RLCk~6y@`7yKap@J^}?WN?;dlHyC?2V8mK&$da2Kis{HKtH#a|K zjl1vPY`?X-w$hwXQ?xv~$@i$w*#>_+5o7@EOZoB0M#t&IeZhUkeJ($)$lAz{`d+{% z8`+kf*X%Tny{#+-J4F6--XH;~`3c9jlLUphKNi>{d3SP<#FSWaSRneW-7 z$mfZ^vAW$(oPhjSZ$F!Df$IhEV{gZHbtAVG5o-uoIRge8BLp&9->p zxFb8>VO~)Cs=jG&Z=>paJmvAo3%n%t9QHnLQqFEGNF42K7o|bK2CVtsohG6w}fqlATeo!0s#^V-%b)(gk+>W>=km9I_VwTV5=QW|um84` z6o%|8?iCCl_ce?e_q!OA=kfOf{$9l2H!)_8im{Mi`lSqRk{^dOv)G&D8^2!Dn`Ca& zy-ey8N;{s~@is5L7c}T*W{>aS4K@+j+(X}HEkL-?PAnSY%O3&RKl|g zJd^ND!^TaImiw(ea1;tVNM<8ya=-)u?2j%SIdZ`Z96uXy_D+%xd~d7cUawWkyl}cG_JVCHtC9Q$e8`eC z&YYBuFruxLJ*qMMs%5Px=7X!E!ViOOHo$~^wf01TT-_H{6o!6*PT_9RL@x2@k^oDn zY6(_61#*dGwgXAz`?v1A$6BNfiNSI0n6;>)X{XW{S6bwE&fDT$;O_QN}R)jlYkYJ${B;Iy_)n4NLm;-fpWp$mk#6Obvf;LnN zj8@uej%*+H-ViV?0U8cfWwU9(?a!Y;Nrq&y&K3n8$oK%3hB4;{v83uCQIeub0X^$( zOlnm38=u~}V|J;HqR=409Mo$?cA9H3Ow~{liuQ&iH?8b}x)+F+rhLDlt`Z zQ>g^Ss}g!YaqMFaif7hpMWb{Hn*p+8rJjXxs3EVE9Tf)DzD~Xs zO{go)V*5IISQMtL&9-DI)eB6*m}mgod%`=x301}$DF=@ClUqM}5AD}i-o8BLN@(O- z!pk(2uOY8d_^&O)<95dQ$$VEZ0WR=R`r&Vp?z^NGidcR`$?djr!JUC&Qa&crjzko-SmZlUc z+~6C6v{Y-Ap5V+u(TX|pg&!wVpB28A^w9CcghMS-;7VFzcu*NcTo{h(U(^}>m)1;E z3bf`|m8`5I;C!GvRYinJ$shhi@lbe>uJRkyN{O0;-qs2%Aw`RKnCL>%ln+oVR;-iG8 zWhX03GsB6R8B`UcO(JL6nF`v3T9wHtAqKziU)2+a-}KlErnVz}?i|(iMa_RpsG>L>B`~1JI8d zwQaT}x`DTi({cH`#=cl-zkN?u*nZ^NWrf}T@s0M6RGrKB3OEU5w}&^{@2l!80N*?w zW8I5BC8EbTRG^+7voG2m>nEyZ1fxoM;Z|Y|LmvVVziUir(-1%QX;ee)Qrg1H9~k^{ z@5&1L9}ZRjLy!9di6>UlYm}sw32} zqc8W?y3p6!+xMg)7d@`{EIdKB9+m$G=in@Z+ zYX*Xu+lE5ee02EM5ZLWe+o)J4ufO zh1+{J&}hv87hBRWt1|i3_M6i3qhd_<0_=^RcfB!&3H_lsvj5@w2=o} zez$O&_Lk(eC9)C1!B9 z3K2laQWLD&DvIbwrW@!-YoJmpN+|(TIz1O6R?k9?P2ek6hfVbOE_%c| zQ?lOQMVC@gczx-Hu_rVyxC9StCJ*Z+4{HSv>zao(&BMAz2xQw{fC)byk$fRGtZ}C} zyQ~RXD+ns!#hbliiYH5>s03{g^e%9Wy*n)=33=I?3{tK>#1udaEXiTa!E}PR4C2Le zp)wGL*Bk}=MfqctXUtT-S%nq8!Jtu7Zz&Q-90JvA9U{?Oqi9+v8b%5S`vC>f$3h=V zQr$$7OC|j=1aC6l$6B1$P?A475X};c7LHQjLJE)8)a(^=I|&0Ta$`FYBex-z$5;Z= z@^^ZTq{q8Ls^}ywV(&0Tgdn$1dkm8V6vztNhg3W7(;lNjc$~uL2~m)w8k%=e1_~u- z^rVjhWo(K#!4dL96OBV0!}D0Jw5XeAOZ6u7)B?aGeMr~6%H%SHHXo0e-1CA2=c;b8 zQnbKkKHVIkrL%i$!~mlR#F zSiDLhRJfFwh%iDE4yQS%8k7416Lz(2Y=(gemntTWZFj9%z`jdTD}Z;`0gUP;x>SJ; zrtIwJQPV3h!bwAxLX^{tX>uUDf*kn%seW~<%xFb4_lqttIkd4g2hq4xi6-EEr9_hl z4(SA8be#nwvByTAy^5f)+lTIj>JI`o*;24d*}`yy-Biqmh@~I(92qK_0wxuq8v319 zkp|v1$ez+Kk&SBTcbaTdzc_b$G&4AetZa%bLkUC{s-cAa$T~m?1ccKZK+*L8B^Z59 zDS^Oag2tr^thkxwLKD)OwzG0CMPk&=3V)*g2X#57E^#TlEP(}JaV}mQSkmb?oq^F2 z7@dH*=GfGo!EYHj>HJK*@R#rI^+_k4f*P$#Zz>e_q=pxJc$-6qk`&uQUXNkAc5tXp z2O6yw9>)4eQXaq2A*EzRA7OfdelFhmq5CC5H2$J{58aE-5(IiVE^E-~r>K8J9(bD8 zxJ1MWk7K+Br1v)>GIGE!Vna`BlY~4s-V)HM=~cFcId7+wvB1>b4^#3m zNbNlav|%h{xG(7HexMH@(h=_=pg0S+Ge7Ok(jVD@=bWGE55gw{qSsF9jU7az6lT6n zQ8A74c$|4W4n;i8<8iQN6p=rNWr{Z?z@i@iiSe`1m^LQK)v#@_u z4F&Ve<8kKkIGAwpngIuIbfp-Wc{~oH>gMq{v=TGk<-#!L@i>)tU1nU37(~*w(}Ooo4uFywC@k0S!7=J7c3JRYYK)-sRBK}^p)9tSVo=kYk@t8kh$%y^A? zJkC5GM|__+kH?Ygsd+rkJRV1d4t?u*oFcW8$Po6|hvnTV((&aRzf6w2!x9QD?2Y_h z64{i3@FacdM_;_**0+Q049Vms`EyPbA+r$0@&;it`6fT(dfTp#zo~@)ElLHLpHj6H z(~HDd2_*{pOO;jVl#wW?Ocd3aP88J{*lC#|ik>>@UaHbUxjQ<;l>4tD-%~X8d@iqv z98UtvRC1?(pB8PyeMH$956kQHZ__Xbj<RarC z4>xO{kafpBb^`|Q^7hT}VVH6u5A;Hx6}C5#Zc6b zk9DuCU#``3Xx&`kzb%1Redm83Hcm?4dGlBBo#pWTJNNJ1e|+lx)02t&&r_c6MPnG2 zp6=vLWa&hfjh-@-yeuf$_-}yzmzgE=;B=AZz<=53u^9OI4`0Wp5J(6nlk2f|D8K*E znfM&1`W*Ax>uh^*ak^o(mE&moe^cm7X;8|{|2a&lE@|N(@}paJ;!c!0%sJ0-}P1-`;jHO(>+Ecq5nc=?=k4I%+5@=PD>9Ew@TZ4vA<`5C0xpak1iky!hAT|#T; z$wqz>%ZwCRFOe$z#Ugk3Fc#~Q0WyF7kP-_dWopec8~FlOYRGw-hB4q5;8gInB=Tb8 z;gsx#zR}ykV@*9~v5%+IY3Nv#keh1J-7(M=Kb+(*4e`-$fEAHZdHb3CH02==vXQk% zpN3+2pPxbEO?=Rc6(i*{Pk{0}vV{9ca)1(<$XcfbM~?~s!PS%}d?SB8=JW}z0 zB_byWT21l=v6O5h#p5J@wOVP3&p0d>iLreiL(W91lOkPun5C3qr^IqhV438vP1Q`H zxW56j&Cf`@2DDg0qW@~e6mb3m@sL1JE=1&uec5Tf855t1PV#4wAwGXO=1v$>LUH7} z8=xCc2=+K)=Z0Vt67dEWHgrR8j}p$Fp=`%iS(HEP!Kh9TvQcCeh6lll0(`{7A!l3pN$DIg z8ev%2ym~No{S~+{gBQ^^3?;??uK;o3lPPfs@lvIfK13JAz$W6-#lvwL5cppUaAt9W zTFCpx{RW2Y{foG`pSpLme1YmH^DwoPwHxlI-(>E0=~1*h<=%DgWcg`RuLAFBq;wV* zOco?dXzb~Bk^!?swu5y;yQ3}SBd#?4ovFg2^+KiDg6>t|f2o3Bd}>X8``k1xRdXai q3C~b8J0m`mv($Ie5@F#0D#fRYVxg=WVp~GYN6^Y-gQm)CtMk8u%h}74}WGw6^3+>K171X0o=^m8@M!PJkwo<;qUwz;&Xez7%n7f#H&~8dhAA z;S8l!9JdL2fsOKCnU`qapg_?F=pz(;fIdUepx>F{ZP&7jH2qUl3+ygAb8d6yoHLhm zK0ETo;mZf~C!KObCsCd+J3;7jnWf{@(C2~5exFT$o;}H0=|pUA%P@%@o}~u>;Rw%n zV;*GdnK+OhliX2W7?kj0OdJ)**0UBm$CRghUh7Iv-{DReyOO=eq>2+q$&7#jd*mJ; z5ZB#6ev@fYK>AF2G_t{5W#W`LC=RDbbJ5n)Bfb~#Y%S^9X~R}3_PU9}kZ1^pJy$~9 z^qAw@Qlb&hV}ac_PvdS9RWDuJ*^GIQV3PEhvNxzJ6I0^5;y7^>FQ+%=MA+wZa&yae zV{dcL0;ay7>~UX z+mWd0>BB!BJaFKi@FdIenH1r+WcXn!WI&OeNslPAAPm|ucam6oTWHi;O=2#Y9k>h~ zr0!1RmSPD;&bpxzOtvvD$y&WIE~xZ8?z?hYBlTV@R@UJ0b@liqexxvarW&7I@AkX`A&z z-w(IB%ep%dh=makykLW2jQ$Sm#TMdfz2F0lq2|^ z#`Ovd2E~Z)EaXW71^EqL!GMH!gdGGNj?%cnAsfTgK(c&x7L5^~-JiDqv1zLU%N+c> zZTx#poTDfr&Leb)R}h?D#rFcfm+<{Q!h)C*-DQLz)CLzM*fVCj(in}H%1ZbKV#Sr7!IgMiI`@y=})q z_ADLmc|O;XdRIy`Wh?oV9mfEc_8LHaehFBIeI2VOb4^=aKXf*0`cD5T-f%W~yztf! z=Go&0!$$`)dRS&Z4g+?#?iWq~A`?pO?9$V1Ti#ey+pSyqsM1^4+Ys=E}t#<5) zdb90E!d_}TX*9rwZ$2-=d!CBJ9wOGAosBTIw>;-LVG!5sIFX|gb$0@;3zam)25H!qeKde_UtVmtq6d1L82IVR{V3~2ZrScMZ#Cn!@+uo^r)YA%yTYceee+|=Fkvf7DL-H4M5Qf zr}1hAy;hT+FLh?*qo6sP55EQYHj4(>*WyPH_5$Vx?#&)Nc<QA!)|vgIsUMG774Nrs@NP6xZ+EUIoXQ zV1a(F;K!yXo1Pqca;_Lf)@DIPris`Iz=#}VZst`?=7wCPlNHVcaUW-pW!9{-Tv=Ia zF0q+8Z7V<^vdQ%#dJ+1{3b?ixh8dAenhI%+UKY(%EJ8u| z9(=G06jGQOSqZbVgMEs>h@DCo$ERgB56_`a`f!|8=z|eH8qCi(D^wo(WlvCR-oYZsk97xV5lnNrN&i(h9kd8wnLV`IpImSMY`*=LwSKtO-fgh`L%AFIUv`7{R(q6yJnsd$RAF}3! zreq5DCj! zD37Nr&R$sgZn8;OdPXh?pqf^8LFD2tHK%8^aCO#N*eA_=|7cWP#iU2UXhg!;+bmc> zM8Z#HK7?2WG8*fmrZtL=!MB-B==gaNdaeaf7)6H`+RPzz{Jao7SH~hE>25&P@<74d z#Getk$^y!nHKv5P1CyZeLMI%(P$#>}u1wby+{+b(6&5Bu z%bG!mB`Hc2qazJjb4?nv6v39YAh|i-y!GxXn;~d;QI9T5h|$)=g>_Ji30*_?BTPRv?MFFv6I5w+wZNJF$tBJEH0vpB{WWe5z8kT-tM>|CX8hfxhhrH0XVQ87854JS>8?XJ1SH8*1 zw^(w2_kx}K6@%Yf0Bt`ja-wSuHDvE*QDcbhy4h{E>eSO)liM@FF^hC*H1c~t#K^x z2h$rD^*sbLSFfxc;?*R79jAPZdE+A6xO}Dp32&Cf{9^^555)W%zB_{g0kD79-|DxQA_%HO`eX3y0)m74u<0?GJ`tb+`{sa+`a zii}>PQ6+wGl&Oxo^_)+2g4GG1GB6frpXV|@yLV91XQW5xee$Hw5c}QpJ(VC;vS(PD zk!;ThJ4*Nzr=oqOF6)VU zF^WZSrHLfΠRzrA?W+o?1&MkljSe8mWm4FYqIdV|PEo%W=cT0_{z_Hu6_ge&B6V zg^s@Lr(UodgIw_rlE=L;R6(eCt@HN5bdqY5f~0Q^=<*opt#k_7^CHU$`?_ugBwscy zMJ0>1jWn%QlnH@jj*!<4t)(Yo9)+>8e5(1$ZXZe;!uHG8vGg<_c+i!;iztA`(lM8J zlMS$&qI@-U1qj@E^wBb*sGfx~7|4iE>6;%5nf}lPRF+O8s@HzAEj>J+8}799#@oX6 zmh1BvdL~gFq|#4@iNgI+jmns&lBMTIdPYe6{2~HfI%ViqGK}57ceDK__z!oCAg8Bj z3=)bGP?4|Gkdws{3XQv1M-QQDEPctCtL1XsRJmZ|!8q2^qqxcGVVKZ}=UPao^eEOG zO{eTcg;v#+9`ayRlWx+FtkUqHSlxhoARY&{PXtfu7HBt+H2qamBzfY77Sg4FI)!=! z+znZEOl>8OvbH?w852Eext^pudkiF(@>t;zVkSL-!AQ6OQedcrgVp304C1p^H!~lVyIEep^f91xPj1$YF7$BNv8z97TiWD;)2X+(GTwz$!D)8S3>yvhWkK zkKD8MaRT?1zB7D{rEPp87cr|DrH zY>{=LYDJ-9kzxsQ?kHzTy6LzH4)8`8mKV4lOkG)~#6=I{GGX zc1m_)TFAo+I3s4g#lT?(Fo*pv(!E2V-x_Hwp(lpGCJL^a{+S{A2$s6|AU!)uEAKgw rj>G>;uqj>sXd&|?snn8;<4o!1L(Rv_W<4bhmo{*@lhT5ibUXh7oFN9m literal 0 HcmV?d00001 diff --git a/.doctrees/examples/example_14.doctree b/.doctrees/examples/example_14.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0b29947a33d4cee1865aa977f8ce2f7e3ebb151e GIT binary patch literal 14642 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 xy>QyrcxT2gq2p_{9{w9ZqhR>fe$Mr?_h!t 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 sggAqwVPD(31YH-F7^Ou~6l1*tO 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 Cehg0l literal 0 HcmV?d00001 diff --git a/.doctrees/manual/warnings/condition_order/wcondition_order.doctree b/.doctrees/manual/warnings/condition_order/wcondition_order.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f2d17a78a0933ccd29dd89f75816772ffb2f93ad GIT binary patch literal 14865 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 literal 0 HcmV?d00001 diff --git a/.doctrees/manual/warnings/match_empty_string/wmatch_empty_string.doctree b/.doctrees/manual/warnings/match_empty_string/wmatch_empty_string.doctree new file mode 100644 index 0000000000000000000000000000000000000000..072df5c2de84d9a3cc275542a0a6307f439dea5d GIT binary patch literal 9495 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 EU((Y^fdBvi literal 0 HcmV?d00001 diff --git a/.doctrees/manual/warnings/swapped_range/wswapped_range.doctree b/.doctrees/manual/warnings/swapped_range/wswapped_range.doctree new file mode 100644 index 0000000000000000000000000000000000000000..7ffc3c7ece09b4607a34beb758b5c5b075c393ad GIT binary patch literal 4932 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 literal 0 HcmV?d00001 diff --git a/.doctrees/manual/warnings/undefined_control_flow/wundefined_control_flow.doctree b/.doctrees/manual/warnings/undefined_control_flow/wundefined_control_flow.doctree new file mode 100644 index 0000000000000000000000000000000000000000..b6ce22cc3c8beb3b401d36ca2da47d2796a5a39e GIT binary patch literal 19967 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 literal 0 HcmV?d00001 diff --git a/.doctrees/manual/warnings/useless_escape/wuseless_escape.doctree b/.doctrees/manual/warnings/useless_escape/wuseless_escape.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9016de8023153ba13e7d0d1058bbda7ee046a917 GIT binary patch literal 16735 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 literal 0 HcmV?d00001 diff --git a/.doctrees/releases/articles/submatch_challenge.doctree b/.doctrees/releases/articles/submatch_challenge.doctree new file mode 100644 index 0000000000000000000000000000000000000000..7faef5795064b372ade37b007a2ff4f0c5c2ab4f GIT binary patch literal 27208 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 literal 0 HcmV?d00001 diff --git a/.doctrees/releases/changelog/changelog.doctree b/.doctrees/releases/changelog/changelog.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5be83d7df9831e905ed5cf10f9ab2cf19f4762ed GIT binary patch literal 281426 zcmeFa37A|*bvA6tvTTnxd1>3o2472FMwWY)o=qBTgS=vlWMRp+3>ZyM_nqk;^>h!t zXe6_lCH#RjVG{uoNXYgRvJk==LUxi6LLiW^ge_m<>`wxO0AC;>;d@Wjty^{L*6pgg zGm`oL=gadDd2ZKomiL@GRduTB(M@lB;%OUBqyOulUu{)--Fl-l(ri`3&WZk6^kF${ zc2B(F#EzGoc;SiR{@LyFYNyp}SHcth(@>&Pt2e6cuzBL)6SdR&XLiC$x87>TZ1PUl`=Z( zo~Ui9ZK$2z-yD&$ufM5LZ-yuK_2$d{p>ns|uFvM|X|IBWAk$yT+JHNKIb`JGeyP|*3Xsxvzj&_b5Emzz1 zBcs*uXxJESho#El#oFPO@?zLIycjk|JM9X-Ho`Kx9IXgO<$sN|JK*EWdp7pwYeQVR zQd$>?5B*K!Bc)?pJcZ~FDUdPHHNxrISG$t9uRReg*RFyvug3qjO6$=U<5p5jN=O$u3OgRIl~=gjvS zjj(&TQHPua{-lIX>z_@(9Iki6W##Ao(L3wM!fG(zTMXv5m!>9yn`+(eN@sR-bg|y8 z_2x$^t!1e^Qrl>~)9FD+D16J@;n^Yj7IbQ@UZWb+o1JdC(Fl6YdIdIdxKi$hi>-D& z?2NR-paUSR*1~o;G9&H-n~LyMCg-(?gXE@RgXa&E0Z) zF;s!nAMt|*=SG+pd6m+Mvaqs<)UvR)nC9A1GQ8D3P!-9wdg7i95m|-)bUwIAVdidu zlMoK{7l&$BFh6k)3LhM#Fyiq(6uMVhF`QBDKgxx(9cl6*%>d4QQ-U{ZcF-^>RyjfPQXHqJhS^jZD&3-p_2M_6lYoL_nc``RtHc^HL%M$^epR#tq~& z#=m)xT+JZQZoI#lk6(msJ95eQ1BFtw*z#ZZ06y>|xfULy?V z=B}BW3(C!EP-!(6>WjU0nSx1t7dAgPm$vxHJgvm$e1TS5fmP}!2;+O;2w`pmQAfMn zP>0Af81=$vH(VndB8y!*6EU_0TuW!5Ow>oAf3ZOjvQ6{Pyz;qL_o z{9TqNo3SJmdNIJ4U<$uVtuPJ$kX^Wudt2fZ0C{IHo0JWS573o~%FEMKa^VUxFVV@Q zpJnrm&Nt_v^IT~m9o5|>zsFR&A@XvRKV~OpFe3j=Ag5TYH&=SyBIa$aYQ4D_+*IyV z>h<6SL9e^8>lVf54eg|9@x+Wr06sCp0`MSs8X%5gy4h+L_Z+zG?z;ol9Y%1hZnVo4 z42c~~m=T~a_8R4O5FT4;hn)^wZHMjW8v{!Oz(YruuX{My=y1>$qX?Nhp7rMW9IxX181W zVt>QV#Nq@YoR0+AwW8K*(Zq~zJt(VvKg&nuXi63=)DbnTV)Z>J2ef97WxSvoF4UWK znum3Qg;qPbpD(b>P$GzSYet5mkY&mvc$k=qLYB;C)1kyO){|&q4C~uy?DUq(&_5J) z*Z~G&x_vduKbw`;hj>ME&!iDPhomiXRvgy;_3pvwzWjL*8l!=1O4=%$H5{{uS#e*e z>*c;sUbwF=S5D3WddlFwW|Hm;eHq->4^y{_`-;dY^sks5%2cZq(BNXg9B*&1GZ7fw zj`AxOVGGx`Y$;d!;?lv0HL>tY&2tkNOb%^jWcjwAmNSk<3)_M4U`05v<#IQ;X|dVE zlxw+jw33=~jqmobDin_V*M7EtOzWYYIu;y)UWaCPccGuCPx75%yN&;k{p=2HKBqm~ zm@mnZNfr8H;VO1K@fS$)gG>R*rL1is6nc(kQv<*~<84{<2j&AkISX< z!sY%oS72b(+^6YcQkCzw>n|G2o`i}aMmmBdb8UJwsm@y3OwgF;Xi{q z-(tq{RlVC8qOi5q>vA7!SiF7U7hw@6CKx`BXT8A+g@QNM$u(CC^{>$5q0NYev2hG*y{?9GllY>W~$O78zr!L?%ehq z_U&ig%832&N$rm5MBN;k$kClp?CB7UrqU-{R4V5AtSYAYH@K#NqbD)TpJ9C{`$9$c ztps>qPQAMExm%g!Gr|mW{ClWVWsV;aQRv?=JLIZsDJ!p904eXy4b;0(e!`*#F`FN= zlruy&)I7JD!Q?2Tw7#Kq=t69z^2BZo4R>OOw9p8T6+69^l~$YPQ#_oR4RH8^Es#BV^Zq&bhJwz0>inU+fnu0;`1qywH;UGC| z7mT_QwtrztZ?a`J+`P;JEkIBV>b!Rh>N}h@FFW(86mvQlx?*^EGRhxiZ0N&-I`MrL zcEIu=&;fs3*b)&ZyDN2Ipi>V1YzcT^+pV-)Dv2TD9Tr50v4Pk1Sp%lN#OUy|Tw%G^ zfYFXVJZwT5Kcxvo$M5K15IQpq5Fey|l>s86qtL%LIukV5)ks;nRscA8A8ug28RdV< zq5&~1yp_vPE~;+S6B!;KMY5|!&1WtJ{SiM|T}A5hLUis>21J;2 zA!fqLMtNnWaXgq0v56e=WM0}`M&522+s!z5(^?o}QB<=k7A{H?(;l(S#B>zf9N>{! z(5B~AL3d9)gXYc2 z*a)YCAah~u8}zjF>sS@1sWxvNvCo*V1{EIs>&AQy#-xaZZbkVgFsAfKNSP?N;H&fC zX-#NS#){^t?LR_Va>(%KUw{anbz)lTlnohAx8O(_GEmoR$Uu29WZcOWn{UW~Pv9IR zh79c}H99j48PB4Al_4XdqtM?yJCqX>QhsY`1Yqa1xEaSCD1WO(Q)2vhilv-k{GjH! z?F}Ypz=XU1YT*o{4N6>SL9=N-D5$%ZvNx~|(=u2;nTdeUQgyEG}*xB2{rZIRL} zx7q4O&88Q$r}L2~Oeb%3xm)ogPz%KTN{e<#i^3&74ds7`l^@^|DgQE$^enPdoF3(0 zu4@lQx8~o2&Ro zLb7tj2(E77OKi8dgFWmbqTtq6yVL4+>*<}*g;Ue7u!E(n?vQBX&M0zm?5s*GE&VNY z3LX88MYXD5+l%sFaVW3oG_?zR=yO=$<@qa^eT3~gT{=~6;IzOzgEswJZXXYZvBZc& zj(oCEpYLEABlfz(Xen?9)94U%ixgSf!lfxqxj~oqbZg5z9p~WfckbbeZ-fiok-F@KQh5#nX0Cn2Mf3Mj ze&l$B`WzIRyS=A(q!F&xE01I`X0CQy>zG<08Xn}D8u+^#oRM_)*iSM#M7PoKQOjAau`5*5U^S^O#=*v#?RE{|w?7GEBvLEHY%_O9U zJL+2au(YqirpUz@qi89B#Mqs2g}!?mGJa##w=Qk7%RP?Y4uGL2Ih2Q=Te^akQ>MDp zl25bMnEi;(^^D{?Z;Mg}tTEh+;J}km>Ot@}rir?w?!!f*4WmiMF*aQ3?6_CDh}n1GI+9-LBn@w($)V0 zDTp;SE2Y6&+`9B42kwM49)vU=aVT$;#-x;n84;$TRu{t?q!{wGC;4YhZC!e!13!ZQ zL*V~)4&{yfkJ|V*#SF@vb;Peemt3LmTTKe+T_o$ROTX;Eun^EgDE|u%<)whK$5F$~ ziAEnjoMu;xCT3Zi0*B6ygKVAz+Ud=Aj(2c>W+JX;zZnB-%BpCFt2n!h6jJOAu+zID zzrEU9UMW@<7EyDU{+ptcZoAb87ATF9-H1u&esQI0AlCakQOY~3$`Vu;;@bRAeiJ1s zVRv9)?MkE7>9xZmvLm}RE8rxAE1h}+=kuap1Ns%`kLwlm%s`@EC2}8+6W3ETQ6Gi= zWf^TN5m{ytDE?CnSIJ28A|=v{R3>nLejIADA7m#i*8GAUq$1CP_sjAu($g$68f0h4 zvv95y^EepX!q%RR@_)+M7!+IXf`oFRlFL!Xn*V{W3}+7Lq>XG}2>P=|DE$8(*m9>M3%$ab*(({Orut|=v@fK zoXZu%dzQjty4i-d9OqwGv7)dEp&J)ZCA;&h23hm|+;npo<*%@_V%E*95L`}Qs*KmW zb2r75rJe1;^<L59qoXm&MAMA1LN$2DdGI9w7f!Nq6ZiYu*7{a8Hw-h@TCaU76e?6y|u zfc$U=+y7Xeoe#UKVc4WQx7)b1y<1!<(_JC)njLNdLy~%x-4jCVdKgwZ-F7cp&|Qeu zy&~8eM)qiEO;ITTl=-_12p@qSAg^N%>JWp}Jj!=Dn6x`km34ttV0*o!5icm?$dl@<^B} z;jTteabnz~;>5U8(I@?Ug3`|;QYU;KOPHX?5=2Fx%gra~K6g>kM>rECobwiYB1ekfhk*d_ziY7*bq8$`<$sfv*QYabq&P%(auE)505~UnshW>|BJiSG9_UiF z9KfY&IbciGa)6eq`G`b;tQ>3)ec=D9l6H0DcUK}G^#1`>@_0qN4AkEwh0~$40eTAG z7c7oL$#p?puUr?DC$~eFfqs^|n|!%07#BGQi4;D1(Lp`*U`*lrXX;nUb&2RGu;Z(- z6O9kEaw?M;+U2Y0%#d1i?pbRWw~xPL zLx3voT{75ZQTSCv(149@72Uf$(YlA-43x9^#(xMEArxp?kt4ZuR^)rSVgmXbRnLUI%e| zhq$V^wMVCxe#t}Jp6^ag#P3e6Ei%E}GL7z%b{rF(8N~fzCvh+R7vcpOKP4j*|EYm0 zZhffygon62hsud{8Y(fpF^F3`{)f&C;{J+J+=Ca0#Cla73iz}oZlke@w%R{wDQ8%( zqUQN@d@wl!)~ouz#up{<>Sq-Xlj6Rm1==~MH%j^9c%{{*hlz0dj;<`gy*+flP_ZK3 z(TEENx7`;!<4(HYXKrpgRmZY<{H75-t3hkw*wRM2EZV{!xcLvqCh%gV=#J{rqIqz~#QUL!o;de?8;Q^t#Fw16UBa9ats~=a-QaZbJ#D zv-0|yh?+il=laNzvm-Zrw-UYV)!IV8)gB-Y-OIKU`jTZ{2Ws?*eHblx+s6SofKxH1y)Y3b@lIFUsTJbm;Te%t7V~s z^=nX?%iWL%#CMm2_=LE7D1Vznd2)$d+}Ub0xJ1$>x5n&hk;lzi!tcLWoY}(F|7Ey4 zWc9S?$y14&tlO>SU}W(Ta!n)09ua5BN?%aR$ja-EP%)UNW9=-Dpt8iISj^q))-;n}>c$Xn^$Io6;+a0* zeYr)j>hgl;d>4I*`R=1!9XS`zO!M86cK#Ke8Dgdr)UUF57SU1YUotzC)}-Rd&A$U! zyoJFwEr56&GQ@ zl@8DAR-0x6crmHOR1JW{= z85NTrGsQ{%AafAxVK-+7N9!$gO^5677CM4WT=LMN4+wiH@GN(`DQv4FswjuNUNJd3xKSczh5_V6Bysrf5+<6|D8MB%8*yO*I3P)_klw;08om@SA# zJx)}QkBJl2x3T#^bd^W2(qb7fG~*~QhtX?&7;NL0$)mo;eHa)Q4D4^=slWL;UdF|( z)(a5GF#-VHHH*jJr^a?oaK3+Uuwbk|(es0XOVrv<7WtRJbbgw=ZadN`ssvXCjK znVw55Rd}N!EEE|i2+X=grQ1Q@1`|r5p zo?v(fbDc2fCOel;*)F`J-5%a=e7Cp{254{Ks4ika+;kpITNzAO%k3t*kC5nNyyLO; zHgRPyJN8R&qdfNLo7ojMaE({r{Me&!A(O?odT{m4@FdmQ*`t_-x7s%yKDcsYaCi?6 zj8<-$#nryeDtLZ2yPgI=;jMX6)9mbgy}MjqIouUx@dImxZgj+BFlZ=Q?v{s#cc51$ ztCEkaN8!jbJdNK%Jl}%@WK<9fIMrHht#-J!OXD8i0fnQ6_u!WPZcbo;X?DsB;Yfv}wB%#KC>(XxX;((83uXG>NNqOg)CmE&0H66g z%H@Nu;ET#fTlH$NxN~Q5Vq}uM2bWyQXWh6&nJMJPv4BAUYej8%xV2JAxHUm{lwEk3 zWi&z-bk}6%2rz=w#qtr3*HXzx4<(_8+gp_$JMYZKP%QEsAuq-+lq5w&hoDFAyJOGo zd+*@POnA78(u7a~pYZSt!FwweT-gCj$6$A~-nkw>4ov5fb&|F;tf(#8|z* z*Qv3qsAaHGD|dp`b_@NHfuOUa(c?)sf>V-Uu-L;3N4(cbpGm=_nDgC*2FkeQlbmXe z8x8yv?~hyoVxI<5g%SE31MHTU=>WrZ__?!!F_(oy-BzX5h)D23+@wI<9yDA{thLeo zqsU2XRfFM?9q8vx#gvAB? zQQ5f@uAALOjyElEp@+wKiNcZj;vhS+gTu-ZxY#<@2^y^yU_zQyEn&(BD^mh1ceB^x z3I40}7|iijkD_C;J3LER1t#(23td1Xo_}Fa8L|-yR|B-GhMUR8`Ese6o@kkPh>2{D znsP8li%;_VR2^USw#6<1|DE~XGyuPBKF0Jl@-g3=}I9qZt^>aiaTTGR^CF9ZY^sghjk#1;Q=bY%A{q+) zA;eeF5`%&g^(z$5OS=K(#V9{ykzpoKUV?Y&Jff8-?p@Cn4h?So9}tSvrBK|e?=2*O z_tQ~T>Y4e(r&*LG0MDwzDLUV(kDf@;ltOsB4tbAT^`T@=eZnoODQ%20gI_$Pfj*+5 z(BD5h`Qaw!9E*E7miBZjJGC8a z#^lYiG^R;C@8!i7(Mw}ORUczQabZl)UxP7WJ=S1MYQo~_fPg8;c#URE5f$tm$~*{& z!%}*OGEV~lI;X+SFkXuCs}}8K8U}6(pY)jBMhnsY%h0-AoYH=Ev+!kDF$?{6{ts9L zub9PdKeLc`^S@^;W?{OTpQTBQEOnTL@n-%%(##^Ff?Z9n>EFH!p$sFFvv^L_cNc>O z3r>KWO}rfC-(^uvrcE^Fw)?EPMoX?aw@Y-xIQ5-t*5S>%w2s|+_TE=5Dv;KJsy>4T zii<(xpVwd=P#vc}5rL_Bz^4NWra|MsHS36|V7D;mMS>hSaFui3MgV+Hi<_am0_FeS zqNPkj!7aMEHu^HR`E+AAIUT5g$9pX~SP+oMo84o2pmfbSZqsaD7ogwix)wuy3DgIy z7iFqF;=US#c1*BO=3`T5hMC7C^{Y&`BRbeMz1eD&$i_9j*~NfG-kuwFe;DPjv`9M> zy9hwAMeHLqzEk15o2*0nl=hoKx;Mir()A0epKX!7@a}|kzYD3Uyg>ScYeKr|Lh6ZR zDm-;&K>864=@A{sg`FMp27xqyJhg#y-n*M!yb9$HSag$V7l&XMd2%1DnGd=loZOCd z`{2Z9@LfXvmM~DD=0_ z4%yW#q3%>1Smo`zVY`p=ud+x#6Wd3CZJ&*M6lS|{c@l4QxS#UAbqnxkT(JP09*XtK z)>c1e(Sc$CsOx0`C@(DF57%M=P@cg8k~yZ(u*m|xpjkjfN1;DGJCq9yvG8)Y0Nisb z-0b8>QU3QVI?A*Y3cK^9jAbT_>Bew!I?xgC&w_&ZY5k1+X-KPe**-(GgSuXbM|pwx z@2v&#$lNm^UfpNq#2KQUEySG?*GF`)xISC064r?8vx@S|Dg7uPfUWz191Af&_V8X9)J?1VA zzY!gH@qTtFRxNhCQc0(BTR0*>ouedxKDH6%n3|d0Ow+@Ep-m=#S10`Kez<6y8;VZQie&E&LeD zzs;hROk1GEi#$pHSo<8D@~`9n_zkAnkwe? zz37)%q_1M$Z!a2s$C!WNnlNwLi=IsGMN?-6%)d^a)Uw|%vxH39dK&g?B?w#|89$}GVSIm zWH&yCccbIt;;^`G2kX*a3fJBQs<_tgLH)W#Rw}MN??J^;MG^J<%bIX)x(9VKxg!m= znQ;Am4c8GJbj)oiR+_}A`V~0hrQLA%GbsO$7FlNE?zx1!99Iko)3jVLpu_T1beBS{ zH+w2-^-QAc&Uc+-L#}?YI?4;wZezXVn`6^05S#;bjchWxt4zchyzw;ktIV+@Itu+A z(i_`UE42^i*mxnch2Q2t34O=My|B+UB+v(cRwem7p|&_9K}rYyjlS=9pc$o*l9 z+*QBr8M&8ahk(crafu?1YC z!#PNd2FYD-sNZA@Kd0G3L$jyF!5#>K((O0JZ zya@J_=N7DWx&uo$rXK`ybj$J=k78L^Qb~?K8!vF4ji9dA_=ECd{P~}?SQaii;~XT$ zpX81`Kw}zzE+X!f*+@i3p?~-6(0V~8mgjml3LE0Iy4l<>qx^s7wK<$mD^2<=%tY6| z`Cj^_8`mlAH)TcM469b8uSD(kup-ZuC``MB6-}{Ta?a_YG=mkX2cI!Mu{nO~MV`Ag zD~jk~=iU}GqL?*!gh`uGS};VOx*;2Am~Y1inoANOVLjgy~Cm_ z)l&RU6G4;l81b`fvJ}&4qA6{^8l4%|eLtvKN<>GY|Mc0RbpwqYJJz#R*b%4J&FqIJXYmxy8*z*DSmwp3i$;yhJHU9V6J=4z2$|hmz`M1w6^>Gi6*Ex2WTq!bL7#>RIS$95IRN;~8rKy96kHg-}QQJWVf+S+gorQ=Bn zTB5%rOA)otQEG4Q&DVx@yyV0SPYl=2fRA9ejb9)>^f!%d&|lLFgr$4=Jm=S7}A)+hVfn|15bECF=cmhvrwl7i7H1YsAZEJn7?==_HqbOtt?lYR8< zWn;dwM-0-M7?D1L@;_@Qnmq*jc9fHD9fMLfwDm!Wx)B~PF_vtqSEtm0$>eQg@Dbq{ znsnbzzH`9%g0W8V?4_C5v!{QMe*N+b+2DRD{o^(6TpZV6e*L3qzpg&xap!&EN~2tX zx4Nfyq!F&xD~|;G?>%t$Av|N(DKF#M$R2;YuiRK{wd>v5GJEqRxc5k}j(4P^ZzCL^ zam=%{gNVQ|3um}qJxI~8#cP*Ipon+I z@#I~iTv}8QMxvr2_Pj(Nii6UA080-smXiK{i%ykru;;48%4V5wE!$-y#sJLcor2M=>`W6nkE} zaRUo6_>XS({HI{-4fcMm_PqVR5bviR!6>m%Z+Gz63cNp!ng?&ca}WN&lX&Tg-Zpz3 zAwrj;v0q#IM=%7w{@#HvF;spM<^RT^ym6?^7PTI=QrIHmxm47u=FFud$r$5=YD3J5 zxKPr;>?Cn+fh~#XZPe6770ZGK)=|dPMHT!ZC4R|8OyU>OKVHG@1#t})-2VCCz#Fmr z*vJH1RGBG`k7HdW4!uo3N&2qk^lguOb6r#k;u?&;&!&TKC72A=K`qzCBK*-;Jj{wf z3Zd5Ca^>Cwe2}~Aw%dx6Bc+k?)OtzvRP@RW(RuXR1*t(&iKUPn@(|XK%b0MnMXXKc zEcdW3vgeC(^rE^xqZgGIqgTX8uF(ta7)GyYWmlP&IQyKra_xHjcf1txOyW)%y&^ga z{cC53955nfPA>#%Dt&qD448Y zcXmsfuOV9=Fv(|4@+IvVTEHz$Cw-0fQ;g1~ml3~PmtGRH?doe@6xU$B=1XZ`qfYc6 zPMW>PQN8iq{IO%6p1?wAnmvV0yzd$ou@izx-HA7DI1SMR{*TT2}NO~ra8}CjewlIKFCEujYAz>Wmi4prAde9dTbKUYfo9>5{};-C*`Yi+${h0ec+w$jKS^<(c`*~`8T5}=aJn(B z!5s2qgB|jllMdM<&w6|}e@`6IE%uo3VpyO&#Jx;0;B3HR!dbk&-N1wKi+BNirCmRY zt!vs#>vY?_N|!>$g`m^t!F(a<|OqcF({=_vKnxu5JskN8YW4EF-R6$D{PL z;J#4DL$~Q+<~b*`H(?fYYA269`qmswJ@)9^2CyaZuylw-yLIUS2Tcgg{S(UH=TP3L zxomLg!yW-d3WjZLA8mk($*qHrztmfQuIV8{tBCxrJ56#da80 zk83-dQ7c9405pVQ&CT(q=_73y(2if!NAyEjUJTpC&XM{`T(;U?u?{Emok7cxrFVPq%=Ue9|Id_7V@!bXo1@wdQn(V@JNtw*`d4x*DMIqxqgk2Yw=a%8ZBsC zpRkiAxPG0zXw3D0fa_N~ls9sXtj-9Vq-zo7>5TuXk#X@Aj9-{)MC1K^b^-+9>l^N?LDQyl=H_DBbu$^KPB9NkqC|WJ zO3sX`Y6zLOQz;NKVJ{jp^gm!|)S)~f#v%lO;GlU@sbT{C#k8uS0psaW=ROHbDaA2+6MIU=s}q+-kiYR=V}0p;&4ez2Ryy zjLs~rvIZj~Bf$-$k&)mhvXZQy%Ey{mf~?fEnkj=S7<(5+mGP@Ite28*w=O;EAmwOP zZ|?>={qX`;VUT5AJ~wCPUN^Hh5D6(W6JKFwmzdho5cp<00|J3>v=F=f>8udWGGl3 zgl5GNAz_ou!d#jOE$NFtAIS|8x;(3*CZ#XfIT2F&ti5O~r87uMpLVDqrIhV-(!PoV zksDohJqKs?Q_@}R*^leS*!t>24;?tT=dOLhaCb-KocNdhi7$IoW#~(?%zbwpIC$@U zci?-n>YhXU_U<`&+tZ@vk00mGE&g+b`8xc`l&l5}(NZc!97Hg;9IUP+`H)Ip+H@)N zXdCg5W2mtAOj6$eFy#&MXb2$_lG3fXKs~1%nfMBfo}*Nk6tnf9t#)z+EHAScjbV8< zadxpo1%l-kR!;F>F~gCPb%v)_uaShlt?`hYHyYD>&B~ zzTe2O_{tfMt7{BD%TAPF_(6NonBjAX;R6m81~Z(Y;hvFU@l`Tx((og8q6EXM_M$Pv z=MuvmhYCi9FCiP&y_BxzHyXJXU%~Yjy$wy*KW-;au>K}{(U|q~i1jx(R4}s6ta-2W z#5&jSH*zh$M!FW&HHLq~PLyEygZ82^!{-yj?{%nPWEgWEIne0be%8pX_zG^%5_L6J zzi1~%u=;s>(U{c>h}FMvs9I2@vfy0vf*RNVWv5JV z{U7$CG1ps&>u)+#kX&bnKZdZ0jemS(&#q?=n+{#MNo=Lpo9qBDC3Y<=_S)4T{r-W%(KKfs9txWi0|pb^M=Cn z^=|Pf=CrLgHvCzz$XMa6S8&r{vEJ;2P29zTS#M?uTr7cWT+%<|Q;Ix(E)cg=;CQd0 z2G(=2B1tI%O!Vmzatp@ro1wq30={+5!sV6jahxJXww~d~W~Eg{UIcO|@P_j7bb&=f zH~hSESS>ELx-CPabweHPl%!51plA}2o>rkKEU_n-rW^Q5sYA~b(TSiu5FKI7umg1$ z>k9@x4;sqTGDw=5o}px~S%>TmKtskyij38IH7r(YWfOFd8OoDkj8ChCu=Sbn*a|Xa z=#G@sPxxV>j;7MnmMi)E#Oy8jSXAf_E+iLeuDgs)X|BOPu2Y(e$gu{j!k{S)ayrtk zX&(+4P*^WVkfj--AT_lSUomc6Y-mOsLT<8?FNToa_M-6+atU!d~){G{A z7ubmu0yu6j8Vlf35dY30ld+nf>8kC zlyn@pr~!ozgAW>|AihEh{5Z9tEe#95X(v~R;zRbLu_!JlQM})wf>9JVBm$*@!ILhS z&qspMlIFJPE%JIu7Ey*}{q*FQ?eq)Te1R2(+&9tiCuJP{4Po#SiGaV4OdqBDI3N_X zU6lS&w#=5RzV1um;OJXyEj)p=_gQ<}ENd&}%SRGiS)*B9gXdh%UHm`|qE#U!RfF@I ze72x1%TO&ecpfV{NQ1mYQiEHQysA;Upzl&ei%J-;QM%oiQa4R*B~6}fZ`-WNs}kI$ zry08Ho`R0jqqF!5*h6SkXad&PycC{E8&A?8+Q5H5LS3riw!;q0#y#Us~M^{fVT^7uwr)F?34S zN>1)|<-Hdjr43zt)eK#4P7}zl+ldy+d%wMCjP56qKz_}kf)U-geM(WMx|X4f;xCM% z5MLpRg0Ue@2!ClOR0!d-_M)*6t|B3P+M$9`2-hWrV3?}2MH^ir-;5+O(6X_1APh&f z>`;@-ckHwaxqO=y9c0151cQNd+7ma~?HHqO`hYCjEJ}IeGeVtGj#a%{G zh_4XERuu`!)--WE!%nim>)rOEu{gGoIPP$$U=+uALL4ruqPm0@BMA*OX*4WMM>Xk1 zO+*bl8$v{NR&)v-O+s(Cb0IYPHdb_yMtO;(Mw4N;wj3`gbiF|Cy}s1C>GK-W z=UeP;oArtPa0QRij)JbUKSS$jmo2_Rs9W?lG(~;JPM%QIr|m^!?{qD({t1T)M(=ca zf^}urL}&l&M)t*5uz!ide%y{Gf^XT$6e9SBy=W|g>qrD&b*NwzK@#8E?vO5q3$~h2 zAihEjsv#uW(nN6y8gg75xzJuT7RB`>it`*Q7)6mBtFZo?+D_7U!gTqJM)Dcx+2V!e zW+c!{KEOO91$)(U-ftV)*ARC<>$y>7m3m{eM{w{7-q#e{*| zHY#;>R?w|=phBa(UQ(SMO*}O_3qqYCD>_J>yhKu+$!Vjy|0>8+XM^&0jn3!$(&?tg z9i+yxy=}7^uTQ8kd;eHh;G58)Re@+uNJxz|4r+pVtDShEz_+lXgA~Y1Bo%mZf=Rw1 zE(p6o8D8iYjkaI)rOi!gH;~faXm8uBwB%08z^!~;Zy!gWR=uG`As$t4Jxw;BvePg0 z_6b&WkluKSq~5fh6p@}FXiMy*@E0 z8WloP6}YO2XVVqVvBCycbdUmhiKGIPo>NU35#*_!Q~s{ed6_SrZfd-d)cD_d)rf3< z#dQoydC^rk0d}k^M1w*`stT2xhuL1?E_cyPSyjkOBvpvhz6zTni${=lVd^(cb@%wv z=cc+Msczifw%G#3jnB3Tk&VGVq8qP3%mpkXIdxXHS`XdID`kO)GD z3dV?BsFjhP%(Rl3NqsSaO_X9nN=oEMA~``Ke734o(4_HdJH)PMRQ`c6@?IvCRgmcpmHu0c{dQn=DgokGvQkNIr;9i&M zi0-V8j`E29q%u;!Kz<)!@=K_;k4>^n5``DIETe?%jrpqIv8zX@o>Kz)O_%)h9|x;J zBt481F5YABm^li0Hk)n$OTLzK1sDE8?~zA}U8G==_BxezeWlw;DQatWSs}7PMPzQ` z--2+^|2Gcw3x+3%;jcJUAVV0$@NJxlHQeZzM)0j`Z&L{HPPM7rxAUn_Nc+GUbWYKrSW8F?r zZim4_50}X;hqzXt(KsH=w_8WTCZ!v1AD@^CZmM;=E1lWV(ZzbV)|(%}^7?4!$kB4O zT|Y8PL;PsH)9HnsQ524Pxw{!4Ih|VL&qU45EtikrO4eFfIfC__MP#f;w;1sITcf@_ zo>w2An2Gvo_nL>v<~k#t8oM7hSgnQ40H2u?rPBg<+Y3x`gXA|$mghUIMh_QGu9UmA zsCSP?tH&pHMZHI_p$7Hkm3HfBNHXNjP5P*3QmE%3F%m!FRRq+gw=>9A2>`3IP7nP zI2#d^t5qOudA`*Mnm{&Pw7IQPZeHKTt)Y0tmjASkqc2!Sk~yw96IJ7 zfo`u_Zw2F%0bVznnoS6T>;Y#dB9u<~fPPAV9?vgBUAVXvXeaF>fWS+^Ar5WuQ#o|s zGQWFylpW*usy^+i+(lkkbjcE21|- z66Q1Qqtt1k)cbJtEDh!CqS>ggcB(I^JK2|yElmqsI;c5jc7Jtm8HQ6|0HPo{C{`Yb z2-vZ0VmQ*|j1P8Z1a`=M2eq)VB5VKxgsrr|Y!$--5?k4QqLI^RM9yfJ&r<@s_@fFz za9|nZf%c#@Qx^xsE*}PV2?lPjFD!)ZuvrQ53?F$Kklbl4hq%fV!l|~x4%s|C!Nm2) zGH%m{M$S>jR}n-czR9rb;wxF$bs_$-Y^B8Wj~R*t&SMn@9SJF8yv;MJyN~IdwfMf# z{weBlSbOotpGlz;T-sgI-)p2ITUz`K=y|!uf zT`SI5d?m8HjeM5+1r6fy--wPv|Hj!N55>p$^{f|j?lz;^O-SEnQHYocU&Tc#FKk`R z8F2cBo4OgC(tdSg@Q<(+W0;uIrqN}K>=k1`T`yxmd0`9>bIs*52Fwx+#*lox5K{@$ zyDZP6eidVg=)lFNvqL%vq+pD{0;jxoazz6-bE;DnA?hLdQMSw0EnaRBILH<27LwZZ z3`n-xzsT@wOs$(4KAFt$AvuVShZ9fkhw zc(i`aQ+6rJb!rdx!YOn!u$#%ie%7KuVxQJ_QU>;PGBBT+SG3$tZ%LLN(Y+47Yf7=R3C-wQo6P`GDrl)`ub-h9= zlqdPq{Gz~m$?2!De#kjc=NB`|i<<9P&PdcQH{Y3DQ$M|7}fVO>-$L5+80T`B;xybm{!-$o#RnneYfAb$;k+-FfS zTA)8!%k#Qr{6Nx|GAC~Vs^+9mv;QB9E>&~#oMunTY4*$3WKO1O_Kf!YDLONl)0;GN zis&fxpEWyl(m*9`@MQJ^JLKHB8SWiqxG%OSJJWF6WVk+a#%LF74SQI+Z9ZNkq|DD- z466C*Q|I5dXhbzX&#CjIoI3x;n#|8Mb)He*#G}#7ICcJ{W_}SJh5l``L)p+kngcdC z@sea>i<2H1WKX1u4IUX6^lu*2oOQR99+TvhxtY>kWJ({fC@#~Kj>44k?98rlUsgA# z$CC`*r2NI9nADUWAb#7T8O5Yf*K3x8@}yUq<$Pl;CWXy*&Ou_9Gl>yQS&c$xh7s+I zCnaY&5gmp8p4p+bLPQQ+>(E#%BR8YEn~dtK7S&}M)iN2C&$ernbC56NK)0pGq4$&t zc{8t?(6scWY>ss!fo$ICS>&l{PZOGsO=y_)l5?Q|3N)Ay1%avw(Z*zIj&+k}LJ=K> z{;t`foPdy)lfMn%pHt#yF!zwbTw_sGror^cV0>0Uqm-GoCCuoC^EgtGG9YhZs0O4j z2Uje5QO6+9<=`o~9DI0924q?ep3!#l(V4-3I+_7RbQJnerOnH=WK>B%v<_{-J~(A= z2DO(A>e&{>Wg1i+29+lh%s&rIH=1Myk@W*M8Rf#|cFPg`WK8i?oYW?If} zKCvbPG0twZy>@hFFp$5|3?!lhZ${4!89)H@XdBE!=CLZ~Q8Ko$ZBQ0083(7p%{ZP( z#_=(Wf-;Tcd1M?uYr9d#ZT@^)-Ao=Q3Q`8+EdbTQ!mp=TWUq`asOuGep}a7bC$Gg=knx{3mR(wg z0Gr38CjR$o#uCv{=woc~20<*iT(yC7-n*M&+)suvV^L0~VeE%te(dCoz%fRodK z4t0MP6sYf-)S!OUB25MAsOtrFlowEMuLbHjaAJVEmPdfj4CBHpG^j^(;1=uIp=`BE zOb;vuEb{i;!22M9w`mb~CU|LaHP4BfHJqnWt_EnF%HEl>Q>gb@*=47RRMhJZ{#Pt& zP*Lyc;CD#}|IRg`-ss@9?S6D-K>crNsE_C<^moq=IpBe9Icg`Yq}S-rI5m=hmje<$id?)EgZN! z7PaBC3NRziZQj)`FE5wd)C`@F#EH=w4&$~e(ecHZ36GpF!a(Kq) zSmca27P;KQ*>n(xvz|DAPY0nn-H`x%W_2^-Fez&@qAk&yPZq|EI8xm?-mC=0B0DC^ zufPvhM{xjEW!+~VU`CuH-is6SouEx8-f;$6C`!=bcQop-d$r=wk>BZ1qXOvlUFQCC<4VA!o!aB>%q zp*6(`^W8p%v0E6%UfiHS2a!k0%dEf`&p7y~nYjRT#fuffm4-TteCyA{`AJcs=AKd}mf4#7T%&>@ctv^hY| znmqb?Qv1=P5r2k+Cg^a1o{)Y<;Jh}2x?V9j%8M9$1M4N{+6=}e&Vjl%vrEfDYcmlYxK3+!D6M2A&@lfF(D4?M=lnMF;ZcZr_wD%tCb-OyX9j6S0Xb~NS{>1E%KMdlrAzyW1 znD_5y9CKtGcUja!%o&a2DKL&a(Ww~YbT%+PX^(3t_sKc+!BqNC6s!g_u*p-_CX`ZcE74S4eeycb!7nF%~v z@tespr7_MuXhNeS@#J)nf~GeMDl|({6KtgYEsHc&XnO9=;<$r==7-h;@&W<*UoAq<1oFKEVGlU0E)&LyQfmgm}hccBa!8@oFaL8M818$9g zyWJw}OyJ&4z|FBBm|hOlA-m2kr@-n>vx!405G1kh($1e^)bg9OkVYs>>zn02h4yiQWE z^=3tdt$t|nEf%S&u=PB&I3o`&zHv>kH62>qt!IfC4=uh^gKb1dp&#HxJ#8R7_UIeT zI|wqC>R%O=&Dw0BJwe{E8=4!0=GR%|o{8q?5}I>tY&dRf=(s)=-K7xj&7O*I{rtwK zERt3c?sk zhCJKBV$E^jX0UDqC%-ct{Qj&d;72qYtC4~K7I*NYuGbPX$`kNtiFtM{;Kyz~=Rlo9 z?$)*?S(u&z|2_@;5gmp8^>T@Mu)1SuxmSt#bpv~wz&>qJL#F5N0_=HG6V{%Xpkxlx zeI=)u2!;sVH2i5$Oat*mtZZf)J&R71zzB7{OatYGX*_Q&rhz;YgK20Ri7Ze`nZ^%k zrV-ImpbJLU01hd`wKfE+;550JQJ2hU*`l(f8D%$Y$RuPt`#cjSyPjxY&m_#QQTt-; zOH^xb?FxFK=$@~Ei(?lfPiI5z^xnLz*WXmHvSTq~?_$gN$XGCpry^#GW4nsu<2&Tw zPwkzJb}qPxw-Yt}uX=mz#ItB`6WTkLYNK`z5fU}<=e_yb(2kd!c;SiR+8HnrdX~I) zf%worV{Bx6`k1h&=&#tMmOc*MfT)krKdeojWH~Tdqjo-O{83zkB((RD4TH(JkjP+? znJ$iv7fX-~QHqzR48KV7zRbz{V%(W4d7qDKF!EkVT>@{s08B*4lWM1sQGg_3mUs?eC{MOa5mUrSz8jzc6vMEfZ5yF8!*t=S?aApvLUE?EY~05smNse^rAeR1K#>8Ru{^}#P2tC z%kzyecmdvtLE`Bx;$70%2`t?NL2>t9=x?)kBE{@f8eHANG?7%{bw0F$E<0nAE~frF z-PO?We_%%BF^a$DI~umtSR)*ImB1@M6C~lGlKbPXeMBmLt=;`fszzIyOX_)uko`a&+7u$EU= z8g)8jS?=Q5+4yv2$;bJY#DPM*Vu{mK^qOEmkDAhE2To$)=q6rIWYUR_E0%ncvP$9v z;9WSv)vhDXUI^~Ld*8u{(&4>(4lyPc+I4vO=-6V(CyAycjsiaW-UGp*hw-Eo`UvUh zW+ys}##zDaolc_COON0Rb9*|4*9=$j3~;5gm zXgOw)yfRv%uGeUZ@?x~Sk*h1;XbHR2M$0qm)$uWH6BE6~?pMC2_*Cjx2~i_L3jJ%a zm|!(?>3$u{1DU)BIaUms&%chKJZ#Z`7#gqTGL#E~hX~<0T#(fP=>R{u9i{N?&60|5 zJ=Jy5B3%{Vo~f=Snd(~My2**}RH`e(x3*7--VFF&rH&PRM}!pm+mWno8)y`GI~505 zdHZhYegmQVutolv=zbZYJI5Hf?jxWwvwG>{PZPs>%4EFdq?(MLaQl-Mm8mAiT1aE4s~u&lf&7ae7RUzer~pkSpMl?H5waF-CDUD;7Re;Dm_^q z(8d%kMbfVbViD2O-3zVeh&FgFeTjNx8;*tkd5JC*4QW3>U|(SZORh6-p><}JC}BnC zs-I=EZ0-2(?UEN;2fR=0SnY7}{7CkPbRrqJO;Bx)$RaY&q^H4QpM>p!kSba;Z0P&(Lw)kA&-h z8sV|99aO^=S}o%H1D#frt~7$-QMN`cELU-n((qllW2)7{H6@F)L9N?e>CBFf;*ZV< zisA>l$ZNDyYpou}$C1in{VDb8%~R9U)1|Q;X=^<8c##qt@!ji2fwZyyIyMSCyqFn{ zvZpxWCwJize5=L4WIp4E85P+hiCiCf6_teXQ07QPI|h{OIC4@1d`hYrn-xTKX_? zjnn)w^R78#ABbx(@A314y~i$YFzUV#)`QDEx_)i`c+hC!uClP$37c5)tsf18>pNI6 zzTPkrPv>h$pn2A_`eTp2nJB?klWKVLDK4~6;vd(w;&%`f|HPpJLGhyr*&=dvha&4o z=q3$Cb@PcsQA36eicHS~ph!DfQ$`>fevvTzHkar(W5!)!_-}Cy2E$)6z;IX@#g5#+ zf*25>6YrptQ^Z(AJ1R5?%?{x%zH+sS65+A(@=7D5O^{wxDZ0v$|BlTH`i=jA=7NO~ zwTAa}ak(E7QFo+wEdpET@%XYuFR8e}^lw1SS=SL16>oom#+WdG)c05i%wJ!~+R28S z^w$?t$;e+vy~AJ6Dum*Xm@+qi{VQw^z*!lPe|mmWL7cUC7i4J+4Mgd(ddZksUI^i_ zg1>giM5|yPlP)gh<;_hpg76r>|qX&uYW~5*qAZin3yHgouycW z3YS;9$BWp&>U4seu<%u>@lTYQ$^L3$GZ%lb3~!`qroH0%$=-w#^v_cAZzIaLF8zdq zAcf@LN0NUNt1xJ%_9B`XC)w1Y|1Rnri+G9EmnHEPGv4!)El7XJ{Ofz|M2k7}yX{5e zK=%X0-!D5H!>@}g4uJF>KeoM+ldkk z-)AoxGyGe`@IHqMMuusidN667I?pRcp2b%-P$gQ>*zVa$6KuEbMPs&qo7iqTR4}q# zhyktoAD#2p8aWqV!TE&|v}Ge2^KY~hD42h}y=ct*?-27p>QKSR{1YObXE<5K$6lUQ zl1VB#+P*Im7Q}K1gOt|1CYcY|sTY!YkG*ItncpSJyvw12luY)>Xc$qMALZjgc0Gp? z_0xRxir>0O4Xs(5h0%c8YvTTV9B#zXrDD5>#f5mN#ol5SOJ7(#Z?&;v9)HIQ8H#m^ zVW(1F3FFUE*o|Y7 z{*VN)#i4>x0Bkr&8II0=$;iI=%7+835smp7JAp#`llG!9^M6Flk2zG(n1AE8)3Cjc z|6_;P`|h_4XB7GNOJh9-jt?Q{wm9JCjWW$;mw!G4DdnhZGWR}kwN zu27di+b99?6%x2CqbW@gt9D|AAiDOVu^|4K1hL{!!6=A}Nf4UX*9Gu;qX5KL2;c&( z361eL*@+X3pRgB=8UGkD{#u6$M#foCls&NNL6NB>lT$J%`amQq2n9h=x{@ZDU$;{) zB=bId(O5EnLXvs6Lj@_B?BK=_6tU5VkGR?O9D<^!@jW$dxv+>#xnX*ntG&{u^xtr~ zjPu<%&4Tl~?8zyd+@PZ%2zb~r?~Y-^}|%<8MiETbKUEL1-fG_*0Vd zS6Br-?oh_sX&6{ujua5Gl{Rm|FusQq5be{_1qc!%*;p)Up!`p}3= z!vYZduVA^HV8H*xSuw1h*O5(1&&7ocWgK#cWvm)3;$lPd0t3e1q;2fn!E9p({;@=I zu?PAT3H@4D!D1VEdDCpezZsKlP(+k!Nl0mn{*weTTcN+zE+1hxw{Xc6`d3>uDLZi~ z45{5lOL~`XekUlkhHc#gKVfZFON5 z^x9l!gilQsfE2x|b6{Wuf70M;ie_vjA?4>W=_Oq;?rq_O3y5u^KV`cNR*zW3t}GDq zK0x`IktAeO@>5L9V2ucfe1;&hY^Q-iM7p;q6G{$*hdzF~dg7I(OU!NexdJM>0V?2! zSSxM39ZGL8B2SQl1EzXP!tO@V!ra`o&kwGBAvsHSqL#9S?(5Ze(1ObLDUSyYr^I`P z!okw|3p-ld6mP)d1Zq3PEC_eXR72i@$Fa>RacDPe;2N7IMu1?MZYx0!33Ko)lLRz- zT>LsE9(kN^E%rLtZ#{mzT&aXBWF#OKZmxp=im9C*bAPFFdMtXVvW-OeX0_bx(p#96 zDLps$&_jFo+;`6%_wkjZ?b9Aoo)%JOvobpI%NM9{sF%h#Jbw2uQOwUq2fPqpi(>K~ zNAA!~B2N)Vhikq05gZR5?HoB;uD0t(Sf0*kz0<+VwWBB;@vwkAR4i#7hoqZjO5SG~ z`)oNa$}$Ve%ecCtSMMGt!Ljqxi~O)3K^JVSR(E zDJr+Vy@zX89zZR+13P``8_T{|uK;4C#Yu`X9qo^(Tco3j8-OA*3jN{PAva)1S$Wg} zoOw^lkl^fi*b>?}gAHS{52lYVSoEO;1u;JtXak{avY+}Xrp_%$_)D_RciCxTLBcO_ zJ<9|)TqB)hJa!z7b?ZF&ooQz1&6-gB>5z)l5mWnVHw>PFNi#%MA2UR8vH?n={~lLQ zE;B@^#Ho)j1!88X-U`IHGMM2OVofo_h>Svi=j>2g)kv%E2CJ?15k4r3&`XMoo;XNX zGsbI_Ys!0b1N#>V?BB@?_I&`me{7f;8S3yp8O`f}_9b5dbV+K60eZ$A(Cp?8=W%69 zUfeOk`cNJp@EBJRni~K;uD&k=KpU^^xJv_cLD?U}-H7 zPQ4&NK6zX{m#Kcs##2mxx zEK*ehoS3RjG#JQs`uy({d4)Uv`CF0W^K)v1O<0%mY=u z%ty{V&Sib%G#}&4V_dy}ig9HypMbhm%qJoPIbMjs=#WZkF;c>PKp9|_x0Ey_j61ZF zDMY>T*$>OsnDI(`Pn7tc&GZrCrM!t!|Bv z8x5*y(z6Wy%hdugxB+oozwYW;7M+N}jn{>F?sQ$BqrS*EXl395){A1FBkl`yXva9d zY1dt$H-m*PQOAmfMuZglx6BT$2_15_wbqtm@wi#i-;pKVXVDt5Y@Cq2fB@t%g%SG> z>$2;ho7Ce^Ov<*rMWfo5KEHdNMN6t}c|H<1E@ybJUXyK^r+Dh^5oGzsIo?lewiOYA zqe`SP_bcDHqyr*1Nz3^o$Py2R%3mCF-PAw`fLTt{`!9PVvgMW)<2NndZnEkv)?*K zek;dz<@#(^DhVO0j}svbAt`s|EfE1UGU{omdIq%(H@XGtyslp;Fdc^i|IHwfHx!sQ zh63shBb+)zC~zUMr-T9#A%*^}B3S210eSYcr6kv-HCPI#&ds#`iA?LeUZ$1Zupt+V z?a}ca^z3>f3}Kb|;UPs<<>acO#{jECo01!*SqXxZP_8RFLu+ z@WVcQ>((e~r*osoSY(%BQbt#^w>*zq!H`OF+y48J*2~Tk7guqGBDKW2!yi?;K6Ac@ z+r&D^JfS>=xj9}&)Q~sw1;ZjsED#?9-0?>l9Oz%%ice2Q;XblT51BWhV_CFwBn(%I z-Q|@cOD-ZBsx8X-snUgiAs9lAGLlB>l(EC}kLXtVP7j$joz6n9!5KFtV;Te~jQV2J zZ*icybSn%1KzXXg%t?_Vcj8|NSvRo?gK{VCCAF=i`Zz;zUc}M?qMU9qO@|NYR%wt5I>PrzR`NjvVz zpEBq>gPDvVZNom<1e48+a!^G#v$`3e?2O&a>R2h}WU!kN==>_7^O<%&SV*ytD_G_Z zP}-D_htNU!Q)titN`ghytdRX?{z1xwDd6YqgbQ%~G^f4LzjBZ-lkHo|L2A6kB%qN~ z%AKL0dlUUBTV+&#FbCD@je1Kz!EfE-1i0z>YozD5**iAt`3_QuaN*>MbNO{$`=19n z2JN4p>`X{uiXumMCNB^1SdhO7XoAz>rn;|_>OO1d(X6^>kTlnI zC{-f)d)BdWre|$*q7wlr;sqeK=s#(&IK4PH7FQ;|-xsjh&4LV;-{Ki&$j%8Exgr%B zB{?N-!1y-;#(#MMBfDWk%*w_F9=T-KbBI|#yYaNs#Km|lauoN_(xrW!-U_`k6tr;7 zGeXZ!tJkiCQGluZJU2JDTt0%t?|O&cXQ~{*2mD-SH(rS!=Uc5VCLrY%e831F^3GTq zVR-@3B5#&rR+jop2Y&d=Ox2+vz-fRsMY=4Mq!={WHjAQpyKzh{5{MB%r7IjARHJyb z+*rg>{%Sx$U%K+@z{)hHpkgqtR^8L#2qU-QUAn`;Ox@31;@$BN?$p?(E3WH`BR}L~WPM@4A+(BgU6!O9KB;~Bi)}^~VDE}5w zew#xDT7-Wp=TJtTF=0?$$}#8+Jtty_?r}d$NJ4Sg@*BE(F6$~8)?pmV>IFye^`B(R zEZkeL^C-d--uGZ_*)G%NtL^d@y5xO>!cotmNOtL8HG}6fBP9toPsdOvyJ4KYJqKse zK{xfX@Ay+pi5r^#H=+4aI}K(uk0jANXz--rRs-qM@1b8d5wYRvBaFbLZ@`-_+yRJQ zg^)bt|+YND4??;r$0WqQTuuX504nx68`-PHdb zQvdJRJ2tC-HmQD}$V-R9|9}Q3D4aGzvx_7Y@IVLGc}#(j@_C8xQg6)k&SFhvU*4=t zRCurXz>q<4F&T@-6eqrG6km~pViQC-Np2ANE54|S6c^1m1ij}dUo~nE<)GFC4o;36IR2BsvD@CU z(SIDGdzm;s)@c&84pXRgoYk_HP+82rM#JLe=LV? zFUPWo(W+(J{p>Osy7NNhJAJ8k^X30VzWk`YZKE&m-z4Vuc@}{*C%E*7ph67xmzo<^ zq@7g)?0l55lZ+OxL$v6yFeTu-&0bj2!cg^Rb{Ptf!Rd3;&-Y0`AF;P>*3V@bt8BXH z|0NPVyjW%xx&FjTJ%qX&b@DKRZ+~u0LHiXh~4nA-U9CPAE0&XUW;-Q9uwc zEaD&6>z_6dXQw$-kep>}-movgR_^$kV|G3JzCi!*Ubd)O#aeHpwX%#C<>*~jetk$V zY|D{``=f2Gpd2jM+ik3N<9ZIhY>Rc~#nA8u)x#&XKc-R&7M?h;8)>7qf>7cxQ=;-b zQ2YpA)+H+fSoVT3#F(!bx4=c-*f2pQk>5f&=@ET}eqhsv!nVC^-11;}2}?em@P3Vj zfixbYOOmqt(4UKA&m4(|tI}_D%^-RH>W5F%wm*ELZ+J8-PNySE3{Oqc6Iha#K0CUv zo^(EgUg$a|6ZE5IYUjwu@Akfmp3xfc$``dUc}!p=`YQ&)QUfxCD3|CT<%yYrD-*Tz zQDZT#!Cvz^d*fg-=moRMk%{QJv9YNlo{JPj8Gn-`zL1mn{J2Bc2gi=ZH5iHK5{U!e zs%qjU?nWIuLHz2U9QV1n-e1Bm7@;Ub88#k|?#XwZpJZFHTKyMj{k0G&q*&eYk`w%1 z-*vwB<}IxKZ1joT|Fv9u6Y-Giz76xWH!RUV@&mPN;R~XxZ?4CGZf=JQy>|V?(mRPY zC6P8FqtGw{bg9~p|ymve{Q7lbq zUS0c5O7)vus^6f0yat}H#Wk2$zu4f_W%6{twopF?=;1<*8TYeuQ#0(gx(C}Wq)A}H zO_#j3nhjh?w*Y{)fZ2Ay?j*!Tu*fLETd3XC6_|^ssAC3lwkygzRQ&hm=nJs8c`WU> zy(J>-3Ab11*Ogts+IR8WsOocC8O6!RP~;i$kjrmFqn!H0VgHhLCkKUdktdXX`zm5h z@!Js@h5pFwkPku>#rW2Yna}nNs^>0{_t|LCi16IsPneU}1GcOmVU8*9Q&J;Yqoat0 zO|(#Wta%@1+E(u)Ud0_N6-zUk_tAcn-shQ+4m!M-{_*lY&xmU<@AHJg-e)d$0v?xT zPVu`kDTl2{QS&Un1he=6CCsh#aImA3WA`~y< zS_5{#dvWtFSCDs^vuHqgmxoa<5f^4FO^J7-bKBqg?ksx*lpg0neG7ZLi71a zF<*smnTUOh;TP#yew8@hy7VhC?&Gz0&AgMK}f~YQ7EIdb9{Ne1%K3A zSP0us*_KX`yexxMVd0s-OR4?=m+J51AJ-+(s|lyS%_``#ekDG{Vfq}hT2DzSlbq*2 zj>JTsJvp=YMUl`b=D+%VHea%+PMO*J-DiWI$lFka_<64FTs|9Cz^PA0i0YAk##QWA zWQ6!H)UD#PBQgs8r_TYgW${98p zSo_>!2NOiI<`1KNHFQ&K`eh;rn)Ep6J;^WXW+w;4Q7626(}ZV5;&~khP8+S(3LT+c z37a?wi>-(77)~aHO`Ki8DF(~~kJekb`hBI`M!q`7Qk-Dj|AC>&I#t{{PChmnym<>! zI)X|4y!>|7es&xn9RaHPOchaFID&|WT#f)hFgXJCu>9%U(U-vyOb}~|BZ$agj$qw@ z6%UH!Ue>KuSQMvru;qybuItDZTx!vza0Sv-DY8i}4#qR2NsslJNxnXFdyAbRqQHmU z&mZuYH>>jcu+C6whVRZ8FZ{R_JGO8eCbhaOka*UY|)HjV}8pqlX5vG;vt`n znU`bK?KIe!aXF@?*;qtIp?~e{kOLr;an!K_fX@4Hvy5S~jQcF|&$Nu}KJ@7k3vb1o zAw4}(ulX{}S7PTylo*y?X!ap#VLOxKs&=A%M7^2B&ZKQiklL6?>`daX*t;#g6EcJ- z-$DO)Ez$g3T!T%dMra~6V4hbXGDc=brr2C>vN*P@SSrPHy^LQanZLow{Pnm~*ZJQ2 z;~I?2al?F1iD?er$=9*(!di2yg~?WQpmG1x_6K-U1q;&gn#ApXo zxWo83Qdz7&rCz;xYJAu3u}Q3Or+njqlhBEDh`e#B;r{063$*+R2qO`6?44UrPKB#{ zLT00qES4MbIYy5?NEy%|LYEPd(Bh_&IDCnuAziC74|8iu4`H6b@lZrLh$jL2Y!3Q2IG5C@kj*!c$%krM21qNUULKka=9c$`Ohe{kZ&cH%hBMNk6S#7QhU zmb|);#7P|44o+gl_(<#=$SY|j?MBind)O8s0YZU=Zc7V>f4EAar9esx6iPY5-9Twe zDYWG-U(MPOBD(#qR{K7IoPj0nwL?JEZ?DiL zz3x%f2E3kBmplW!QKmYWV@FUTbIz%)4ZSy&2nE}krNFJF4X~wMY=I$8^Pd;i1LD((Pm^APhr~QAk*q?Z6++&>=Fk=ujY$q4iZd>ivpZ zYa16c?A^hsM{U?6Hr8g?#bP=bcD1BU8Fn-Ms4ID9Upd3PR3$fPJ=3G=ao+e5d?tFsSW6{3@vAV5XL+*Uk zp+F*c+}nysL90!?tpwLV)KOboTM;F6Xe(+lP`$Pi`D%Fku;T6a_|sHd`Ho*g+RAW3 zTM6`Vy}RbdXDSo0*|P}y&S$3Nz`=qnTieWKK>lGQrIg;V6~FqnXE9K;>MgFY;na!U zqJ>Yuk82y~1nBwbUpM2Lq(H(vX(VyK3`V$<=dB>R^*uS%VKp(Xg?ej|nsrvlH>;`Me z*^;lIfU7p#L~Xdsp#ZgEE<{|o*FRgSHYvd&*4|#cC@C*8q$KAzv`AL0X?8$O_tASu zOVy!(jg~VNEx{WSqm;bPP?D6}&>Fguwd9e(bm`um{Cy2tMVRfUmnhO1vwT>U5hG}Qrq*)Jgm?1069 zZBj#)4PCw6z3G9TR0WHUc!o4a)U#^U(LNlG8ZAF?K8*P4N1XcPb~`TqbM zS95m@HRlHo1*kdS53wR_?)o-#cZ1$^dMG7 zf)9MxMJO~N<{YZkBijXN09K1ek<#SU8nZH?4m0~9~q2j$ml zFpNVOaa}zQUIuq&xo5T%)%$BvFZG@>KRcew%myTIp#@Gr7}l&Ht&l7i;^NDtJ$km=Q9D1hToioB zrF={Nl@3H`7veTj{c?u_wvJ#ROf@c1+#$q51reF3WM&Xp9v7vAUShVPSWhY6>M?<4 zVRJJ;0~*>~IdI_Z!hx6>A(lp6i>3xKBk!@ZO{=SdZ&O#5%S~Nxr{Mm`j)7HOd$i}$ z(?8IKA&c4`bog)ygZJ{NtWkoflqJDcxXG5}ivgjXlL*l8u2v@l==pMj7;v&z2o)`l zQv+`ea1qQm?QGG4Q8hv^b*}|Z!U;W0d&6si|7#H#XuIXNXWzE@oN-f)JE$6;w_{*c zjq9`|I|usuI|ndE(u>u`;LVk0GNoxM2Diti<}wIrVP+& z^LkCs-@S-BjJRuyDh~Fv0EMV`xZ1~E>)1-6#Z)KSb+Ht6@)1=n(5_PvkoCD?1RQ$p zW9260r&G%3+HtW;d5bTBbXRBhKx%shCkl-7wwmz_CQQWw$kO2**A8#rH5}`;hCOM5 z%%(y4tjG(Lmi!I}f^^?CN)BvuC}8WmF4G)H4-E7Ubf<>ZY3u&@4L#PjT?b=?-)abV zg<$BF!Y%pR9njbG9wxm99SYd!eTq+S_ds7~I<;eLd;;5Xyy0q$&bthqwvvWEDb$iL zIiRcQ%aFc;LjfCox8!C)%MnbmVFu0%!41I;!MXh7)0rY{77p3R$@ZmGYqn#m12*fn zZSA+>zTGx_^4A0uaCm)oVk*049t+i2E*2ZQ`O&FItPkCvElt8VhN}6ZVEv1P^Y?D=+#lPzccI->La5@gYF zqu8asj%6H{1Os2o3w<@ zbobpk*xNNQ*q7Ruotn(>*P5o4A4rR&|!e&H{$?UAHDjD z7!2`DQ`!ICUa=_qr^!l@H>DSj^o4lV)0Ntrox=2T31No#d~!=r4B@<*U5&CBJv^yT z2ws67*U)B;1pjie1lMP3v~>$(wYtY!cW~>CYTc2>W^3KjbgZpg76`F*V`@0sx+C8V zSKAac)_sXzLR$BXrFCDc=1y=k%UlUd>JS7>P2(0tj1O>;OX5&Lq9kftupGJ* zYwSbBz-#Q@^l&}!rrp$RIiWFE0&uj+I}Ql8OHrq0t!hEDKHm%o;xzk`YMjl-y1vo| zEx{Zc#(*7Hu>`&3a~(_2rNrvl!-WM%YG%m0>IpL*X?~xpG~b^fP240R zV)9YZ(mO5qIwGxy?3~cjQguRFD}_b_NWTDM?RbG3NqAKZII#wwUj$y~C0hfq*_ea+ zd3@~M^yn_?(R=JzTJ@+;=@C!A$c*J?a%J4DR^aV%ax9p4^D>sm4^fIxrLma;f_yR4 z{RmLeru$+$$N)=Ra)Z{N39Vt1kMq6_W?HPP^ea<`i1fsMtGB3CP1OZeTji5$L}=dm zSh5GKlPkVfaf^Se@ccn6Sl(&~SG&7Uj!M7c|DoOtz$@rmTYIj1gljcyaym z!4`oqV6jTWG!hBC15+*&(S&8oV0y!OmM!k`RPcexIjJOG1<ov$_t$}OI zO9NVT@Y+S-+`!x=@vW&gabOYn82zu)CKOg~ZKA|Baj_kXWHVO3j_9yVyj(p_i4V(y z`+?Q4EHX;64a;QAV;z>s777l_y4yRWYn3A3eBS0?0PcWE&*M*1!?OGQ5;811Vi}eV zXoo^3Vf}W(eNtF44%5NG8G|i|y6`Gao+N@{e!MHVpY^(U@vlV2=-|rQ>|Za1oQ72j zKAQbz)9f9{@mb$wIS5JBSYIuJ1FvIL{g>OR5!HVwd1@PYweN&s*Mjo`-1s|t4Ch+S zl{3c}J`>Xv>%Bip@Gc^INbrqYYSgT)--`B~5v%t}JCVBQRq!FQ%Nz+Y!g4JEuB%$y z#I!&$eb`QcRZN2_`n7MzbvIKGx+TdLy2AK)rC3rc0(o^Trq^%@fbV=zH0Err{KKBK zz@{Yt^*N{DVd0+xk$O_*8RW|M913t!rjhbqq_~1D0+p0ssqAG3fiiVZmM`UnSP?Z zVyh~q_Fxf5j*D-+WAd=tIcO+i_F;?1a}Z%KYZOb0wd6Y;P}Yj|Ow!oyP{5{GJ=*Ey zXhy6)*8gpSfz%5RmA0uR8>tdb5*VM3(Y@27n_let7(k;ENgqMSQ-zM0wImu^w^nS~ zWWb1K?XeTDt)+qw+_>0OEvHme8IbW$_3>)Fcx8MMc&+jo>njDuR6eschuqZv9;(K6 zI~G>;_u{_NQ$qgRw_r2-Y_5#`|7F;l*pTSS$}y^wT?9$}I5m(h!2i%|5b*p2o!~zE zFcw-p)`s32u%an1w(~-3imDY@CfOkM(M<^VQV93iD^3SbL zqp<2@ePs%|+0UiIe#&04DC}R8MRnY4FHRL@H%`niVIXt_OPFIE{~5tG$MIhXrr|E* z+yKV|)oG@m=`-E`7~%WMLFdqys=p53)kinJ{~G!J$TINVn^y|DDu)kWc~M74$5rUf z(YveDTV!N|)x_n>d`u3Pf_^OrZ$DZPoZ(h2=_}~iC=3isWsSi?OX6gOmVqZ`dW$>v zRXyPTxpfFLO|@PQA6qvuJ&$7AV8_tfJT6t;Uy!ed4{xQ2O63Kt1Wg`z?pdm2_9jRM zF$7kurLtn{RS}8YYNuCsoC-c9vNlYI5k%wz*s036@&Ebc|A-x*#qob=tA+n}FO~oI zB=esY`}`l;8sY!*?DT5>EBMXvUzKs={|m_f1v@@g{$G})|3lUW@CQp3z?%{TaLVDs zQnQx8iTEobg16a8)*?_fG$#U8#!UoOis1L{_*g}-ONqdnhs2(ziJ^(yk=#U`P%hxL+rorT2c)EzAs7pw-++w2OOS?Mm=H!t%SJ6s2!4x5>PvRcXi2HsA*lv) z21yv68DyDaj7INtnY{Hm7QyY|Mc`Id$_ zm@TS}baXy2a79(kQaCX%Hd;jx4?Xzb>^K`7~7uY+64QclFVc zk{GQED{_+tzPL6mQpm}nSMWhi(g;+2bQ9`}DAcv~ij##}zmDh#R0a-uNERP~1`k|R zQ$~>ip=|^z!#nE;R1W>%-gX@28l5tVeDm8+{swRdOxnetrbeJU{Sq<){SC_qbe}S~ z8uHX>^N|M~k?60xp-_wv)zb zymM3K>C|`;`vtSIlkBE_se|$G>wwRtCL#I#=eh_4)0k?pPayx@LVmb~Vz96A*RAtp z^}+y?mib{j@3gn3>VdvqXkm$|!k*Q~->tpAl=6P39p~isTEC8HXDW6<_b#!{v?qAT zrRq#0eVeT_m7dDlnWlMG3_H`lcxM{tq{d_uFT3+`@+8jx5Mn<*dbLcU~&M9%BbK=x*|rY=&go8zZ@xJlwYryNXP?fZWpS7Ty4A#Xod{ucg>E&$U#8vs4!8(rzM4Nxb&Rj@ zOGwA~yX+V(eRr2Pzne4=j(syIzEz?4M}CE_2UR}cmk<M;v0o{84TGLxkV_ zXhn*(^O_@j_Gp!I-^Mt<=?`fD zjDLMHqYXyt(HazQFwvu6yE-EJYilr~jn)R^#|&_$g}LHdHJHdZ(_j`zbxZ!JPrR#( zQ1(kmgL!M?1~cqC`kkF!J!yTaj$VX%u|MSR--$=W0M)TdDQvH2ohy2eWR)oF(yYkFBQNe&_smCIs#Qv~cg{{6VTO**x`q2XJ3BFZ9xA*&JC?)cK7`TP-j!Ikle6yq z=}ykP?*(yB#cgdWe{W)bSl4|A_U%aBn47B{OLeB>_@o(!>FK~vd%6R_`*1j9Z%5bc z#GNwbzZ>D*V(v)BgP;v1GbT|75V9^HJ(xyM5~9xF0X}tir7lnP_253fGEv%{8Q-&K zcymM)5NN8ECj)2Yq{a&3%bQcU!KlMqn9$qZ*YB0yg_Hhfnl6vC%%cqH?&#_0N!_-y zn9W|hZ~GmJ7+gvlLpi85s!;3r!qhC)i+3?$FBZt0now%F8CMeW%f#%2sA+FfwOyv# zh{|Cv1a1HZ&wJCIow(nn9$yoRLAb)%D8qB(#X_ktS%w<5rG~fg826jzaa~#N8N_qg zo0L!8?6r$dXh^!FH{IXW-_hUKC8}`@@@oyqFa)x@s~xg!5;9H@<1&+h^sxb4^sw6p z=&d^;l4OF&-2X@d+-vLZ=!B}LF*hHssjRpWuBm%zHGyM;J$-$VnmoRTYwBW6qQoK( z5bBG7czX0@c;GlrY~?2H&Aw~~(M;4r126|hsjKT&Z0Q@nlXrye+CG%JWpsFWba)im zI?~XMg(`e4>d|{aORk&yCNIkD=>o-8DSimLf`m3~UK193CD@$+Z}u z3m0RE5Vv%uw{$`~45R*zaRPRpUk)WOvEu#4R$1*S*Zo^$*jT*0ss9lq>e z*{5IBB33uv0Y=@JgG9v(bqCF$bbgV}(|8(rDTcK~O;GSYQgE|F0Xl8_6s3l+p*V7? zh1k38D9Hsw@=~B0aSA}(MCCx67UzRx#;ikuL}m;oGQ-6UiSpw4h8If!YFHugFdBBC zOta$sWW}#J6i8%6dz2Loy{ahruQB8|3CNHvFmUIU0|lDo50KoEZAt!YlnH-jn6RwX781I-XGfLiix4zy@}_;V6}sY8K8;;)Vq-_)Qt%89EC zCzcG_utlKa(k%xnHCrAcTds5{kjR$vqihL`}iEPajh>$nKZje-dsaz&{Bg1N z-je^C1J^X0|C((6M~4E5Y|i>&R>meDtw3*-$^U7X{1_o%SS)q7!hBR{5n+UI>PxIvhGxe0*S0^sUOOZ^57D~ zgGQwcF;W1hLp$K6_25$^=3<8eiNtJO($qtg-YYzMIe&jaBgiJ|ZOI4PwhC?G8GI}x zXgn*TFe4TR5AM8i+jaYrCQl3&GRwci&O|-SuW;flf13f4f7PWj1))B=&GP>(r8j7= zSZ4WS0sJjZPW(jWmG$HWLYf9;lvbeNh7t!Vw9WRE)(NL1RPCC*+2Ca(q-3rZ{4 z;sF>2KAU1_$=~b156!^Okb%!|C}0>^Um>TznBTtw=5xAjdiV7CvM5X@mekZ({cRqr-*Ii5!AABB^>iK2=oR-hZ@*6zOlZ%L zZLK z0tsF!0J=I3UuLWOf9BYCvOHuKIDu*`?6(1Uw<;|tO^Iu_KNbk1+| zGI4CUYSOfL3zD5SE!8fS& z`|TBrHFz2sDuSmN!`8XC5rcjHj86~Y1PX6qY=X$1%^H?lWcLYqG4t(-B!ZHb*x5;+ zBLaJo0Cp0X!l919)JHdgeUk#a*IuzzV3#N>jBboqzo}Cdu!wmgtB(;u4;wukB>w;^ z*77-70WdtN={LaeErMZ~=h$7tx-^GZv`4Q~d#9Z&-5o0U;OBXDQTOdugFHT_Zp{A{ zng1p`mR9Cpr&>$!Dzzhpoae=P=U?Cs@}eAuqy+*m??|SYlg%S^`V#hf?OYzXT13kQ z&KE`g3sj(%{O25asE2L;Os4;xLjiWoF%wl^u+ffLOrh?n;vIAJBtKcw$fbY0r-^;2 ztz(v6&)PBjd!@SCyV9X;O<2IM2P*2D;p#6HSAWi*raIkAdU;T?Y@Rn`GJ-fyF8Iz%?_`9W0eRY7!={{b;M{7D?_wflt22{IYHpoT6bJO-8P}}G1xQe#l84_PpdugQ} zE&jN+M-KqPZVTN9D8;mCJ5|Y0tb%#LYYe?WTogHiFa(=Ec4l6hEd={ByrTR}??&mk<$SyV%Xl-4p578`6}Dz5 zI&N)-*u#lt*vFI3v1wB~?u?YCJ0jnF-sUr;x+OpA6Yts#Z}&?`GhA^Zx}XNT-g;C> zWJ70f*I;*VXKG(|>In7~Pw{+@3U(70v6UAy6cZ}WQs<8JBI{JMHH(91=oU~d`7$87 z8ugP-1f%913ec#}hS(Dh2zs3zc`?w{H;9d>M=~=AaYRE*v5WM)aKE*nmc4U+!9WnkDtl5&u2;{ zeB$QCk~&Z@>zcUt0v07usa%>n2V_ zw~1eKw|-L%Mnl%n9DLZ0vvj&2K)z6?8;Ge5sv-IAeK!wt3wt+@{K_MChSQE`yg+af zSJ!chzkp-^k);d0NmA_ByP3UtNLoIN2jKHLfAX+c)|2q#+T)x?R-WKcfR;7J%KGAp zT2>L6HZ^g}8eKONGjuk~DrU=SS#i9Dwycqf*EG%u34JqMyd}0St5GnxqP)_GRBdV`GP0_XTC)T{m z-QdH12~nf76Vxbp`q`zbcMIIsjy~b&82ey!w|qu_9GhD_!b-fk-}NyFrn{&me1u4k zp?Gv4d5TxB*1;2jg#je}&aB8a(kg z3_Jg+pd5FCP`T#tiuS1pgWqqbQ-_@ue2BR{-~!Oi;ORJ@n+(@TyKW9J?yJd~)A;hb@7TGmHAle*mS>2L z1b7(0@ANQt8SP2J>+B@9YyCbWDiH%;jM~o^f%8d}seywjOa5I4J5KWiEZU0ps6kt| z-P&`;v?xnB6^C%7|mV77`QlElhqd5%Kzqvy*BG=uz@_(7zu* zqE5qULG*NsTct5JP^G2aE&!a|2UQoWLz_FzzQCF(3u>~c61gB8KJ_cSO_vtnC3!r2UNrYavTC~4zZ%{3F*$xLOY9Q6@vk5(1z zS{gbX&q`1f8o`EcUTJJjOHvCL}-b^(oL3$`dylGsX{o`5iGNr}kbte*`il0PDJ!k~9d zfj26r8#7a6<{Rx;SefZHAgptm%uQ9i3yQgD3*n}jAq1MnW_bA`0;m}tY%6O@u+K!! zu@ztN(4n2XZoIJ-KH!?<`3v1fm%R$M(X*9_3BxwRs`DMZ`)q>P5vh#OtuohXb~X0vl;p0taGDtStU z3VPlcCpLMUuy%Tz1^@6!8`sn)V4`(zee7FA3481;(Tzvd4smUyOkL>oCFWiP+*kFu zsqiHfYpb0Gs|w#33vkWC-^tD7=CVq52$xWtB_3uArp{)LDYQZ)h1Gs@tz{nz=QOH@9W@4uN!>P zh^=U!Fc1Wz*DL}fdU=$EUfx+bHMgbWy`oXq#U&Vn5h|`PL+$f zsVVFS)>Ady7z?%HD2kH2ZpZ$8`?u}iA=)J#Thv_C9?fd3eawdvRPc#nI^q;-nV$vQ z5&arbf=}4luhmjv0JXfB6IqQpYHD%H4LwMr?~JHmG-0O&zAWqq7bpy3(sT!eLNpm&oqZ{|z$o-!!1NZj_B4xZ&IS`XuSQyD31M{&`jlMJ{ zY{Fwi#gRGWnaPZ0XOJ;hT7$WRiI_oo^eUk_Ij`R%-gS3Y@H7 z7^u<=yWFL(>H)^*CbQH)uA8F{wr6Rr4M;Cd0Dc0O$%jV^};~iV5B9rO23MT zXx`2mZD3SgP_eTU$u!bR{th`P2yTMgOu3WJ5%!NwIzoQgW4M|| zMWDnz^jJAhQ-yn(*2n|`mPDn-akEHNw6#aODq5s<5ps+?B)cmNV~N=F=)G=Q~q)n>vctRLpu`CSq}g+M`wn8_~sf0*pwVa)Yzq z63)hKvEhT(npOIhsYBG}VY_H_vr~0}l1tr~YZS?`fKQK`YHguvea())Rkemx*kVIx zPyb-Lrw2v_XHONmMm4yWA2YXs(K`m|Snn0J#`$&EnU1!55nzpUYKtlkj;sd?(J5cX z6o9T)h86A6Rbo$)LQd1X3O>{z$>&!e-Q?Fv`K`5AY?WWTVRTo2f7**L7PE*Z&_Y0- zlesx8`b^Cf3bBRo`9V))pr}bezJe+b6wOzlP(m|Veh^wCU_hm?%ZWYpAQtbtD%t~3S4P%aQ!@;L`W zH03>{JnK-vM)~$#>^2#9hc(;K**VbP+0~zdj>wrSGO+R|BEXH5gwlDHq)fLY&xhvk zH7r>k_=Z;kx+VW?2hugKddaJ2Iux+*>foW1%oVA;p>t7Jq_$qioBepl8}_wd2fh~y z>M!2V7rZe+E)#vs?-ccrP+0O}7VLfUu#~?xr%I*yc6n?E37b>%xorDDM}Nm)6#sg+ zxBWhWuG&n3Cfs1@0zDCDX+fJFLij3tjRiDDe z@S9Ve9XLm5!uuWbe$}4P#0xW73X9}VtHr9h*t z!%v~Lt8We!6=wD014IPto#2((N*e5?5YA?60{a1C|0ah5>@MD*s5F;lF6;evLayP! zhYbgowHm`Nsi7tRQ3vX^um{Pm4>}Y`WLM}?BldVM*XTtxg13{ zslCBa>j=P*C}pws&H-ah;?*Q^mqUR>5-E?6&u#OiqtuQWYMX~;2p2Gz$8n%T6MhW| zKkQH-k?@PGH*Q2JT`-h76gH$uIjlN&z*LjAjieoQD3D0n@?Dy?W*~iR00-EZkNB$Z zb0y1rfz3*vos*+7F1nw?k~%?pgbx&=#Iw#%h*E7pR$O#%AtW`>CCYdLCNg z#0kiRd)CxPw+YDWDZPj770U!T>i0)38eZ6|Sc6@hw^gMe;o4n(P zdXvwyj~tsSTfeQl)76>v*qx4JQwJjFHAcP}q1~i}wwpgq?M}bmFCn|rM=ZP3yVRN! zy|;){dix5P+svtzGdQa;cO;wIcVGmQ#k2D`kgFJ*@I1^KRUmdT&`N zhl=`ihXPcj+d`}f@7!)R2kZBA4|MjWxjd^N3-b;g8s2|UZ`O}df7GL1*5%d%5?Hix zUfn#va6u>u8&j;$4q>28z^Q?^2EHuWd5)bS+El6<>#WsKAM3Zb;2!#?Q4$q<#nPl3 zNaA4e#Ne!I=i+8nz58`AlPX6}$WJ@kH_lDP{7r91*X+cdoXt<|#wN02?noweV{Wc; z471oXS*)StaI>$YGdhK-0@AJW)84rR5FE{>2h(W%SlH>+*_LYEcVOQRg-EpKMbC{@+L1GZela8#Zi-Pg}?3f4c-CUpHB_ZQ5o!E`L zIi)9=F?kr6V(jefPTz`(_IRrhcWoa^-7-2nJUZ;nG7dB|%Shv#Dfgz@XL4i3OmSgr zsXQ}}jU+uA46?>QJ2?Q-v>C3>wCXf)lptW#!@ zSp2()wdxX=wHm`0si7tR?k4!MpL}_zLjm@cZ&&;?6Pecpp+iYz|Ca9*BuHZGGNKG zO%Y!F%efY)F%G zE%|F5Fx8~pO46=!D3C~6&P>0w?rlqX9?kF;`Z_n^(&5?MGq@6V*c%P{-c2X^1RNNg z?(gdF=;@*_RewGwc{b;|!OF$auO%JJ9oc`K5E%|e;eeJvWWN!P3Po%M zbIKnHV7=MSUmd_wSk{U4tB-C0tPBPF8hgbOz={oz{)fc+KS@QvV8($At066?=eV*R^RtY4iqnknM^7);cuy|6f5Y+Sa( zrH@f~ zP6Vn3k_5V+B*ok|B}!JK3Qi~|-)7Dt`bz_`jV_a*eN{rANvfKxfR4{Rt{pBCS`$d`yHx7&%d}YrI{FeNb0~56R=E${ihXU+N8maHj__XBsmT?S0 zmCKRC8LhBgw^y)@UtOqi`vE+9*Zz{T5`2%b?3o_RI9a#Bp$em;ZrMTAy+VDsSzvQD zQPnMB#qAXXSnSyI?JU#Euiyj!23K&@!vQ=pI2?%J@QOv?aApF_eFdr|ef2ry)(rDh zsAt$Qvo^y^m9#TsIAF58AYDLVu3Rk4ppi{v=O&W%<-Mp`0y*$w-2nL1=cOzT40AwU zH=jF6?YkWc*qYCkyE79wZ+tv6HZ|aUO{NBEMqjeCPB$Y39~7+# z5bg^v^w!75O=V{̹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 ZQ8w%9_%UQ1$b}UO5t`ppwndVO{|`(JffWD% literal 0 HcmV?d00001 diff --git a/.doctrees/releases/release_notes/0_15.doctree b/.doctrees/releases/release_notes/0_15.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2b68ad116a2a40423a9e378049c78636196ec561 GIT binary patch literal 9054 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 literal 0 HcmV?d00001 diff --git a/.doctrees/releases/release_notes/0_15_3.doctree b/.doctrees/releases/release_notes/0_15_3.doctree new file mode 100644 index 0000000000000000000000000000000000000000..09810e5dd5b5b63d40a3a1bce15bbd8d86733af0 GIT binary patch literal 4155 zcmd^C-EJJW6}By{q}9(_R;paYGCV;MRC2w$k{u&~S`=*%xCPuOK%}O<325#NcS-Eb za7uEd6#}E}MF9)oU8k=QAWzdL={xj0GqbZlNfW!bHL%w3@bLWcJBR1|b@iXeySK`J zz7y#%cPh5MR7b)VeuD^!NL}%d;^=S1tK!hN4ZpHFH=!u}EpUWV#gP$d@l_#j`E@Ho zr*zuz%a&Y|>t7Xz*laoFVllVnJ70)ca4Ul2-pRAx(}Fm`xOyQbr1Crae=kZSAau{K zWgKcO}PI_>xCPjr)`KOOdzCWro(pR>( z`I)vZ(8It<5oAUWVv*S3N*Do!nKn*DB|mA6g28q0c`U|Oso(;Zromw?{b-Yvp9?b* z*fM&k5`C#cSu)g$=k*@-HZLSk$HBGEgP}I`*920;+4~g~_Wl2v*E4|kfwOLfvom=> zXqFEEVfhdl@;-h)#qR_Beg=5TBl&ZAUp@kYR;Ta;k{(wnD_j1vQy}^D<@p#ObhxZv zCOpk~+^_ze+9@4Z58Ng8S1*H5Ukad51d`ieAVeCd1lyM)>XmnM=-yr`u>BXf^nHKugLl`&>PPrU+&uim z8^MpPD68WF{JuOFqAV>TvVA0CJqjv7G@dpa{pRbmdJ}@fC&wqxx+hP%$4`!4mQ^AW z4rR^OIE2T0-<3bZ#P{yPOf&DD{7sW9AN`M}RfzrVRE~UA!}R!Vot&ADr}I7emt{a6 z$}ips$zLxYd}AcvEF$?v4*c7DAtNc|Z~>!R6!sFMJBt@N1Le}j@;$v73Q13m!r1}e zsV|~?+y$VX7JOPqo1JMJ!sjb1L3*XaN?Bp?M*sIx+_WL`5hdqs-wAU=Z3=7JlkF*` zYE%4%70#h(qTRaJ^j|}xQ-@-TvhXF3bMz-o0qmUlHkt|)XQxepMa0oaIG$u!Y*lI) zWRJ1jte3fovD$GuWYpHsF4VPPm$@$d-cV~t?a18bi`#yOdbu=D*aS~=Qh?I2=%z9j z>V$ei3z7FL3Z9jc!mgB)Y}#BwV|}3Rw$A)^)lRUOI;G;p9lt4g?54|>zb7UNv2xty zc1CSQVvvuZu0wT?9vH|KJOQQc3=ai4g@W5rX_h-C(ooYggz}ubVfW*%Rro$w++@NS zZ5Rqt6bpkmlc^yp^{v9JiZ6X#4dTF6X0U2k0E!61{J|Y|{Vj12CH7Vqp z@9^AdHY52v3W(Z?@+4yo>JZhEpa3|N@|XnPEhz|XYU%E0q|Ayu(rl6to_6upX)D()Q6l@-q=qOnH3w5QPHVhAO1NREM!F=1inike;6HM*c(LIh08I&N600$v*^I9D z#=l!yqf#pjc@EH0j3S_T3lmneMAq%v>(ucHlWHVm{D9HbSQEUrZNiOXf6i%?z{z*Y zb+u%%4tX8H2Y6JGCb-`!r*LCbd>BrT^9;t&;8zZ3b*|q4Bsx^-5LZ1-{yi!OHXkhV z?TTa|BIM&WbV-3$=f>}cvF2kY&=$oE-67@=nzdg06_H*Ny3i3hOn6jC5Dm0S`M__~ zg9eqfU5q6PP%I1{<5rk=a%0<{x@tLjFw0n47`@6Q<{JGnlxV^ WZ#868N4z8vRh~LY={3v;z5f7sha=|z literal 0 HcmV?d00001 diff --git a/.doctrees/releases/release_notes/0_16.doctree b/.doctrees/releases/release_notes/0_16.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f6fa5fbfbad7a480145269def9b0f792b04ad45b GIT binary patch literal 10829 zcmeHN?Qa}M8FyZ6$Cuc7DF&%Y=t9-TNpp90)P~dzEup2NL>P&tG^MK6bGx%QYwzuB zcV>MyDxx4&O3{2{LE;-A1W0^?{{R7hKqWpQ@qs@8_!Ia&vu}52lh|!YTPc;C-p=bY z&-|X(dEPzx)308dvj3R{UwWAiBh`te&sA=YQNw`8I{!(2@rU{M^CdHvvZ0b$>hau6 zVT32b$WM8kzmM$} zdW&z}c*e{m3|s14oDzq`5i?T~v}TS*Va)TjtjA1?X`P0>OyeL#_>s_8 zAkxfw5mO3{_&pu7LGkODpC!#lk9nIZ4`@tgW;N?mS1uOBqvAO2D9)O1bcG!7uG-vU zej09eeZIw`ZpyECZeO?w>vQGydE8a0hgN$^RsC>d397ow?#k6ps&I^RHxFk$9DNSw zV*QjQVuVY#4B$8tsH}-+Aff8_tr?HBV`v(xK-B_@TMOGA##8 z%lKla^(yv_b{v&(wuxDnu?h$ra26~4WE!+y@tjx=tF5_mBBF@MX)O(b8g6$kDdT=Y zXpalFg|U2_c^VrKaSF`8*eT$#_>da~HyUy10+sCom22W0VPBjF;KgH*rZ3>{ar`}j zzY74fxG0_yXT>ET?q~&OAn$S^++zCng~L-*gn%)S;ATs-4S5u`H*u|i8TUjSzMb(F zi+xAN9CP|Yo^y>%5(jNcFOQf5%x;oIC4Qg3y4YkVre%h1Q8$?RL?oI*=1BWk;s{t^!+JGUonpbF325(wLZ;LTH;?fVc9fc==vB^d;I5dUMfS`>^8P zZ21w^*yG%D@LQl?V)$p3&nBkLi}yjhR6IL5p{SaZSmwQXH|Ck6){`>3)-W@mJ4?gd zbPlHWtWA5PypJhdC`=+i;-r-kEr@MH;lhlOX3kk7@_o4}bC_m*?lCvzb?C|)P9(Lpy;{RK!nbW~ zRKnm1z{nS-I!)nw#HBw>O_SED(|S#1uzx$H9|0Gnc6k(ex-j@D>~%_;VA(Aeg+7B} z^aP9H>94kSI}!F?3!4hd4?jX#=bV06(?7@*dC3D-y6oiTc3NMTLj)4(<;s!wC^~|F zF-fsK*@W+05(5Lx;HHz6k9In(S2US&3KNtHd*pS4ew-vIoa<`RfW?*rwV(Zv#e3Xo z#jTIX;#vsBj{)yHqo!+r&im=Tq{95|TX0+Jd$yMh6j;fC?-*6S>nb$S>blxQREl8k zdU5mJ;(x1EGlh_dL0Zi9QHrgizC>@2JcOjQ`$Y(-FLKbdZ_FJiU`3t#gD{K%$2SKH~i_&cz?iaeN`N zi$X8d`5oI?T3YkiJphzjQ;1AbZqD8%69Ve7$B?CQeupgPFUmOeb96b@*ZRT74a8b( z&Bsp4Bx3hxOo^Afjp^qR^WT7E3dH3@2D4Bbh)FRf4FZv^1(f1>J(P|gLZB%lhaj>q zVJXEx*|Y!!*(|lgV0IBrXOUJN=N3LjgU=#gle8Pi5Qm5GvLO098%UtIQ%-&T#8Zv*!-JPVlN77=}XBr8B6qC z(u_=G5Jof!v3z};)fN$5&Z}C99|2QHKa>fr(b?2#Q*@;V0k+nR>)6%S*V}DBVC^wh zTpw84-f=7`&#$jLGAUFzB|ku>975>|DHSNReg`-VYoA3dZRn*GUciXkbe-$#cG30q ziWDD__d{Cdm#qHCglhcrGKm*g-E+3FmlMYhm8RE7WMpJ5(y;O^&7y zOP=*Q@En@QHF`|y+HtD8a^>3YR5uAb#n?^}ThqH!n$c6#F!W&O3oGp`!GO|BoGxFJ zki0hD12|^`sRy$iV0#X*9aF>Kt%3jCx=rAHD7IIk0>1;dZI@^cXXWLId&oj6iM@kEw9yD3eXTtpu|Mtb_@3I~)~k52(h#~LAri^HQ-r~FfLC{P>tCz%%I_>) zSzfu?US4TmS-FVRf^|GKqoML%!i__K*w*ZRW{zB z4X8w6(R2=W%!YU?B5&>?B1_^A`-$NbeuHE3cqIS6_|t(8BmOM@BK|rS zqhBcbZ{4u@@k?z`Jkhboo$U{j*sU^H%>;9zyp#5F8?_{j{8sHnjY%!RB(s!TK2m5& z`y`GcjQ^c}tE)`JC7OH4EO;3b%dvLr>XQ>yOHqY_G!EDFe2hw(({*W0kV-r($H>;q ze1}CD%1`P9(88LTD|5Os&GA7wW<;`s1RuwXZCtFqiO*K~nWYiF=C$-(s#>95Y&Q+M z(w*F#38d6iZ8Fk%^N^XRGMzXZxZ9Aw0iGkw0$#Jj#D&$R#GAsBXNwjj32lo@7T>LE zXRu>Ap)96ZBmUFlh#OHMOn&pQX$cn9pVQ_v-wwem#O0Z)22Go38+Bs41gn8^ zl$jo1W!kQioAVPr6H9FTo+M|XSht~J`n6jxx36LU@s5ef<`kVlfl&f1ig2df%tv@P z$WSB%j{EpNi~=h22%afq>bpLtTqCv#0gg2@gA8kcV}c{0@1kZQ2)A=FV-~0$$8DO- z;Sivj_p?Fb*1!W}ZA0y)VVRS*1>B7lT|eznG$o2>zI3+-1gTR<_esUw(U}${o_4oF z6>1C7ldc~s%6i}+C6%+4K!{7`1P((L6gHEKMd!<5E;1}d;nhOI6PJ>U_RW%LL8dhU zT(LD_+c=eHFdPm$$&MB>wp9=)xawl0>gHyVX3&Z>!_|2CjUYHEPD6Y9iRGukmW4F% zCbprLW}9=>Hk2t>osjFmZX@&{!WMIgQ6U1p7WvI%<~#s3aBJDB$#+#k*ZaQttfeN5 z6%to?GXidjM?Qdj9QAYcCj{@5+Cidw+Z8CDiKu`kM-iJOgr86YBzD}lGb$Ft%t!2Z z@##hq8LNVW=V4$WDToaVvBHg!{&6vTGfO}WmG#-uyHecW2S}tB#sRLnlK(TL5meS2 zA9somdfbOd?qDy$xyEXXUL@J3OAl9(i~Km%&{+D8@OX=$gy&a{3O>>$;0ChASW~{ZS&qFg-3+fMgIHuA*w9isw z@q20GJ&5eakMNJ!7TLxN^mQHoWM+;=QKsA01=?|IV*8FA0;~2IYNv{M$3-TjowPx< z8JU?My>YwaJksG7+k~y6g`~0?R~&7$r5K0OL)`nIC!-ofcIam&8tc(>V=K;8yV^-- z#@2^|#S1lnwK%y}*@Myu=!|;U0c1g=JwNebMNXelou4yhUZxSfYn(mtE zp6%&wbyx4~5Q(E8NI(U3N;&}o*rx10WFPU}6eQ|nP9V}0FY$Xa6n*pSxSPfGLt8lOiR@6BOdnIC zOP_LY#yjhspdP)K_4NfW>dS?6eM7j3zrNtg4H+yX^0H%hJv$a%nc7_$E~JTrw>-wQ z{9%U?s9LyWFSe2tqd0ftaMs4ar!g$iO+@UCuxRZM4o^(n@%+>(nz8UxgqGirqeO{N zS$#i{sft2r`JtseX`!%+lA#rKQ0KCkWc`vk0FFg(lBEYqaPJ@CB~9i17CU8wI~#UYh7zuSEGRl8+Xs&e)sa# zB}-WSD3RQ;z_OKA>WDBzEwElD0$ez6z1?ap;17s+-EJ4u+YU8j^K=QD+OUauZo@9x zpy@MhwBqy|ckKpvAgnBvoh&H1gTV`Br4a_5dQk=v+mcv~5vqup&)iL=?Bf;l1B0Sj zqG~%QgXRI#3_7ryh8A|lkQ%~V2WTNwZ#4pc9eflaW|!Gh(1ZDuAu&Ilr`aBWR@Zcj z>Yyo%45!dBNF9cXCf@-GU6ELzUPUoY8@LyRz9Rxq(ai#UlbdlOQ*OD%8}x!VtG~HV z>oKo3_5L-9J=!#Tbj3RdNq~KIT=rv6q<%WGt@P~J&0u8EtbS?C<-Wx;;2$Pd)`a;3FC`}hZY6=t7({KI-ycoE**Z4v6Dthe;s-lb)(r@*2t@pFA`KjbEFgd4?1 zn9x&7B#`T)%>U*-324L5azEsxcCU zdYL!4+?!lm2U1*4N&f@65z2}(H4m%-P=P-Hoj@u}4MK=<619OSNafD~bf$jToij*l zjNYfpeh4fE00L0Lh|7rxl57%?39Y$AI#D<3U@DEY4l@YQEwVf*HiiS~cRj@uJVd>ZG9O=gqJZdVZi*(XEOccO42kdbIaB-< zobSWv3z!pr=wtwfpb1U8#s&aBPkH756JbEraPZP2FS=R|=*Osx#eZ)L#QS==1@v^a zoJ;+BtXSW5m#jE{Z#TtRqPKgD-j*JJXVjhQ|4%Es4EWTR%~uZk#K?}UY2bnX>7EC^ z_FvFh2iy4jqhzZwmoh?99Z7Dluc!3Y476h14L zR1Z6=@DA>U7z%u;0o;N|f+v-RLm_ydNTs%i)(3t7&G^26b+RrJpBlKlxVTto{?viD z4+TfPNbnOuU#CWX-w{yHu5~97aFmcbgsa5BfvXXEF|I3kORkZhtM7+!qQOJ5oGE|- zCAgR6I1Wl(ijubrAIZD5kK}ygZBMCqX<;EK>1>5kEo>0&3uz3MOf)xD*b%MR?ZB_p zYScp-8F&hJ5djXU?NL-fo;wNs?V3RetK)CtA%tTK_<`^o5FALyc;?G)PF!l`%+R z_fgegAj7T#V0#CR56H`fDP{Ol`74?0g_Ep+k-i!hjS;1_W6YIG1pYmSCrgcyFU?LO ziLMBba~26Zoi=~F8w4wzHXr@mMOW^9sGE-@y(;g{j{ubKRx4uhQH9_(-%SYN zm^R7r-$d*MLc0m`uoT)&mf20GlG#laH6bW!ncXaQzGy;#HDN=RGMh>kGNU=-*B)^J zeRQ6>Hlo#ZO_pidb*V4vzDcBP>6>iST3?LxO(n<3tMlVLN&m>6Brjz55wUhwe|w*` z#E6*L_ojEqirPFoF`}KyEeW4&p|EPA*i!lT-L^?-qA`2cELbWB+U_CRuEzHV?Ai-B z*rxLKhKgs$qT(Y*CnmmU0)NsXthEK^)WO&)t_YNz5bOma0~~|b?egNKH(-k^;5`bp z0@xKnMGhs7Ly!~$1cVI&#(Zd^as^4Z)woT5rBF&jl5pYGz?0h>a4a*;Vu~??R@5fP zitO!l6@{bF4e%OB8-dME$9H`8C$<{P2t2cU3va1A zCLG9;I%Z!Vd#X4roEmpT$459AG_eB^v2~8N5>hQ3fD|evEG#g>K|MATi=|*~TRMp7 zTMp`yPY`US+NlgW&C24aSwaM1B07kf5`cuY0zUBgsFN|g2cCxV0{Ljuhhr3jr9eI6 z+87{$w*b*Vp$Xh;MClTD4(}qh7DUmyV4qt$?6;!;KFBPI6QBKpLxY{++3XSr#&vBW z&`Cs++UgQR45OXlQe!|1kQ_q^+h1jbQyM#{)?6wA>IQc~IR)2=Gux?RA8#=n^j6Ft z;q1_*k-`Uy=sVe1hPzI=3J}ru(X`lze5^d45aKScupsJk=oy+4M$NdvwHkLo49#i5 zz7gLH85&4gsjWbwn->kNz{2+1YTCUA8&ApF!s9u6zvO?FIDnn^bz3D-$L~iQzT?>j z7}#6%zKtb`#_Ur4+tip{v8^!mSmjXw{qLV~VNh%8XMZRV*q?7PZECo}-eeYfC0HSE zGQFr7z)iDA z2XDen^%$6ChpVY~8iw(1x~cRweeJOz5_ybPOq$Ssp`^;CMB1`;DSfBR656kRzOl{c z^i_lEwt12as;eDJ?31cc-H7ApYv)b<-fI<~;%XQF9VR*d7bifFJ zwE-)pjelTxlY^#!bbyg~X$3YsYK1nJsLu-p_Biy(g^tn^M4 z1Q9G7lfz9>7&K#bGRne+k(?s`1QZ0Y0f$irdSFFwQs4}<)~reUC}OpF0oK5jS;?g-aFo_{O+48Fyw2wvi6P@P%Q>-Mh^umAiWvjz{u3wi;%7s?=EhFVE*Vd6?u- z{D6mz+{9pkeQ8*za#C3Wsl=Y2T4qT{77ua0ZC49aw&JK zY@$e-V#z_QPuFoW6B$Ayf`d=Cnf|NPC6X;T^v3~a4zC0WVopOS41_x@I(SEs8-Q+O zNI{jDm>p*tQG|!(8kH$yE+gkJ5#TYL5J5_b+ySMp!;mlrR$)mn#TXNSzJvjWLy|Zn zNU@~S@}Vql${$Z~8dt$6fX#sP^=(pc%{kzEb?)_N$oEPrzr4#LAK8_=7Q@E-A*K!1 zLLHYlUha@eYM2#Ux5-lDFS*{XQiBdDmhI2#4~;2OZkK)DaW!>6>yD~1^@diHeY!Az0 zZwm2u(9&`{ed99n8`AzjB#9p-^Nn`^lUL#5^5z>?Z(sGp zcqShhvZ22fd7<^bbl0Pe`Nq3}i^PUs7wbNf4CWg>rxVXNz9mK2yo$VJS6bimkrsy( zZM^JspoC#O;Pm(Gim74D4sQ?9{7sRn`Npc~XEIn^MBYp4C-kfFhPX4r4cj(IRA56&;o{~a7uN}<9qi>GSKF;@X zbJWtm_n+7n5PkpgaM9U%foC@2X(!ukrY&QcCFZ1SzP!SpQ>|#ODv6;%Z6!8kWR=KfL?{m&Aj0w4O4Kuv{OSqgY~(Y|Y}- zG>q8FV^+I{R#$P9gytE_2`O{PLbH}|hJWd989iC3KGeUK5K6HwP%yH&c%^yi(#5;H zu8g z{zV_1TyDEbrDqWlXM5+yv@u##A46?5jBzp55o!llRmqMy%boX{sH|}=wu7h{4g~lr z|AfC6H&Q(6==k0Tct~@7wqi^1qrTn=V?u|3b76j;*5X+jhdIIj8^t_R6iA=ix_GLs zwf)1GwejGcK(VG$1f#cd<<}L68$6-SOU=cRSa$iE@8qg3x}fH!(ae$BuS3^XJ=nUe zuI2LPsO}*>gCpg1hk#vO*LAXdW3KJe$IH|Bxqgwn&wLYE2QFkf@`kHPJ`e$rXuUjV zR`hgzlLsE)?I90zKh9V53DXTc;^8_T8^vRm1b8~7BF82SNMCW!*(B&nhPgh|i6TYU zbB%nwaY&z{XfT{F_9i)9aIc4+p_6kl?vd)Vu0WG7n>S!7zcCr06xqboXHQ`tqX=RdI z$@MGSzHDovH=x}%W7@50nEdXY_nKGG|JD!ND(llUh7^qQz@h+S%Jr!LvN=Nx033Jm zd>Hr5>6c70Gcs{W8loG7wZVrelL$Z@@m(9&S0NOhdsBLbl5_3)l|JlaQJr$Ler#6@ z4~*p(9LGnFH8uDGzu|*G>~pJL#i`8P$lmPJk~$5+5~b1}t;wszQT7J%w{aO6RkSJJ z0oPGrAe63vSI5c?;mzrj7z`y3u*VSJP8G$FUyMWny0dO3mN70aE3Ppj@}LW1ELU_* zYg=1%ge%1f)WKlTiigN>2wPFor5oxNP%>S}^(@t(7O94fpbWVa!PVn<-~7tr>tM@F z(s8zRLvQMC&XwKZ{t0M2U#bpwS%vg;;UKBNq$#1g;yb9|m

fvK>N=>Kl?^0FF-@e-7Zy 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�$ma6y6`^mzcx3{ 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%0DO> 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%0D3zpX63*+?Gl{(v^?pc@t9>z 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 z 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
_Yuz~enI|R> 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 z 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ෟ}kwA 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
4K(qtwCFJ8_ri?mKZ6JoXw5wN<~ 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 literal 0 HcmV?d00001 diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..eed453c7 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +re2c.org diff --git a/_downloads/04_parsing_integers_blocks.i.re b/_downloads/04_parsing_integers_blocks.i.re new file mode 100644 index 00000000..20bf9de9 --- /dev/null +++ b/_downloads/04_parsing_integers_blocks.i.re @@ -0,0 +1,78 @@ +#include +#include + +template +static bool adddgt(unsigned long &u, unsigned int d) +{ + if (u > (ULONG_MAX - d) / base) { + return false; + } + u = u * base + d; + return true; +} + +static bool lex(const char *s, unsigned long &u) +{ + const char *YYMARKER; + const char *YYCTXMARKER; + u = 0; + + /*!re2c + re2c:yyfill:enable = 0; + re2c:define:YYCTYPE = char; + re2c:define:YYCURSOR = s; + + end = "\x00"; + */ + + /*!re2c + * { return false; } + '0b' / [01] { goto bin; } + "0" { goto oct; } + "" / [1-9] { goto dec; } + '0x' / [0-9a-fA-F] { goto hex; } + */ + +bin: + /*!re2c + * { return false; } + end { return true; } + [01] { if (!adddgt<2>(u, s[-1] - '0')) return false; goto bin; } + */ + +oct: + /*!re2c + * { return false; } + end { return true; } + [0-7] { if (!adddgt<8>(u, s[-1] - '0')) return false; goto oct; } + */ + +dec: + /*!re2c + * { return false; } + end { return true; } + [0-9] { if (!adddgt<10>(u, s[-1] - '0')) return false; goto dec; } + */ + +hex: + /*!re2c + * { return false; } + end { return true; } + [0-9] { if (!adddgt<16>(u, s[-1] - '0')) return false; goto hex; } + [a-f] { if (!adddgt<16>(u, s[-1] - 'a' + 10)) return false; goto hex; } + [A-F] { if (!adddgt<16>(u, s[-1] - 'A' + 10)) return false; goto hex; } + */ +} + +int main(int argc, char **argv) +{ + for (int i = 1; i < argc; ++i) { + unsigned long u; + if (lex(argv[i], u)) { + printf("%lu\n", u); + } else { + printf("error\n"); + } + } + return 0; +} diff --git a/_downloads/05_parsing_integers_conditions.ci.re b/_downloads/05_parsing_integers_conditions.ci.re new file mode 100644 index 00000000..9fbc0fd6 --- /dev/null +++ b/_downloads/05_parsing_integers_conditions.ci.re @@ -0,0 +1,59 @@ +#include +#include + +template +static bool adddgt(unsigned long &u, unsigned int d) +{ + if (u > (ULONG_MAX - d) / base) { + return false; + } + u = u * base + d; + return true; +} + +/*!types:re2c*/ + +static bool lex(const char *s, unsigned long &u) +{ + const char *YYMARKER; + const char *YYCTXMARKER; + int c = yycinit; + u = 0; + /*!re2c + re2c:yyfill:enable = 0; + re2c:define:YYCTYPE = char; + re2c:define:YYCURSOR = s; + re2c:define:YYGETCONDITION = "c"; + re2c:define:YYGETCONDITION:naked = 1; + re2c:define:YYSETCONDITION = "c = @@;"; + re2c:define:YYSETCONDITION:naked = 1; + + <*> * { return false; } + + '0b' / [01] :=> bin + "0" :=> oct + "" / [1-9] :=> dec + '0x' / [0-9a-fA-F] :=> hex + + "\x00" { return true; } + [01] { if (!adddgt<2>(u, s[-1] - '0')) return false; goto yyc_bin; } + [0-7] { if (!adddgt<8>(u, s[-1] - '0')) return false; goto yyc_oct; } + [0-9] { if (!adddgt<10>(u, s[-1] - '0')) return false; goto yyc_dec; } + [0-9] { if (!adddgt<16>(u, s[-1] - '0')) return false; goto yyc_hex; } + [a-f] { if (!adddgt<16>(u, s[-1] - 'a' + 10)) return false; goto yyc_hex; } + [A-F] { if (!adddgt<16>(u, s[-1] - 'A' + 10)) return false; goto yyc_hex; } + */ +} + +int main(int argc, char **argv) +{ + for (int i = 1; i < argc; ++i) { + unsigned long u; + if (lex(argv[i], u)) { + printf("%lu\n", u); + } else { + printf("error\n"); + } + } + return 0; +} diff --git a/_downloads/06_braille.cr8i.re b/_downloads/06_braille.cr8i.re new file mode 100644 index 00000000..5fa429eb --- /dev/null +++ b/_downloads/06_braille.cr8i.re @@ -0,0 +1,229 @@ +#include +#include + +template +struct input_t { + size_t len; + char_t *str; + + input_t(FILE *f) : len(0), str(NULL) + { + fseek(f, 0, SEEK_END); + len = ftell(f) / sizeof(char_t); + fseek(f, 0, SEEK_SET); + str = new char_t[len + 1]; + fread(str, sizeof(char_t), len, f); + str[len] = 0; + } + ~input_t() + { + delete[]str; + } +}; + +typedef input_t iutf8_t; +typedef input_t iutf16_t; +typedef input_t iutf32_t; +typedef input_t iucs2_t; + +struct out_t { + bool caps; + + out_t() : caps(false) {} + void prt(char c) + { + printf("%c", caps ? toupper(c) : c); + caps = false; + } + void err() + { + printf(" ... error\n"); + } +}; + +/*!rules:re2c + re2c:yyfill:enable = 0; + + // letters + l = "\u2830"; + la = "\u2801"; lb = "\u2803"; lc = "\u2809"; ld = "\u2819"; le = "\u2811"; + lf = "\u280b"; lg = "\u281b"; lh = "\u2813"; li = "\u280a"; lj = "\u281a"; + lk = "\u2805"; ll = "\u2807"; lm = "\u280d"; ln = "\u281d"; lo = "\u2815"; + lp = "\u280f"; lq = "\u281f"; lr = "\u2817"; ls = "\u280e"; lt = "\u281e"; + lu = "\u2825"; lv = "\u2827"; lw = "\u283a"; lx = "\u282d"; ly = "\u283d"; + lz = "\u2835"; + + // numbers + n = "\u283c"; + n1 = "\u2801"; n2 = "\u2803"; n3 = "\u2809"; n4 = "\u2819"; n5 = "\u2811"; + n6 = "\u280b"; n7 = "\u281b"; n8 = "\u2813"; n9 = "\u280a"; n0 = "\u281a"; + + // punctuation + pcom = "\u2802"; psem = "\u2806"; pcln = "\u2812"; + pdot = "\u2832"; pxcl = "\u2816"; pqst = "\u2826"; + past = "\u2814"; pdsh = "\u2804"; phyp = "\u2824"; + + // formatting + fcp = "\u2820"; fsp = "\u2800" | "\x20"; fnl = "\n" | "\n\r"; + + <*> * { out.err(); return; } + <*> "\x00" { if (YYCURSOR != in.str + in.len + 1) out.err(); return; } + + <*> l :=> l + la { out.prt('a'); goto yyc_l; } + lb { out.prt('b'); goto yyc_l; } + lc { out.prt('c'); goto yyc_l; } + ld { out.prt('d'); goto yyc_l; } + le { out.prt('e'); goto yyc_l; } + lf { out.prt('f'); goto yyc_l; } + lg { out.prt('g'); goto yyc_l; } + lh { out.prt('h'); goto yyc_l; } + li { out.prt('i'); goto yyc_l; } + lj { out.prt('j'); goto yyc_l; } + lk { out.prt('k'); goto yyc_l; } + ll { out.prt('l'); goto yyc_l; } + lm { out.prt('m'); goto yyc_l; } + ln { out.prt('n'); goto yyc_l; } + lo { out.prt('o'); goto yyc_l; } + lp { out.prt('p'); goto yyc_l; } + lq { out.prt('q'); goto yyc_l; } + lr { out.prt('r'); goto yyc_l; } + ls { out.prt('s'); goto yyc_l; } + lt { out.prt('t'); goto yyc_l; } + lu { out.prt('u'); goto yyc_l; } + lv { out.prt('v'); goto yyc_l; } + lw { out.prt('w'); goto yyc_l; } + lx { out.prt('x'); goto yyc_l; } + ly { out.prt('y'); goto yyc_l; } + lz { out.prt('z'); goto yyc_l; } + + <*> n :=> n + n1 { out.prt('1'); goto yyc_n; } + n2 { out.prt('2'); goto yyc_n; } + n3 { out.prt('3'); goto yyc_n; } + n4 { out.prt('4'); goto yyc_n; } + n5 { out.prt('5'); goto yyc_n; } + n6 { out.prt('6'); goto yyc_n; } + n7 { out.prt('7'); goto yyc_n; } + n8 { out.prt('8'); goto yyc_n; } + n9 { out.prt('9'); goto yyc_n; } + n0 { out.prt('0'); goto yyc_n; } + + <*> pcom { out.prt(','); goto yyc_l; } + <*> psem { out.prt(';'); goto yyc_l; } + <*> pcln { out.prt(':'); goto yyc_l; } + <*> pdot { out.prt('.'); goto yyc_l; } + <*> pxcl { out.prt('!'); goto yyc_l; } + <*> pqst { out.prt('?'); goto yyc_l; } + <*> past { out.prt('*'); goto yyc_l; } + <*> pdsh { out.prt('\''); goto yyc_l; } + <*> phyp { out.prt('-'); goto yyc_l; } + + <*> fcp { out.caps = true; goto yyc_l; } + <*> fsp { out.prt(' '); goto yyc_l; } + <*> fnl { out.prt('\n'); goto yyc_l; } +*/ + +/*!types:re2c*/ + +static void lex_utf8(const iutf8_t & in) +{ + const unsigned char *YYCURSOR = in.str; + const unsigned char *YYMARKER; + int c = yycl; + out_t out; + /*!use:re2c + re2c:define:YYCTYPE = "unsigned char"; + re2c:define:YYGETCONDITION = "c"; + re2c:define:YYGETCONDITION:naked = 1; + re2c:define:YYSETCONDITION = "c = @@;"; + re2c:define:YYSETCONDITION:naked = 1; + */ +} + +static void lex_utf16(const iutf16_t & in) +{ + const unsigned short *YYCURSOR = in.str; + int c = yycl; + out_t out; + /*!use:re2c + re2c:define:YYCTYPE = "unsigned int"; + re2c:define:YYGETCONDITION = "c"; + re2c:define:YYGETCONDITION:naked = 1; + re2c:define:YYSETCONDITION = "c = @@;"; + re2c:define:YYSETCONDITION:naked = 1; + re2c:flags:8 = 0; + re2c:flags:x = 1; + */ +} + +static void lex_utf32(const iutf32_t & in) +{ + const unsigned int *YYCURSOR = in.str; + int c = yycl; + out_t out; + /*!use:re2c + re2c:define:YYCTYPE = "unsigned int"; + re2c:define:YYGETCONDITION = "c"; + re2c:define:YYGETCONDITION:naked = 1; + re2c:define:YYSETCONDITION = "c = @@;"; + re2c:define:YYSETCONDITION:naked = 1; + re2c:flags:x = 0; + re2c:flags:u = 1; + */ +} + +static void lex_ucs2(const iucs2_t & in) +{ + const unsigned short *YYCURSOR = in.str; + int c = yycl; + out_t out; + /*!use:re2c + re2c:define:YYCTYPE = "unsigned int"; + re2c:define:YYGETCONDITION = "c"; + re2c:define:YYGETCONDITION:naked = 1; + re2c:define:YYSETCONDITION = "c = @@;"; + re2c:define:YYSETCONDITION:naked = 1; + re2c:flags:u = 0; + re2c:flags:w = 1; + */ +} + +int main() +{ + FILE *f; + + f = fopen("06_braille.utf8.txt", "rb"); + if (f) { + printf("utf8:\n"); + iutf8_t in(f); + lex_utf8(in); + fclose(f); + } + + f = fopen("06_braille.utf16.txt", "rb"); + if (f) { + printf("utf16:\n"); + iutf16_t in(f); + lex_utf16(in); + fclose(f); + } + + f = fopen("06_braille.utf32.txt", "rb"); + if (f) { + printf("utf32:\n"); + iutf32_t in(f); + lex_utf32(in); + fclose(f); + } + + f = fopen("06_braille.ucs2.txt", "rb"); + if (f) { + printf("ucs2:\n"); + iucs2_t in(f); + lex_ucs2(in); + fclose(f); + } + + return 0; +} diff --git a/_downloads/06_braille.utf8.txt b/_downloads/06_braille.utf8.txt new file mode 100644 index 00000000..5ede72d1 --- /dev/null +++ b/_downloads/06_braille.utf8.txt @@ -0,0 +1,4 @@ +⠠⠁⠇⠇⠀⠓⠥⠍⠁⠝⠀⠃⠑⠊⠝⠛⠎⠀⠁⠗⠑⠀⠃⠕⠗⠝⠀⠋⠗⠑⠑⠀⠁⠝⠙⠀⠑⠟⠥⠁⠇⠀⠊⠝⠀⠙⠊⠛⠝⠊⠞⠽⠀⠁⠝⠙⠀⠗⠊⠛⠓⠞⠎⠲⠀ +⠠⠞⠓⠑⠽⠀⠁⠗⠑⠀⠑⠝⠙⠕⠺⠑⠙⠀⠺⠊⠞⠓⠀⠗⠑⠁⠎⠕⠝⠀⠁⠝⠙⠀⠉⠕⠝⠎⠉⠊⠑⠝⠉⠑⠀⠁⠝⠙⠀⠎⠓⠕⠥⠇⠙⠀⠁⠉⠞⠀⠞⠕⠺⠁⠗⠙⠎⠀ +⠕⠝⠑⠀⠁⠝⠕⠞⠓⠑⠗⠀⠊⠝⠀⠁⠀⠎⠏⠊⠗⠊⠞⠀⠕⠋⠀⠃⠗⠕⠞⠓⠑⠗⠓⠕⠕⠙⠲ + diff --git a/_downloads/07_cxx98.i.re b/_downloads/07_cxx98.i.re new file mode 100644 index 00000000..ac2e352f --- /dev/null +++ b/_downloads/07_cxx98.i.re @@ -0,0 +1,374 @@ +#include +#include +#include +#include + +/*!max:re2c*/ +static const size_t SIZE = 64 * 1024; + +struct input_t { + unsigned char buf[SIZE + YYMAXFILL]; + unsigned char *lim; + unsigned char *cur; + unsigned char *mar; + unsigned char *tok; + bool eof; + + FILE *const file; + + input_t(FILE *f) + : buf() + , lim(buf + SIZE) + , cur(lim) + , mar(lim) + , tok(lim) + , eof(false) + , file(f) + {} + bool fill(size_t need) + { + if (eof) { + return false; + } + const size_t free = tok - buf; + if (free < need) { + return false; + } + memmove(buf, tok, lim - tok); + lim -= free; + cur -= free; + mar -= free; + tok -= free; + lim += fread(lim, 1, free, file); + if (lim < buf + SIZE) { + eof = true; + memset(lim, 0, YYMAXFILL); + lim += YYMAXFILL; + } + return true; + } +}; + +/*!re2c re2c:define:YYCTYPE = "unsigned char"; */ + +template +static bool adddgt(unsigned long &u, unsigned long d) +{ + if (u > (ULONG_MAX - d) / base) { + return false; + } + u = u * base + d; + return true; +} + +static bool lex_oct(const unsigned char *s, const unsigned char *e, unsigned long &u) +{ + for (u = 0, ++s; s < e; ++s) { + if (!adddgt<8>(u, *s - 0x30u)) { + return false; + } + } + return true; +} + +static bool lex_dec(const unsigned char *s, const unsigned char *e, unsigned long &u) +{ + for (u = 0; s < e; ++s) { + if (!adddgt<10>(u, *s - 0x30u)) { + return false; + } + } + return true; +} + +static bool lex_hex(const unsigned char *s, const unsigned char *e, unsigned long &u) +{ + for (u = 0, s += 2; s < e;) { + /*!re2c + re2c:yyfill:enable = 0; + re2c:define:YYCURSOR = s; + * { if (!adddgt<16>(u, s[-1] - 0x30u)) return false; continue; } + [a-f] { if (!adddgt<16>(u, s[-1] - 0x61u + 10)) return false; continue; } + [A-F] { if (!adddgt<16>(u, s[-1] - 0x41u + 10)) return false; continue; } + */ + } + return true; +} + +static bool lex_str(input_t &in, unsigned char q) +{ + printf("%c", q); + for (unsigned long u = q;; printf("\\x%lx", u)) { + in.tok = in.cur; + /*!re2c + re2c:define:YYCURSOR = in.cur; + re2c:define:YYMARKER = in.mar; + re2c:define:YYLIMIT = in.lim; + re2c:yyfill:enable = 1; + re2c:define:YYFILL = "if (!in.fill(@@)) return false;"; + re2c:define:YYFILL:naked = 1; + * { return false; } + [^\n\\] { u = in.tok[0]; if (u == q) break; continue; } + "\\a" { u = '\a'; continue; } + "\\b" { u = '\b'; continue; } + "\\f" { u = '\f'; continue; } + "\\n" { u = '\n'; continue; } + "\\r" { u = '\r'; continue; } + "\\t" { u = '\t'; continue; } + "\\v" { u = '\v'; continue; } + "\\\\" { u = '\\'; continue; } + "\\'" { u = '\''; continue; } + "\\\"" { u = '"'; continue; } + "\\?" { u = '?'; continue; } + "\\" [0-7]{1,3} { lex_oct(in.tok, in.cur, u); continue; } + "\\u" [0-9a-fA-F]{4} { lex_hex(in.tok, in.cur, u); continue; } + "\\U" [0-9a-fA-F]{8} { lex_hex(in.tok, in.cur, u); continue; } + "\\x" [0-9a-fA-F]+ { if (!lex_hex(in.tok, in.cur, u)) return false; continue; } + */ + } + printf("%c", q); + return true; +} + +static bool lex_flt(const unsigned char *s) +{ + double d = 0; + double x = 1; + int e = 0; + /*!re2c + re2c:yyfill:enable = 0; + re2c:define:YYCURSOR = s; + */ +mant_int: + /*!re2c + "." { goto mant_frac; } + [eE] { goto exp_sign; } + * { d = (d * 10) + (s[-1] - '0'); goto mant_int; } + */ +mant_frac: + /*!re2c + "" { goto sfx; } + [eE] { goto exp_sign; } + [0-9] { d += (x /= 10) * (s[-1] - '0'); goto mant_frac; } + */ +exp_sign: + /*!re2c + "+"? { x = 1e+1; goto exp; } + "-" { x = 1e-1; goto exp; } + */ +exp: + /*!re2c + "" { for (; e > 0; --e) d *= x; goto sfx; } + [0-9] { e = (e * 10) + (s[-1] - '0'); goto exp; } + */ +sfx: + /*!re2c + * { goto end; } + [fF] { if (d > FLT_MAX) return false; goto end; } + */ +end: + printf("%g", d); + return true; +} + +static bool lex(input_t &in) +{ + unsigned long u; + for (;;) { + in.tok = in.cur; + /*!re2c + re2c:define:YYCURSOR = in.cur; + re2c:define:YYMARKER = in.mar; + re2c:define:YYLIMIT = in.lim; + re2c:yyfill:enable = 1; + re2c:define:YYFILL = "if (!in.fill(@@)) return false;"; + re2c:define:YYFILL:naked = 1; + + end = "\x00"; + + * { return false; } + end { return in.lim - in.tok == YYMAXFILL; } + + // macros + macro = ("#" | "%:") ([^\n] | "\\\n")* "\n"; + macro { continue; } + + // whitespaces + mcm = "/*" ([^*] | ("*" [^/]))* "*""/"; + scm = "//" [^\n]* "\n"; + wsp = ([ \t\v\n\r] | scm | mcm)+; + wsp { printf(" "); continue; } + + // character and string literals + "L"? ['"] { if (!lex_str(in, in.cur[-1])) return false; continue; } + "L"? "''" { return false; } + + // integer literals + oct = "0" [0-7]*; + dec = [1-9][0-9]*; + hex = '0x' [0-9a-fA-F]+; + oct { if (!lex_oct(in.tok, in.cur, u)) return false; goto sfx; } + dec { if (!lex_dec(in.tok, in.cur, u)) return false; goto sfx; } + hex { if (!lex_hex(in.tok, in.cur, u)) return false; goto sfx; } + + // floating literals + frc = [0-9]* "." [0-9]+ | [0-9]+ "."; + exp = 'e' [+-]? [0-9]+; + flt = (frc exp? | [0-9]+ exp) [fFlL]?; + flt { if (lex_flt(in.tok)) continue; return false; } + + // boolean literals + "false" { printf("false"); continue; } + "true" { printf("true"); continue; } + + // keywords + "asm" { printf("ASM"); continue; } + "auto" { printf("AUTO"); continue; } + "bool" { printf("BOOL"); continue; } + "break" { printf("BREAK"); continue; } + "case" { printf("CASE"); continue; } + "catch" { printf("CATCH"); continue; } + "char" { printf("CHAR"); continue; } + "class" { printf("CLASS"); continue; } + "const" { printf("CONST"); continue; } + "const_cast" { printf("CONST_CAST"); continue; } + "continue" { printf("CONTINUE"); continue; } + "default" { printf("DEFAULT"); continue; } + "do" { printf("DO"); continue; } + "double" { printf("DOUBLE"); continue; } + "dynamic_cast" { printf("DYNAMIC_CAST"); continue; } + "else" { printf("ELSE"); continue; } + "enum" { printf("ENUM"); continue; } + "explicit" { printf("EXPLICIT"); continue; } + "export" { printf("EXPORT"); continue; } + "extern" { printf("EXTERN"); continue; } + "float" { printf("FLOAT"); continue; } + "for" { printf("FOR"); continue; } + "friend" { printf("FRIEND"); continue; } + "goto" { printf("GOTO"); continue; } + "if" { printf("IF"); continue; } + "inline" { printf("INLINE"); continue; } + "int" { printf("INT"); continue; } + "long" { printf("LONG"); continue; } + "mutable" { printf("MUTABLE"); continue; } + "namespace" { printf("NAMESPACE"); continue; } + "operator" { printf("OPERATOR"); continue; } + "private" { printf("PRIVATE"); continue; } + "protected" { printf("PROTECTED"); continue; } + "public" { printf("PUBLIC"); continue; } + "register" { printf("REGISTER"); continue; } + "reinterpret_cast" { printf("REINTERPRET_CAST"); continue; } + "return" { printf("RETURN"); continue; } + "short" { printf("SHORT"); continue; } + "signed" { printf("SIGNED"); continue; } + "sizeof" { printf("SIZEOF"); continue; } + "static" { printf("STATIC"); continue; } + "static_cast" { printf("STATIC_CAST"); continue; } + "struct" { printf("STRUCT"); continue; } + "switch" { printf("SWITCH"); continue; } + "template" { printf("TEMPLATE"); continue; } + "this" { printf("THIS"); continue; } + "throw" { printf("THROW"); continue; } + "try" { printf("TRY"); continue; } + "typedef" { printf("TYPEDEF"); continue; } + "typeid" { printf("TYPEID"); continue; } + "typename" { printf("TYPENAME"); continue; } + "union" { printf("UNION"); continue; } + "unsigned" { printf("UNSIGNED"); continue; } + "using" { printf("USING"); continue; } + "virtual" { printf("VIRTUAL"); continue; } + "void" { printf("VOID"); continue; } + "volatile" { printf("VOLATILE"); continue; } + "wchar_t" { printf("WCHAR_T"); continue; } + "while" { printf("WHILE"); continue; } + + // operators and punctuation (including preprocessor) + ("{" | "<%") { printf("{"); continue; } + ("}" | "%>") { printf("}"); continue; } + ("[" | "<:") { printf("["); continue; } + ("]" | ":>") { printf("]"); continue; } + "(" { printf("("); continue; } + ")" { printf(")"); continue; } + ";" { printf(";"); continue; } + ":" { printf(":"); continue; } + "..." { printf("..."); continue; } + "new" { printf("new"); continue; } + "delete" { printf("delete"); continue; } + "?" { printf("?"); continue; } + "::" { printf("::"); continue; } + "." { printf("."); continue; } + ".*" { printf("."); continue; } + "+" { printf("+"); continue; } + "-" { printf("-"); continue; } + "*" { printf("*"); continue; } + "/" { printf("/"); continue; } + "%" { printf("%%"); continue; } + ("^" | "xor") { printf("^"); continue; } + ("&" | "bitand") { printf("&"); continue; } + ("|" | "bitor") { printf("|"); continue; } + ("~" | "compl") { printf("~"); continue; } + ("!" | "not") { printf("!"); continue; } + "=" { printf("="); continue; } + "<" { printf("<"); continue; } + ">" { printf(">"); continue; } + "+=" { printf("+="); continue; } + "-=" { printf("-="); continue; } + "*=" { printf("*="); continue; } + "/=" { printf("/="); continue; } + "%=" { printf("%%="); continue; } + ("^=" | "xor_eq") { printf("^="); continue; } + ("&=" | "and_eq") { printf("&="); continue; } + ("|=" | "or_eq") { printf("|="); continue; } + "<<" { printf("<<"); continue; } + ">>" { printf(">>"); continue; } + ">>=" { printf(">>="); continue; } + "<<=" { printf("<<="); continue; } + "==" { printf("=="); continue; } + ("!=" | "not_eq") { printf("!="); continue; } + "<=" { printf("<="); continue; } + ">=" { printf(">="); continue; } + ("&&" | "and") { printf("&&"); continue; } + ("||" | "or") { printf("||"); continue; } + "++" { printf("++"); continue; } + "--" { printf("--"); continue; } + "," { printf(","); continue; } + "->*" { printf("->*"); continue; } + "->" { printf("->"); continue; } + + // identifiers + id = [a-zA-Z_][a-zA-Z_0-9]*; + id { printf("%.*s", in.cur - in.tok, in.tok); continue; } + */ +sfx: + /*!re2c + "" { if (u > INT_MAX) return false; printf("%d", static_cast(u)); continue; } + 'u' { if (u > UINT_MAX) return false; printf("%u", static_cast(u)); continue; } + 'l' { if (u > LONG_MAX) return false; printf("%ld", static_cast(u)); continue; } + 'ul' | 'lu' { printf("%lu", u); continue; } + */ + } +} + +int main(int argc, char **argv) +{ + if (argc != 2) { + printf ("usage: ./example \n"); + return 1; + } + + FILE *file = fopen(argv[1], "rb"); + if (!file) { + printf("error: cannot open file: %s\n", argv[1]); + return 1; + } + + input_t in(file); + if (!lex(in)) { + printf("... error\n"); + } else { + printf("\n"); + } + + fclose(file); + return 0; +} diff --git a/_downloads/09_etc_passwd.i--tags.re b/_downloads/09_etc_passwd.i--tags.re new file mode 100644 index 00000000..7210f4e8 --- /dev/null +++ b/_downloads/09_etc_passwd.i--tags.re @@ -0,0 +1,74 @@ +#include +#include + +/*!max:re2c*/ + +static int lex(const char *YYCURSOR) +{ + const char *YYMARKER, *n, *p, *u, *g, *f, *h, *c; + /*!stags:re2c format = 'const char *@@;'; */ +loop: + /*!re2c + re2c:define:YYCTYPE = char; + re2c:yyfill:enable = 0; + + end = "\x00"; + eol = "\n"; + sep = [:]; + char = [^] \ (end | eol | sep); + user = char+; + pass = char*; + uid = [0-9]+; + gid = [0-9]+; + info = char*; + home = "/" char*; + cmd = "/" char*; + + * { printf("error\n"); return 1; } + end { return 0; } + + @n user sep + @p pass sep + @u uid sep + @g gid sep + @f info sep + @h home sep + @c cmd eol { + printf("user: %.*s\n", (int)(p - n) - 1, n); + printf("password: %.*s\n", (int)(u - p) - 1, p); + printf("UID: %.*s\n", (int)(g - u) - 1, u); + printf("GID: %.*s\n", (int)(f - g) - 1, g); + printf("info: %.*s\n", (int)(h - f) - 1, f); + printf("home: %.*s\n", (int)(c - h) - 1, h); + printf("command: %.*s\n", (int)(YYCURSOR - c - 1), c); + printf("\n"); + goto loop; + } + */ +} + +int main(int argc, char **argv) +{ + if (argc < 2) { + fprintf(stderr, "no input files\n"); + return 1; + } + + FILE *file = fopen(argv[1], "r"); + + fseek(file, 0, SEEK_END); + const size_t fsize = (size_t) ftell(file); + fseek(file, 0, SEEK_SET); + + char *buffer = (char*) malloc(fsize + 1); + + fread(buffer, 1, fsize, file); + buffer[fsize] = 0; + + const int status = lex(buffer); + + fclose(file); + free(buffer); + + return status; +} diff --git a/_downloads/09_etc_passwd.txt b/_downloads/09_etc_passwd.txt new file mode 100644 index 00000000..999b2744 --- /dev/null +++ b/_downloads/09_etc_passwd.txt @@ -0,0 +1,3 @@ +root:x:0:0:root:/root:/bin/bash +bin:x:1:1:bin:/bin:/bin/false +portage:x:250:250:portage:/var/tmp/portage:/bin/false diff --git a/_downloads/10_uri.dat.txt b/_downloads/10_uri.dat.txt new file mode 100644 index 00000000..397f3825 --- /dev/null +++ b/_downloads/10_uri.dat.txt @@ -0,0 +1,4 @@ +http://user:pass@127.0.0.1:8000/path/data?key=val&key2=val2#frag1 +rsync://rsync.kernel.org/pub/ +http://re2c.org/manual/syntax/syntax.html#rules +ssh://[2001:db8:85a3::8a2e:370:7334]/ diff --git a/_downloads/10_uri_rfc3986.i--tags.re b/_downloads/10_uri_rfc3986.i--tags.re new file mode 100644 index 00000000..c1438139 --- /dev/null +++ b/_downloads/10_uri_rfc3986.i--tags.re @@ -0,0 +1,169 @@ +#include +#include +#include + +/*!max:re2c*/ +static const size_t SIZE = 4096; + +typedef struct { + FILE *file; + char *buf; + char *lim; + char *cur; + char *mar; + char *tok; + /*!stags:re2c format = "char *@@;\n"; */ + int eof; +} input_t; + +static void init_input(input_t *in, const char *fname) +{ + in->file = fopen(fname, "r"); + in->buf = (char*) malloc(SIZE + YYMAXFILL); + in->lim = in->buf + SIZE; + in->cur = in->lim; + in->mar = in->lim; + in->tok = in->lim; + /*!stags:re2c format = "in->@@ = 0;\n"; */ + in->eof = 0; +} + +static void free_input(input_t *in) +{ + free(in->buf); + fclose(in->file); +} + +static int fill(input_t *in, size_t need) +{ + size_t free; + if (in->eof) return 1; + + free = in->tok - in->buf; + if (free < need) return 2; + + memmove(in->buf, in->tok, in->lim - in->tok); + in->lim -= free; + in->cur -= free; + in->mar -= free; + in->tok -= free; + /*!stags:re2c format = "if (in->@@) in->@@ -= free;\n"; */ + in->lim += fread(in->lim, 1, free, in->file); + if (in->lim < in->buf + SIZE) { + in->eof = 1; + memset(in->lim, 0, YYMAXFILL); + in->lim += YYMAXFILL; + } + return 0; +} + +static int lex(input_t *in, long *count) +{ + const char + *s1, *u1, *h1, *h3, *h5, *r1, *p1, *p3, *q1, *f1, + *s2, *u2, *h2, *h4, *h6, *r2, *p2, *p4, *q2, *f2; + long c; + + c = 0; +loop: + in->tok = in->cur; +/*!re2c + + re2c:define:YYCTYPE = char; + re2c:define:YYCURSOR = in->cur; + re2c:define:YYMARKER = in->mar; + re2c:define:YYLIMIT = in->lim; + re2c:define:YYFILL = "if (fill(in, @@) != 0) return 2;"; + re2c:define:YYFILL:naked = 1; + re2c:tags:expression = "in->@@"; + + end = "\x00"; + eol = "\n"; + + alpha = [a-zA-Z]; + digit = [0-9]; + hexdigit = [0-9a-fA-F]; + unreserved = alpha | digit | [-._~]; + pct_encoded = "%" hexdigit{2}; + sub_delims = [!$&'()*+,;=]; + pchar = unreserved | pct_encoded | sub_delims | [:@]; + + scheme = @s1 alpha (alpha | digit | [-+.])* @s2; + userinfo = @u1 (unreserved | pct_encoded | sub_delims | ":")* @u2; + dec_octet + = digit + | [\x31-\x39] digit + | "1" digit{2} + | "2" [\x30-\x34] digit + | "25" [\x30-\x35]; + ipv4address = dec_octet "." dec_octet "." dec_octet "." dec_octet; + h16 = hexdigit{1,4}; + ls32 = h16 ":" h16 | ipv4address; + ipv6address + = (h16 ":"){6} ls32 + | "::" (h16 ":"){5} ls32 + | ( h16)? "::" (h16 ":"){4} ls32 + | ((h16 ":"){0,1} h16)? "::" (h16 ":"){3} ls32 + | ((h16 ":"){0,2} h16)? "::" (h16 ":"){2} ls32 + | ((h16 ":"){0,3} h16)? "::" h16 ":" ls32 + | ((h16 ":"){0,4} h16)? "::" ls32 + | ((h16 ":"){0,5} h16)? "::" h16 + | ((h16 ":"){0,6} h16)? "::"; + ipvfuture = "v" hexdigit+ "." (unreserved | sub_delims | ":" )+; + ip_literal = "[" ( ipv6address | ipvfuture ) "]"; + reg_name = (unreserved | pct_encoded | sub_delims)*; + host + = @h1 ip_literal @h2 + | @h3 ipv4address @h4 + | @h5 reg_name @h6; + port = @r1 digit* @r2; + authority = (userinfo "@")? host (":" port)?; + path_abempty = ("/" pchar*)*; + path_absolute = "/" (pchar+ ("/" pchar*)*)?; + path_rootless = pchar+ ("/" pchar*)*; + path_empty = ""; + hier_part + = "//" authority @p1 path_abempty @p2 + | @p3 (path_absolute | path_rootless | path_empty) @p4; + query = @q1 (pchar | [/?])* @q2; + fragment = @f1 (pchar | [/?])* @f2; + uri = scheme ":" hier_part ("?" query)? ("#" fragment)?; + + * { return 1; } + end { *count = c; return 0; } + eol { goto loop; } + uri { + ++c; + printf("URI %ld:\n", c); + printf(" scheme: %.*s\n", (int)(s2 - s1), s1); + if (u1) printf(" userinfo: %.*s\n", (int)(u2 - u1), u1); + if (h1) printf(" host: %.*s (IP literal)\n", (int)(h2 - h1), h1); + if (h3) printf(" host: %.*s (IPv4)\n", (int)(h4 - h3), h3); + if (h5) printf(" host: %.*s (name)\n", (int)(h6 - h5), h5); + if (r1) printf(" port: %.*s\n", (int)(r2 - r1), r1); + if (p1) printf(" path: %.*s\n", (int)(p2 - p1), p1); + if (p3) printf(" path: %.*s\n", (int)(p4 - p3), p3); + if (q1) printf(" query: %.*s\n", (int)(q2 - q1), q1); + if (f1) printf(" fragment: %.*s\n", (int)(f2 - f1), f1); + printf("\n"); + goto loop; + } +*/ +} + +int main(int argc, char **argv) +{ + long count; + input_t in; + init_input(&in, argv[1]); + + switch (lex(&in, &count)) { + case 0: fprintf(stderr, "ok, parsed %ld URIs\n", count); break; + case 1: fprintf(stderr, "syntax error\n"); break; + case 2: fprintf(stderr, "yyfill error\n"); break; + default: fprintf(stderr, "panic\n"); break; + } + + free_input(&in); + return 0; +} diff --git a/_downloads/11_http.dat.txt b/_downloads/11_http.dat.txt new file mode 100644 index 00000000..316d75a8 --- /dev/null +++ b/_downloads/11_http.dat.txt @@ -0,0 +1,14 @@ +GET /index.html HTTP/1.1 +Host: www.example.com +User-Agent: Mozilla/5.0 +Accept: text/xml,application/xml,application/xhtml+xml,text/html*/* +Accept-Language: en-us +Accept-Charset: ISO-8859-1,utf-8 +Connection: keep-alive + +HTTP/1.1 200 OK +Date: Thu, 24 Jul 2008 17:36:27 GMT +Server: Apache-Coyote/1.1 +Content-Type: text/html;charset=UTF-8 +Content-Length: 1846 + diff --git a/_downloads/11_http_rfc7230.i--tags.re b/_downloads/11_http_rfc7230.i--tags.re new file mode 100644 index 00000000..ed14b91a --- /dev/null +++ b/_downloads/11_http_rfc7230.i--tags.re @@ -0,0 +1,296 @@ +#include +#include +#include + +typedef struct mtag_t { + struct mtag_t *pred; + long dist; +} mtag_t; + +typedef struct mtagpool_t { + mtag_t *head; + mtag_t *next; + mtag_t *last; +} mtagpool_t; + +typedef struct { + FILE *file; + char *buf; + char *lim; + char *cur; + char *mar; + char *tok; + /*!stags:re2c format = "char *@@;\n"; */ + /*!mtags:re2c format = "mtag_t *@@;\n"; */ + mtagpool_t mtp; + int eof; +} input_t; + +static void mtagpool_clear(mtagpool_t *mtp, input_t *in) +{ + mtp->next = mtp->head; + /*!mtags:re2c format = "in->@@ = 0;\n"; */ +} + +static void mtagpool_init(mtagpool_t *mtp) +{ + static const unsigned size = 1024 * 1024; + mtp->head = (mtag_t*)malloc(size * sizeof(mtag_t)); + mtp->next = mtp->head; + mtp->last = mtp->head + size; +} + +static void mtagpool_free(mtagpool_t *mtp) +{ + free(mtp->head); + mtp->head = mtp->next = mtp->last = NULL; +} + +static mtag_t *mtagpool_next(mtagpool_t *mtp) +{ + unsigned size; + mtag_t *head; + + if (mtp->next < mtp->last) return mtp->next++; + + size = mtp->last - mtp->head; + head = (mtag_t*)malloc(2 * size * sizeof(mtag_t)); + memcpy(head, mtp->head, size * sizeof(mtag_t)); + free(mtp->head); + mtp->head = head; + mtp->next = head + size; + mtp->last = head + size * 2; + return mtp->next++; +} + +static void mtag(mtag_t **pmt, const char *b, const char *t, mtagpool_t *mtp) +{ + mtag_t *mt = mtagpool_next(mtp); + mt->pred = *pmt; + mt->dist = t - b; + *pmt = mt; +} + +/*!max:re2c*/ +static const size_t SIZE = 4096; + +static void init_input(input_t *in, const char *fname) +{ + in->file = fopen(fname, "r"); + in->buf = (char*) malloc(SIZE + YYMAXFILL); + in->lim = in->buf + SIZE; + in->cur = in->lim; + in->mar = in->lim; + in->tok = in->lim; + /*!stags:re2c format = "in->@@ = 0;\n"; */ + /*!mtags:re2c format = "in->@@ = 0;\n"; */ + mtagpool_init(&in->mtp); + in->eof = 0; +} + +static void free_input(input_t *in) +{ + fclose(in->file); + free(in->buf); + mtagpool_free(&in->mtp); +} + +static int fill(input_t *in, size_t need) +{ + size_t free; + if (in->eof) return 1; + + free = in->tok - in->buf; + if (free < need) return 2; + + memmove(in->buf, in->tok, in->lim - in->tok); + in->lim -= free; + in->cur -= free; + in->mar -= free; + in->tok -= free; + /*!stags:re2c format = "if (in->@@) in->@@ -= free;\n"; */ + in->lim += fread(in->lim, 1, free, in->file); + if (in->lim < in->buf + SIZE) { + in->eof = 1; + memset(in->lim, 0, YYMAXFILL); + in->lim += YYMAXFILL; + } + return 0; +} + +static void print_headers(const char *tok, + const mtag_t *h1, const mtag_t *h2, + const mtag_t *h3, const mtag_t *h4, + const mtag_t *h5) +{ + if (!h1) return; + print_headers(tok, h1->pred, h2->pred, h3->pred, h4->pred, h5->pred); + printf("%.*s%.*s%.*s%.*s\n", + (int)(h2->dist - h1->dist), tok + h1->dist, + (int)(h3->dist - h2->dist), tok + h2->dist, + (int)(h4->dist - h3->dist), tok + h3->dist, + (int)(h5->dist - h4->dist), tok + h4->dist); +} + +#define YYCTYPE char +#define YYCURSOR in->cur +#define YYMARKER in->mar +#define YYLIMIT in->lim +#define YYMTAGP(mt) mtag(&mt, in->tok, in->cur, &in->mtp) +#define YYMTAGN(mt) mtag(&mt, in->tok, NULL, &in->mtp) +#define YYFILL(n) if (fill(in, n) != 0) return 2; + +static int lex(input_t *in, long *count) +{ + const char *of, *au, *at, + *hs1, *hs3, *m1, *p1, *p3, *p5, *q1, *q3, + *hs2, *hs4, *m2, *p2, *p4, *p6, *q2, *q4, + *r1, *r3, *rp1, *s1, *st1, *u1, *u3, *v1, *v3, + *r2, *r4, *rp2, *s2, *st2, *u2, *u4, *v2, *v4; + mtag_t *h1, *h2, *h3, *h4, *h5; + long c; + + c = 0;; + of = au = at + = hs1 = hs3 = m1 = p1 = p3 = p5 = q1 = q3 + = hs2 = hs4 = m2 = p2 = p4 = p6 = q2 = q4 + = r1 = r3 = rp1 = s1 = st1 = u1 = u3 = v1 = v3 + = r2 = r4 = rp2 = s2 = st2 = u2 = u4 = v2 = v4 = NULL; +loop: + in->tok = in->cur; +/*!re2c + re2c:tags:expression = "in->@@"; + + end = "\x00"; + eol = "\n"; + + crlf = eol; + sp = " "; + htab = "\t"; + ows = (sp | htab)*; + digit = [0-9]; + alpha = [a-zA-Z]; + hexdigit = [0-9a-fA-F]; + unreserved = alpha | digit | [-._~]; + pct_encoded = "%" hexdigit{2}; + sub_delims = [!$&'()*+,;=]; + pchar = unreserved | pct_encoded | sub_delims | [:@]; + vchar = [\x1f-\x7e]; + tchar = [-!#$%&'*+.^_`|~] | digit | alpha; + + obs_fold = crlf (sp | htab)+; + obs_text = [\x80-\xff]; + field_name = tchar+; + field_vchar = vchar | obs_text; + field_content = field_vchar ((sp | htab)+ field_vchar)?; + field_value = (field_content | obs_fold)*; + header_field = #h1 field_name #h2 ":" ows #h3 field_value #h4 ows #h5; + scheme = alpha (alpha | digit | [-+.])*; + userinfo = (unreserved | pct_encoded | sub_delims | ":")*; + dec_octet + = digit + | [\x31-\x39] digit + | "1" digit{2} + | "2" [\x30-\x34] digit + | "25" [\x30-\x35]; + ipv4address = dec_octet "." dec_octet "." dec_octet "." dec_octet; + h16 = hexdigit{1,4}; + ls32 = h16 ":" h16 | ipv4address; + ipv6address + = (h16 ":"){6} ls32 + | "::" (h16 ":"){5} ls32 + | ( h16)? "::" (h16 ":"){4} ls32 + | ((h16 ":"){0,1} h16)? "::" (h16 ":"){3} ls32 + | ((h16 ":"){0,2} h16)? "::" (h16 ":"){2} ls32 + | ((h16 ":"){0,3} h16)? "::" h16 ":" ls32 + | ((h16 ":"){0,4} h16)? "::" ls32 + | ((h16 ":"){0,5} h16)? "::" h16 + | ((h16 ":"){0,6} h16)? "::"; + ipvfuture = "v" hexdigit+ "." (unreserved | sub_delims | ":" )+; + ip_literal = "[" ( ipv6address | ipvfuture ) "]"; + reg_name = (unreserved | pct_encoded | sub_delims)*; + path_abempty = ("/" pchar*)*; + path_absolute = "/" (pchar+ ("/" pchar*)*)?; + path_rootless = pchar+ ("/" pchar*)*; + path_empty = ""; + host = ip_literal | ipv4address | reg_name; + port = digit*; + query = (pchar | [/?])*; + absolute_uri = @s1 scheme @s2 ":" + ( "//" (@u1 userinfo @u2 "@")? @hs1 host @hs2 (":" @r1 port @r2)? @p1 path_abempty @p2 + | @p3 (path_absolute | path_rootless | path_empty) @p4 + ) ("?" @q1 query @q2)?; + authority = (@u3 userinfo @u4 "@")? @hs3 host @hs4 (":" @r3 port @r4)?; + origin_form = @p5 path_abempty @p6 ("?" @q3 query @q4)?; + http_name = "HTTP"; + http_version = http_name "/" digit "." digit; + request_target + = @at authority + | @au absolute_uri + | @of origin_form + | "*"; + method = tchar+; + request_line = @m1 method @m2 sp request_target sp @v3 http_version @v4 crlf; + status_code = digit{3}; + reason_phrase = (htab | sp | vchar | obs_text)*; + status_line = @v1 http_version @v2 sp @st1 status_code @st2 sp @rp1 reason_phrase @rp2 crlf; + start_line = (request_line | status_line); + message_head = start_line (header_field crlf)* crlf; + + * { return 1; } + end { *count = c; return 0; } + eol { goto loop; } + message_head { + ++c; + if (st1) { + printf("%.*s %.*s %.*s\n", + (int)(v2 - v1), v1, + (int)(st2 - st1), st1, + (int)(rp2 - rp1), rp1); + } else if (m1) { + printf("%.*s ", (int)(m2 - m1), m1); + if (of) { + printf("%.*s", (int)(p6 - p5), p5); + if (q3) printf("?%.*s", (int)(q4 - q3), q3); + } else if (au) { + printf("%.*s:", (int)(s2 - s1), s1); + if (p1) printf("//"); + if (u1) printf("%.*s@", (int)(u2 - u1), u1); + printf("%.*s", (int)(hs2 - hs1), hs1); + if (r1) printf(":%.*s", (int)(r2 - r1), r1); + if (p1) printf("%.*s", (int)(p2 - p1), p1); + if (p3) printf("%.*s", (int)(p4 - p3), p3); + if (q1) printf("?%.*s", (int)(q2 - q1), q1); + } else if (at) { + if (u3) printf("%.*s@", (int)(u4 - u3), u3); + printf("%.*s", (int)(hs4 - hs3), hs3); + if (r3) printf(":%.*s", (int)(r4 - r3), r3); + } else { + printf("*"); + } + printf(" %.*s\n", (int)(v4 - v3), v3); + } + print_headers(in->tok, h1, h2, h3, h4, h5); + printf("\n"); + mtagpool_clear(&in->mtp, in); + goto loop; + } +*/ +} + +int main(int argc, char **argv) +{ + long count; + input_t in; + init_input(&in, argv[1]); + + switch (lex(&in, &count)) { + case 0: fprintf(stderr, "ok, parsed %ld HTTPs\n", count); break; + case 1: fprintf(stderr, "syntax error\n"); break; + case 2: fprintf(stderr, "yyfill error\n"); break; + default: fprintf(stderr, "panic!\n"); break; + } + + free_input(&in); + return 0; +} diff --git a/_downloads/13_records.dat.txt b/_downloads/13_records.dat.txt new file mode 100644 index 00000000..c74d177d --- /dev/null +++ b/_downloads/13_records.dat.txt @@ -0,0 +1,12 @@ +h4cker1970 { + name = Jon Smith + country = UK + channels = freenode/#gentoo-dev; freenode/#gentoo-arch; freenode/#alpha; +} + +mitek { + name = Mitrofan Rygoravich + country = Belarus + channels = bynets/#haskell; freenode/#unix; +} + diff --git a/_downloads/13_records.i--tags.re b/_downloads/13_records.i--tags.re new file mode 100644 index 00000000..7b41ff5b --- /dev/null +++ b/_downloads/13_records.i--tags.re @@ -0,0 +1,98 @@ +#include +#include +#include + +struct mtag_t +{ + int pred; + const char *tag; +}; + +typedef std::vector mtagpool_t; + +static void mtag(int *pt, const char *t, mtagpool_t *tp) +{ + mtag_t l = {*pt, t}; + *pt = (int) tp->size(); + tp->push_back(l); +} + +static void print_channels(const mtagpool_t &tp, int x, int y) +{ + if (x == -1) return; + print_channels(tp, tp[x].pred, tp[y].pred); + const char *px = tp[x].tag, *py = tp[y].tag; + printf(" %.*s\n", (int) (py - px), px); +} + +#define YYMTAGP(t) mtag(&t, YYCURSOR, &tp) +#define YYMTAGN(t) mtag(&t, NULL, &tp) + +static int lex(const char *YYCURSOR) +{ + const char *YYMARKER, *n1, *n2, *a1, *a2, *c1, *c2; + mtagpool_t tp; + int h1, h2; + /*!stags:re2c format = "const char *@@;"; */ + /*!mtags:re2c format = "int @@;"; */ +loop: + tp.clear(); + /*!mtags:re2c format = "@@ = -1;"; */ + /*!re2c + re2c:define:YYCTYPE = char; + re2c:yyfill:enable = 0; + + end = "\x00"; + eol = "\n"; + wsp = [ \t]*; + eq = wsp "=" wsp; + nick = [a-zA-Z0-9_]+; + name = [A-Z] ("." | [a-z]+); + names = name (wsp name)*; + country = [A-Za-z ]+; + channel = ([a-z0-9-]+ "/")? "#" [a-z0-9-]+; + + * { printf("error: %s\n", YYCURSOR); return 1; } + end { return 0; } + wsp | eol { goto loop; } + + @n1 nick @n2 wsp "{" wsp eol + wsp "name" eq @a1 names @a2 wsp eol + wsp "country" eq @c1 country @c2 wsp eol + wsp "channels" eq (wsp #h1 channel #h2 wsp ";")* wsp eol + wsp "}" { + printf("\n%.*s\n", (int) (n2 - n1), n1); + printf(" name: %.*s\n", (int) (a2 - a1), a1); + printf(" country: %.*s\n", (int) (c2 - c1), c1); + printf(" channels:\n"); + print_channels(tp, h1, h2); + goto loop; + } + */ +} + +int main(int argc, char **argv) +{ + if (argc < 2) { + fprintf(stderr, "no input files\n"); + return 1; + } + + FILE *file = fopen(argv[1], "r"); + + fseek(file, 0, SEEK_END); + const size_t fsize = (size_t) ftell(file); + fseek(file, 0, SEEK_SET); + + char *buffer = (char*) malloc(fsize + 1); + + fread(buffer, 1, fsize, file); + buffer[fsize] = 0; + + const int status = lex(buffer); + + fclose(file); + free(buffer); + + return status; +} diff --git a/_downloads/14_options.i--tags.re b/_downloads/14_options.i--tags.re new file mode 100644 index 00000000..2b9b1c48 --- /dev/null +++ b/_downloads/14_options.i--tags.re @@ -0,0 +1,91 @@ +#include +#include +#include + +typedef std::vector > unknown_t; + +struct options_t +{ + std::string date; + std::string path; + std::string format; + std::string limit; + bool verbose; +}; + +static void show(const options_t &o, const unknown_t &u) +{ + printf("\noptions:\n"); + printf(" date: %s\n", o.date.c_str()); + printf(" path: %s\n", o.path.c_str()); + printf(" format: %s\n", o.format.c_str()); + printf(" limit: %s\n", o.limit.c_str()); + printf(" verbose: %s\n", o.verbose ? "yes" : "no"); + + printf("\nunknown:\n"); + unknown_t::const_iterator i = u.begin(), e = u.end(); + for (; i != e; ++i) { + printf(" %s: '%s'\n", i->first.c_str(), i->second.c_str()); + } +} + +static void bad_arg(const char *k, const char *v, const char *e) +{ + printf("bad argument '%.*s' to option %.*s\n", + (int) (e - v), v, (int) (v - k), k); +} + +static int lex(const char *s) +{ + options_t o; + unknown_t u; + const char *m, *k, *v; + /*!stags:re2c format = 'const char *@@;'; */ +loop: + /*!re2c + re2c:define:YYCTYPE = char; + re2c:define:YYCURSOR = s; + re2c:define:YYMARKER = m; + re2c:yyfill:enable = 0; + + end = "\x00"; + sp = [ \t\n\r]; + eq = "="; + wsp = sp*; + char = [^=] \ end; + ochar = char \ sp; + pchar = ochar \ [/]; + str = ["] (char \ ["] | [\]["])* ["]; + opt = ochar+; + arg = ochar* | str; + date = [0-9]{2} "/" [0-9]{2} "/" [0-9]{4}; + path = pchar* ("/" pchar*)*; + format = str; + limit = [0-9]+ [BKMG]?; + + * { printf("error: %s\n", s); return 1; } + end { show(o, u); return 0; } + wsp { goto loop; } + + "-v" | "--verbose" { o.verbose = true; goto loop; } + ("-l" | "--limit" eq) @v limit { o.limit = std::string(v, s); goto loop; } + ("-f" | "--format" eq) @v str { o.format = std::string(v, s); goto loop; } + ("-d" | "--date" eq) @v date { o.date = std::string(v, s); goto loop; } + ("-p" | "--path" eq) @v path { o.path = std::string(v, s); goto loop; } + + @k ("--" ("limit" | "format" | "date" | "path") | "-" [lfdp]) @v eq? arg { + bad_arg(k, v, s); + goto loop; + } + [-]{1,2} @k opt @v eq? arg { + u.push_back(std::make_pair(std::string(k, v), std::string(v, s))); + goto loop; + } + */ +} + +int main(int argc, char **argv) +{ + for (int i = 1; i < argc; ++i) lex(argv[i]); + return 0; +} diff --git a/_downloads/15_binsyms.i--input(custom).re b/_downloads/15_binsyms.i--input(custom).re new file mode 100644 index 00000000..ec1c2d6e --- /dev/null +++ b/_downloads/15_binsyms.i--input(custom).re @@ -0,0 +1,49 @@ +#include +#include + +static void lex(const char *cur, const char *lim) +{ + const char *mar, *tok; +# define YYCTYPE char +# define YYPEEK() *cur +# define YYSKIP() if (++cur == lim) return; +# define YYBACKUP() mar = cur +# define YYRESTORE() cur = mar +loop: + tok = cur; + /*!re2c + re2c:yyfill:enable = 0; + + * { goto loop; } + "__" [a-zA-Z0-9_]+ { + printf("%.*s\n", (int) (cur - tok), tok); + goto loop; + } + */ +} + +int main(int argc, char **argv) +{ + if (argc < 2) { + fprintf(stderr, "no input files\n"); + return 1; + } + + FILE *file = fopen(argv[1], "rb"); + if (file == NULL) { + fprintf(stderr, "cannot open file\n"); + return 1; + } + + fseek(file, 0, SEEK_END); + const size_t fsize = (size_t) ftell(file); + fseek(file, 0, SEEK_SET); + + char *buffer = (char*) malloc(fsize); + fread(buffer, 1, fsize, file); + lex(buffer, buffer + fsize); + + free(buffer); + fclose(file); + return 0; +} diff --git a/_downloads/16_fake_sentinel.i--input(custom).re b/_downloads/16_fake_sentinel.i--input(custom).re new file mode 100644 index 00000000..f06ffefb --- /dev/null +++ b/_downloads/16_fake_sentinel.i--input(custom).re @@ -0,0 +1,31 @@ +#include +#include + +static int lex(const char *cur, const char *lim) +{ + const char *mar, *tok = cur; +# define YYCTYPE char +# define YYPEEK() (cur < lim ? *cur : 0) +# define YYSKIP() ++cur +# define YYBACKUP() mar = cur +# define YYRESTORE() cur = mar + /*!re2c + re2c:yyfill:enable = 0; + + * { printf("error\n"); return 1; } + [0-9a-zA-Z]+ [;] [\x00] { + printf("%.*s\n", (int) (cur - tok) - 1, tok); + return 0; + } + */ +} + +int main(int argc, char **argv) +{ + if (argc != 2) return 1; + + char *s = argv[1]; + size_t l = strlen(s); + s[l] = ';'; // overwrite terminating NULL + return lex(s, s + l + 1); +} diff --git a/_downloads/17_ifstream.i--input(custom).re b/_downloads/17_ifstream.i--input(custom).re new file mode 100644 index 00000000..69b0f18a --- /dev/null +++ b/_downloads/17_ifstream.i--input(custom).re @@ -0,0 +1,30 @@ +#include + +static void conv(std::ifstream &in, std::ofstream &out) +{ + std::streampos mar; +# define YYCTYPE char +# define YYPEEK() in.peek() +# define YYSKIP() do { in.ignore(); if (in.eof()) return; } while(0) +# define YYBACKUP() mar = in.tellg() +# define YYRESTORE() in.seekg(mar) +loop: + /*!re2c + re2c:yyfill:enable = 0; + + * { out.put(yych); goto loop; } + "\r\n" { out.put('\n'); goto loop; } + */ +} + +int main(int argc, char **argv) +{ + if (argc != 3) return 1; + + std::ifstream in(argv[1], std::ios::binary); + std::ofstream out(argv[2], std::ios::binary); + if (in.fail() || out.fail()) return 2; + + conv(in, out); + return 0; +} diff --git a/_downloads/example.c.line4.input b/_downloads/example.c.line4.input new file mode 100644 index 0000000000000000000000000000000000000000..8961f359754b596a126f66acf9e73cf450a53114 GIT binary patch literal 746 zcmVRaRG6Sz23MU0z>cXJ~0^Yiw<9Z*XyPb98lf zcX)YvdwhLLo_ ztE{cAuduPQv$VCgx45~wyS%-=zrex5!^FkL$H>Xb%goKr&(P7*)6~`0*Vx(G+uYsW z-{9fm+J3B@9^>R^Yr!h_xSnx`~3a>|1dByF)}hUGc+_cH8wUkH#j&s zIYB`}LPJADL`6kLMqy!MVq;@uWMyS$W-tIT0WtzJ12hCR1vUmZ2RH~h2|)@%3quS< z4Mh${4`C2u5n~c$6J-=;6)+Yt7cv+#88jL-8#Wv_9XK92A3-2OAwwcWBSj=eC1ECF zCu1mNDP<~VD=;iEEix`MFElzeJ2pHwJvcr&KS4l3M?*+NNkvLVOJPi6O=C`EPi0VM zQ7}?5Q!-RDRWw#LS2kETSvXobTR~hxT|-_(UqxU>XJKe!X=7?+Yh`R^Z7^;zZ!&N* zaWrx@b2fB0bvSl8cR_eUc|&?cdqsRkePMoLe`A1Tfn|bbgD`|Kg))XShct*ai8hKi zi#UuqjX{n=k3*0|kwub5lVOx%m1CAY>txk0)@yF$u!C}%Qnn6%{b0E&q2^a(L>Ti(?!%q)nV3R*JIdZ z*=5>h+c4ZQ-7?-Y-!$Mg;Wpwo<2d9wB>tXC-?PKm_?`802@i6i+ c^D^`^^)&W1_cr)9`8fJH`$7Cd{X_ml|1i@%%>V!Z literal 0 HcmV?d00001 diff --git a/_downloads/example.c.line4.keys b/_downloads/example.c.line4.keys new file mode 100644 index 0000000000000000000000000000000000000000..15853ab8dc34afd991f784e91a07993e5f6cc09a GIT binary patch literal 1470 hcmZQ%{Kq(oMnhm|h5!>21Eq-ZAJZrr4S}H<0svb+)lvWe literal 0 HcmV?d00001 diff --git a/_downloads/example.c.txt b/_downloads/example.c.txt new file mode 100644 index 00000000..5829dfc0 --- /dev/null +++ b/_downloads/example.c.txt @@ -0,0 +1,242 @@ +/* Generated by re2c 0.15.2 on Wed Dec 2 08:46:58 2015 */ + +#include +#include /* malloc, free */ + +static void *read_file + ( const char *fname + , size_t unit + , size_t padding + , size_t *pfsize + ) +{ + void *buffer = NULL; + size_t fsize = 0; + + /* open file */ + FILE *f = fopen(fname, "rb"); + if(f == NULL) { + goto error; + } + + /* get file size */ + fseek(f, 0, SEEK_END); + fsize = (size_t) ftell(f) / unit; + fseek(f, 0, SEEK_SET); + + /* allocate memory for file and padding */ + buffer = malloc(unit * (fsize + padding)); + if (buffer == NULL) { + goto error; + } + + /* read the whole file in memory */ + if (fread(buffer, unit, fsize, f) != fsize) { + goto error; + } + + fclose(f); + *pfsize = fsize; + return buffer; + +error: + fprintf(stderr, "error: cannot read file '%s'\n", fname); + free(buffer); + if (f != NULL) { + fclose(f); + } + return NULL; +} + +#define YYCTYPE unsigned char +#define YYKEYTYPE unsigned char +#define YYPEEK() *cursor +#define YYSKIP() ++cursor +#define YYLESSTHAN(n) (limit - cursor) < n +#define YYFILL(n) { break; } + +static int action_line4 + ( unsigned int i + , const YYKEYTYPE *keys + , const YYCTYPE *start + , const YYCTYPE *token + , const YYCTYPE **cursor + , YYKEYTYPE rule_act + ) +{ + const long pos = token - start; + const long len_act = *cursor - token; + const long len_exp = (long) keys [3 * i + 1]; + const YYKEYTYPE rule_exp = keys [3 * i + 2]; + if (rule_exp == 255) { + fprintf + ( stderr + , "warning: lex_line4: control flow is undefined for input" + " at position %ld, rerun re2c with '-W'\n" + , pos + ); + } + if (len_act == len_exp && rule_act == rule_exp) { + const YYKEYTYPE offset = keys[3 * i]; + *cursor = token + offset; + return 0; + } else { + fprintf + ( stderr + , "error: lex_line4: at position %ld (iteration %u):\n" + "\texpected: match length %ld, rule %u\n" + "\tactual: match length %ld, rule %u\n" + , pos + , i + , len_exp + , rule_exp + , len_act + , rule_act + ); + return 1; + } +} + +int lex_line4() +{ + const size_t padding = 2; /* YYMAXFILL */ + int status = 0; + size_t input_len = 0; + size_t keys_count = 0; + YYCTYPE *input = NULL; + YYKEYTYPE *keys = NULL; + const YYCTYPE *cursor = NULL; + const YYCTYPE *limit = NULL; + const YYCTYPE *token = NULL; + const YYCTYPE *eof = NULL; + unsigned int i = 0; + + input = (YYCTYPE *) read_file + ("example.c.line4.input" + , sizeof (YYCTYPE) + , padding + , &input_len + ); + if (input == NULL) { + status = 1; + goto end; + } + + keys = (YYKEYTYPE *) read_file + ("example.c.line4.keys" + , 3 * sizeof (YYKEYTYPE) + , 0 + , &keys_count + ); + if (keys == NULL) { + status = 1; + goto end; + } + + cursor = input; + limit = input + input_len + padding; + eof = input + input_len; + + for (i = 0; status == 0 && i < keys_count; ++i) { + token = cursor; + YYCTYPE yych; + + if (YYLESSTHAN (2)) YYFILL(2); + yych = YYPEEK (); + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': goto yy4; + default: goto yy2; + } +yy2: + YYSKIP (); +yy3: + status = action_line4(i, keys, input, token, &cursor, 254); + continue; +yy4: + YYSKIP (); + yych = YYPEEK (); + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': goto yy5; + default: goto yy3; + } +yy5: + YYSKIP (); + status = action_line4(i, keys, input, token, &cursor, 0); + continue; + + } + if (status == 0) { + if (cursor != eof) { + status = 1; + const long pos = token - input; + fprintf(stderr, "error: lex_line4: unused input strings left at position %ld\n", pos); + } + if (i != keys_count) { + status = 1; + fprintf(stderr, "error: lex_line4: unused keys left after %u iterations\n", i); + } + } + +end: + free(input); + free(keys); + + return status; +} + +#undef YYCTYPE +#undef YYKEYTYPE +#undef YYPEEK +#undef YYSKIP +#undef YYLESSTHAN +#undef YYFILL + +int main() +{ + if(lex_line4() != 0) { + return 1; + } + return 0; +} diff --git a/_downloads/example.re.txt b/_downloads/example.re.txt new file mode 100644 index 00000000..c4c3b509 --- /dev/null +++ b/_downloads/example.re.txt @@ -0,0 +1,4 @@ +/*!re2c + * {} + [0-9a-fA-F]{2} {} +*/ diff --git a/_downloads/fixorder.re.txt b/_downloads/fixorder.re.txt new file mode 100644 index 00000000..40a3c734 --- /dev/null +++ b/_downloads/fixorder.re.txt @@ -0,0 +1,34 @@ +#include + +#ifdef REVERSED_CONDITION_ORDER +# define yyca 1 +# define yycb 0 +#else +# define yyca 0 +# define yycb 1 +#endif + +int main() +{ + const char * YYCURSOR = "aaaa,bbb!"; + int c = yyca; + for (;;) { + /*!re2c + re2c:define:YYCTYPE = char; + re2c:yyfill:enable = 0; + re2c:define:YYSETCONDITION = "c = @@;"; + re2c:define:YYSETCONDITION:naked = 1; + re2c:define:YYGETCONDITION = c; + re2c:define:YYGETCONDITION:naked = 1; + + <*> * { printf ("error\n"); break; } + + "a" { printf ("a"); continue; } + "," => b { printf (","); continue; } + + "!" { printf ("!\n"); break; } + "b" { printf ("b"); continue; } + */ + } + return 0; +} diff --git a/_downloads/hang.re b/_downloads/hang.re new file mode 100644 index 00000000..f4926d90 --- /dev/null +++ b/_downloads/hang.re @@ -0,0 +1,17 @@ +#include + +int main(int argc, char **argv) +{ + for (int i = 1; i < argc; ++i) { + for (char *YYCURSOR = argv[i];;) { + /*!re2c + re2c:define:YYCTYPE = char; + re2c:yyfill:enable = 0; + "\x00" { break; } + [a-z]* { continue; } + */ + } + printf("argv[%d]: %s\n", i, argv[i]); + } + return 0; +} diff --git a/_downloads/syntax.c.txt b/_downloads/syntax.c.txt new file mode 100644 index 00000000..55f7f79d --- /dev/null +++ b/_downloads/syntax.c.txt @@ -0,0 +1,60 @@ + // re2c block with configuration that turns off #line directives + // +#include // C/C++ code + // +#define YYMAXFILL 1 // directive that defines YYMAXFILL (unused) + // end of re2c block + // +static int lex(const char *YYCURSOR) // YYCURSOR is defined as a function parameter +{ // + const char *YYMARKER; // YYMARKER is defined as a local variable + +{ + char yych; + yych = *YYCURSOR; + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy4; + default: goto yy2; + } +yy2: + ++YYCURSOR; + { return 1; } +yy4: + yych = *++YYCURSOR; + switch (yych) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy4; + default: goto yy6; + } +yy6: + { // a normal rule with its semantic action + printf("number\n"); // ... semantic action (continued) + return 0; // ... semantic action (continued) + } +} + // end of re2c block +} // + // +int main() // +{ // + lex("1024"); // C/C++ code + lex(";]"); // + return 0; // +} // diff --git a/_downloads/syntax.re b/_downloads/syntax.re new file mode 100644 index 00000000..1cff2735 --- /dev/null +++ b/_downloads/syntax.re @@ -0,0 +1,33 @@ +/*!re2c re2c:flags:i = 1; */ // re2c block with configuration that turns off #line directives + // +#include // C/C++ code + // +/*!max:re2c*/ // directive that defines YYMAXFILL (unused) +/*!re2c // start of re2c block + digit = [0-9]; // named definition of 'digit' + number = digit+; // named definition of 'number' +*/ // end of re2c block + // +static int lex(const char *YYCURSOR) // YYCURSOR is defined as a function parameter +{ // + const char *YYMARKER; // YYMARKER is defined as a local variable + /*!re2c // start of re2c block + re2c:define:YYCTYPE = char; // configuration that defines YYCTYPE + re2c:yyfill:enable = 0; // configuration that turns off YYFILL + // + * { return 1; } // default rule with its semantic action + // + number { // a normal rule with its semantic action + printf("number\n"); // ... semantic action (continued) + return 0; // ... semantic action (continued) + } // end of semantic action + // + */ // end of re2c block +} // + // +int main() // +{ // + lex("1024"); // C/C++ code + lex(";]"); // + return 0; // +} // diff --git a/_images/dfa.png b/_images/dfa.png new file mode 100644 index 0000000000000000000000000000000000000000..0cda1d1c7b7a644d0cc381b4d0d06ae65a3a2d50 GIT binary patch literal 8049 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 literal 0 HcmV?d00001 diff --git a/_images/math/31c6035d057f521b139d5008dc46cc0ac4ad0d35.png b/_images/math/31c6035d057f521b139d5008dc46cc0ac4ad0d35.png new file mode 100644 index 0000000000000000000000000000000000000000..67af7d22779a3d00748000992a85937b0f9dd0c6 GIT binary patch literal 871 zcmeAS@N?(olHy`uVBq!ia0vp^Z-H2tg&9cp{hodmNErn9gt-3y{~yRC9_Zg)Pz_Yg zUlQaO%&`9R`MYyHej6opzbx4=@kP{G9w^0G;1OBOz`%C|gc+x5^GP!>Fs<=)aSZV| zzBO!rx3Hr~-E*~@@}Ac;!VW6cH%eUb;?R65u*YdPb8uyp$0d$qk9g)JscvU4i_&=% z+I1|>L`<$oMq+D_z_mke-5gCW0w4F9e^#4*^Ud6&J2!mZTYG=@&$4HGXT~zr*0R3l z%5ndZ$xvMs8&vSYo%Qy@svk@b=DrkcbJpIoV}jhHV;0#3i5zP+>gOq5Uvkqm$J$(; zaf@hPl=9p6OWpNr&R-I3yU-WqTVXTHJ#hU~>nrsOHvHh<uVbB6oMiRXfgy>{C@z8m_2zx;aXVx8DTj=M9BE&P1h-xo{k za%@~zw_i%YNq4W+Pv)$SKaW_au3YQt8Wdl+Ns(t^=d4S6nY@(6t!vMnkeD`eS(b+U z;?;+K9{4@;oh84zjd9v`2&q}6^=*SAAI<6qikl}JiUM`I`UVK zUTU|JF5TO9<+{a9fwm2KYq!+TT2v5K$5^^P^IGqr`9AV9FYUd2Kzwa@=%u8;S+Np< zp+)hJQ=BE7HlF4DBG;Nx7~gLC;nA2+4|o;7i>gZ> z66mtEY|Mzg%Ox8od+Sa*_mjPjXX7!PjD}U^)SF8tzz_z_?+v1$Be!kPa zy?vc}L+ie6r9TbR_pVwdedJ|q_+6iA7v9R>`*GsfEh`4)Z>D}`Je%_tafK(YY(M*L za)RpK&&4O-6d$gc$|m;ikHL&erkhF?cia9iwVw5&YU-4C1>a7J-;jTy@Oiat%8j?V z-}YW%Uz%!JQyMY#$Q?FphBvFW$^?<=EIB%ho>sa>YR!?Fo7|xfX(0xlkvCw zgntZaH;fIeBpQ}V^qI3XNW}P_3U{2vc%6fvy(`s?5okJBiEBiOOKL$$29U$RpsxIo P2Sj_i`njxgN@xNAwLC&3 literal 0 HcmV?d00001 diff --git a/_images/math/3a6bd8b5c62ffa658aaf86378127d64d5e03c433.png b/_images/math/3a6bd8b5c62ffa658aaf86378127d64d5e03c433.png new file mode 100644 index 0000000000000000000000000000000000000000..3f154d9b8ef12ea51d22a94f950becf88cb23944 GIT binary patch literal 550 zcmeAS@N?(olHy`uVBq!ia0vp^Za}QU!3-ps&+K^)q$~q`LR|m<{|{u60hnT{eSq48 zN`m}?8RnLF-0eR9a{ccFBZ>W=|K9$-qj)RGKF$J<$YKTtz9S&aI8~cZnt_2a-qXb~ z#N+tWu-j!v6gWgah%Mgs^uPVKSvi+7Vzye=zTU&LdUKOUfMQ*H=%=cu%N6u~Do)Y) zsc16gk3hHfP8J5Ct-VG^dpLd^R$bziIBQwpQZ@MtkNox2H^<$c7P$P_J87#OcQ#b< z-s^SCvblWnY1{R^0`J^d&u7Y?P`~fZwPeBW!1Rin=YKuWy7J_B#6l^zR*e>8alHpR zN~}+%kNK{AaH^hX>F>{GKAC@ncEx>~cs4`Ey-NMVtnDiPnPPonD_=Ry6X5y$dPSN^ z+$XkTIUYIX=l|18nsV;6eR~yu_M39sqv#nIbBtHa%w1P_&12u)E_IWg`y^$&@4v4X zmO3h57Lg@9>-_q{ljk!2sVbbicX>zIyYx$&_bNxcaar89PKW8qH^x_gjV`UaP_F9f zpr`X@ujM7#24F=0>zn_v5){>*u6{1-oD!M<-h1A0 literal 0 HcmV?d00001 diff --git a/_images/math/48db08e51669ad87af374b5f0fd4dacbb2de0ea6.png b/_images/math/48db08e51669ad87af374b5f0fd4dacbb2de0ea6.png new file mode 100644 index 0000000000000000000000000000000000000000..7876be74f3e1833ca41dbb0e67363fbcc1665fc5 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^JRmj;Gmy+@pHv8>3<7*YT>t<74`dP#^zSaH2CC*S z3GxeOSpWI_-MJpWjS{+Fmh6}KBI+y;l;SM#h%9Dc;5!1sj8nDwq=AB7o-U3d9M_W* z5(Iwf9AIG4;ZvB@XwTsDRJ~zkg~7=LriESyRgU``9R1qZ*f_bdv67kjFee*Z*#b#% z35j3o1_t^G33uuPm;7U7=>5#IXG_c32%xE4C9V-AE~y1289)vLgSzrVkS7^DUHx3v IIVCg!06FVIsQ>@~ literal 0 HcmV?d00001 diff --git a/_images/math/58480c8cf19c69c3af184a56ed6985d65b9b244f.png b/_images/math/58480c8cf19c69c3af184a56ed6985d65b9b244f.png new file mode 100644 index 0000000000000000000000000000000000000000..ce9ee64080e9678e3b535c43495b92da8c2f4dac GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^d>}RpGmy;wt<74`dP#^zSaH2CC*S z3GxeOkeGXZy-~@_g#Dj?cYEB`7q#&RN^ur=L>2?BI|9OtQ?>b|fr2rfE{-7_*OLdRe&UFj{YZ@98xhEtQBqaPg#lRNBDlqFlgO|2} zK}B77!hV!Z literal 0 HcmV?d00001 diff --git a/_images/math/5c6c23b13e59ef813dcae81710428f8e21fee05f.png b/_images/math/5c6c23b13e59ef813dcae81710428f8e21fee05f.png new file mode 100644 index 0000000000000000000000000000000000000000..3ec91593f181910dc3519305cbb84c86c98d59e4 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!VDyjYyB_FVdQ&MBb@00odPmH+?% literal 0 HcmV?d00001 diff --git a/_images/math/7da27f7d74eb31b3c2cd639dad0f41bcbcb7688a.png b/_images/math/7da27f7d74eb31b3c2cd639dad0f41bcbcb7688a.png new file mode 100644 index 0000000000000000000000000000000000000000..42584acc690b44880a8ce3fbf31920ace305bdbd GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^d>}RpGmy;wt<74`dP#^zSaH2CC*S z3GxeOFuLo}eSYrmgc6DMpI`1jljp7ll;SM#h%5$LcLanPr)u*_0|nzeT^vI=t|up4 z5l={nICkJb!ubOSw4R+j@ZiXS17DXlHY)O*nE$t_aUqk&_F0XMAD?gG0=p1=(&rd!PxliL1ml dqQoV&pdor-`Z8=pPc=q0dLPK?!2Jr(OMxq^6CJaANL3Jlizb?;oBk+XR_- zueFJvJyx-{#_#{d0|)D*pY7^M{d}`F;nB$p3A^G~Pg5!JpR+f|MB;4Ajjs{q0*A6L zMoDIzyRhANqejStwcZs%@3_xw+OC@PHp@lwky3BCRK~qa-=j8aa9Px+I*9m8E>AeO zeC0Yp!Tq|FX?cO+S{PE)OAHjt>OYK>;S>|oFSSnb{_{M(LCoa|1Q8G+r-720x zWTxM|UBeMGpVwmFv{Rv19|@P$O+685f5uz*Hhbh>b#u? z*N=ztqLQ&9+OwH9&HQbB>c^g6xmI>d`#5`alO31Met%Gk<$>LjOi9;ICBL>m(>rhW z{nJ8eF_)N`IiF?cK2kZeV|~=cjh_}ANXv+H>Z_61zomo6FZa-ry0bt1_H6cEx958y zw|nlDNq#SP9gFPG|qZ75xgjJ~7mV*UZf(1MjS>O>_47BP92s2LA=96Y%VAAn)aSZV| zes${pY!OG13gs#{ZtM{7R*XL4qAecO(YsS^l3KyRXDr>> zN{XRe6NOurc+AhvQJEwn<}PsOlv7Ku8rOA}`+ItKZ-0H}pGIxL=HoSX*5;qnp2<1{ z8Z7Ma_UKBP<@&SE>+H|FuUE?ln})ewk>*-mF~`Ks=qNlJRcYNsIej-PFTJp|y;t(c319^4iz)hnl~68%8JhC&$m> zx_gXk@5Q|L%5KwM$bytc9$eH}`RduNkLSL#1@(sR;+!}&RMcI_(# zsk&JAn9soN@jtGuO{$k`rsgrNvOj$4*zvu6LFZX&zn;-pXn99lOLKqt>4iQfAEjfVNUwesHvfMmVc2uuD7mFU3Yg5b9b*qX4dOekcl_fl`IHc_l!Tu^kKYj&4=6v z4+;|ghuZ(V{{82ZtIMO;2i%Nup7Le+vFBGp1k~FfebJn#U$-ScMp{dDTFmS7kLC9V-AE~y1284SRb`m6JkX#!A`!PC{xWt~$(695EwLRJ6( literal 0 HcmV?d00001 diff --git a/_images/math/9a35981bab3fb1e23a2f374e4a027a565471a18d.png b/_images/math/9a35981bab3fb1e23a2f374e4a027a565471a18d.png new file mode 100644 index 0000000000000000000000000000000000000000..431357e292ebca02af01f799e0c2dd4173ebecf0 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^93VCeGmuPsW5f-lbOU@sT>t<74`dPv4p?no0949X z666=mV071``~2MB2_+KiKflb4IX?_wfUrhf{vapjv*Y^lM}88 zCnO|nU`}FF7Z7Aq(rTFT@#z*$9vyzkRT2^A46HY#cgPv9i9YbN!EsKbX=7vi!s(5T v$=*!N3^q(WY?(W=9k~A-2TE}kctjQhtvUk2j8nDwq!}0(#XMacLp07O zCpa)h*Et(-z4(2tLG93iKa5R*4BgDTjM&21IoufkFiE_+!J;6+(ic}4$YA`2*WgN_ zUPHo!i*f7=nm#2=3Oq5R(J|mA!OUT4xB95qnNkDAIKyg=-*vX4OGov z666=mFt^0xZuj|@>whO0N$mgZ!2RbqP>Qp_BeIx*f$sXt zZY^I^fK1!RcEy|;mee@Ln1&pe=SyxFM&6m@sdVwg9;U9=6ceF07kbooPj@)};HSr@ zy!~%~PT$O2U(ItXBW-3k$6{S1Y8q z$F4eYR9MK*?QH0ju36za7tPY%^R5Z~5ich6$n4UR^t@9MVKTOkHSOs$L;u|j`dG-V za>x72yLS(>)+cjc;`g6vcDy-<)e`7vt`gUX5|`A1k_;e+fk9pQArFZ5boFyt=akR{ E0CBf?Qvd(} literal 0 HcmV?d00001 diff --git a/_images/math/c75680b8275f933e71a564f1e7c4b7948de56152.png b/_images/math/c75680b8275f933e71a564f1e7c4b7948de56152.png new file mode 100644 index 0000000000000000000000000000000000000000..b96b64a8230c892df1ed4569add9ea015a378de3 GIT binary patch literal 481 zcmeAS@N?(olHy`uVBq!ia0vp^mOw1b!VDyDFz$E;qznRlLR|m<{|{sm5A^RYs0OO$ zFA4GsW{~LKpYXEeuF>z$9&^vHFWa;9FHnlJz$3Dlfr0M`2s2LA=96Y%U{v#TaSYKo zA3AZr*Wmz>_Wc>rlg%C-ee@_v(44i~UqC=+=|0DTg2D|}mT43HvfAt%*yR^=Pi{WC zaC7%jM=!_1YiBPOzxTZLq^S5u?N8Zr^I7(Y{VdGd>vDS4UO|(!8JB+-zsPXE`+fS1 zSxfX?P3mN#7A?;E>{uEqw5!W$>zcPujGOc=TCYxAbir%V*SVe+E!iAOt_vOF+8(PL zD7~6+=(Vjy|zFg{D@#dv~iKMCsYmkV@8H?6%>SSB~4( j7y^TltHd>;#3i+$Bm)#Vtl^%b%^-%StDnm{r-UW|SB$)m literal 0 HcmV?d00001 diff --git a/_images/math/dd74dc5c9418a329ecbe0073e1fe05190eda9a85.png b/_images/math/dd74dc5c9418a329ecbe0073e1fe05190eda9a85.png new file mode 100644 index 0000000000000000000000000000000000000000..3568f3a3e148984186d8e41c8dcfb78fa66c4d86 GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^@*p+~Gmu<7Z^bMiWf0&K;`;ype;|{1pnrEkHBdEw zNswPK!`u>&yWQtsuK%52B(eXq1NWcfKq<}wkH}&M2EHR8%s5q>PZ}sV)zif>gyVX0 z0t2HQBU_v9enk_Blx{5pgZhRG2?gIonVDBJx3D!YxyQ;a9G zGY1M98WZihk%|MM3}O$mg7$Hl)w(Lo;Ae2`RQ$I0g+&g~ hfm|i75hX6E1tl3k4g-U_@_N(UcvwX literal 0 HcmV?d00001 diff --git a/_images/math/f4797cf166ba72d581981b92f88fef1e2eb77d04.png b/_images/math/f4797cf166ba72d581981b92f88fef1e2eb77d04.png new file mode 100644 index 0000000000000000000000000000000000000000..f23fa1d971ade8366f9a346fe36b4db0b9a5a60e GIT binary patch literal 460 zcmeAS@N?(olHy`uVBq!ia0vp^wm>Y%!3-oLFNI74QZ@lTA+G=b{|7S30~*%_!hkx3 zOM?7@8RnLF-0eR9a{ccFBZ>W=n_s`(&c19KNSd?2BeIx*f$s!_{iAqP)`F0#;P-gOMxUan8@%?w3ZeHFy zP1-1@&`Kco-ORibR%g`%ufKX_YgnXI)Sv2Ad$Q=C?#z?!AG&=^Gefva*NL(OK4d8= zdKwtB%*I6M`QnqAM~lSy7xcyoU%&RC%}uZJ=>J{KHh&qiD)w#TGcvJyH|ezaW?ANp zO+13NZ(S@bFQ)#EQQzY0e)4M|--7fhivFwLY%1lJyqLyZFI>mir zNrsNWo1GJ9Hj2$Sw|4iN-qmwEtO_GFwP!R=KlS|kqnW0Y)~Kor{u4U?=~~+Lf5K-z zIL`1tQDOXv|ClFxmcG-@K&Dshb{aY-#G$pFOzi-Mo3D2UgTe~DWM4f`e~>) literal 0 HcmV?d00001 diff --git a/_images/nfa.png b/_images/nfa.png new file mode 100644 index 0000000000000000000000000000000000000000..f7d01708d44f08e8cffeba6ab4cd231c5fddd9a8 GIT binary patch literal 13479 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

5GJUeU*~jI*T>4+^?lmdJ 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

aS;fe!h=FHuu<1}7$Jx+ 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 + +.. literalinclude:: 04_parsing_integers_blocks.i.re + :language: cpp + :linenos: + +Notes: + +* Configurations and definitions (lines 20 - 26) are not scoped to a single re2c block — they are global. + Each block may override configurations, but this affects the global scope. +* Blocks don't have to be in the same function: they can be in separate functions or elsewhere + as long as the exposed interface fits into the lexical scope. + +Compile: + +.. code-block:: bash + + $ re2c -o multiple_blocks.cc multiple_blocks.re + $ g++ -o multiple_blocks multiple_blocks.cc + +Run: + +.. code-block:: bash + + $ ./multiple_blocks 0 12345678901234567890 0xFFFFffffFFFFffff 0x1FFFFffffFFFFffff 0xAbcDEf 0x00 007 0B0 0b110101010 "" + 0 + 12345678901234567890 + 18446744073709551615 + error + 11259375 + 0 + 7 + 0 + 426 + error + + diff --git a/_sources/examples/example_05.rst.txt b/_sources/examples/example_05.rst.txt new file mode 100644 index 00000000..122a9cf4 --- /dev/null +++ b/_sources/examples/example_05.rst.txt @@ -0,0 +1,64 @@ +Conditions +---------- + +This example demonstrates the use of conditions. +It is similar in functionality to the `Multiple blocks `_ example, +except that individual sub-lexers are connected usding conditions rather than multiple blocks. +Conditions allow to encode multiple interconnected lexers within a single re2c block. + +:download:`[conditions.re] <05_parsing_integers_conditions.ci.re>` + +.. literalinclude:: 05_parsing_integers_conditions.ci.re + :language: cpp + :linenos: + +Notes: + +* Conditions are enabled with the ``-c`` option. + +* Conditions are only syntactic sugar; they can be translated into multiple blocks. + +* Each condition is a standalone lexer (DFA). + +* Each condition has a unique identifier: ``/*!types:re2c*/`` tells re2c to generate + an enumeration of all the identifiers (the names are prefixed with ``yyc`` by default). + The lexer uses ``YYGETCONDITION`` to get the identifier of the current condition + and ``YYSETCONDITION`` to set it. + +* Each condition has a unique label (prefixed with ``yyc_`` by default). + +* Conditions are connected: transitions are allowed between the final states of one condition + and the start state of another condition (but not between inner states of different conditions). + The generated code starts with dispatch. + Actions can either jump to the initial dispatch or jump directly to a condition. + +* The ``<*>`` rule is merged to all conditions (low priority). + +* Rules with multiple conditions are merged to each listed condition (normal priority). + +* ``:=>`` jumps directly to the next condition (bypassing the initial dispatch). + +Compile: + +.. code-block:: bash + + $ re2c -c -o conditions.cc conditions.re + $ g++ -o conditions conditions.cc + +Run: + +.. code-block:: bash + + $ ./conditions 0 12345678901234567890 0xFFFFffffFFFFffff 0x1FFFFffffFFFFffff 0xAbcDEf 0x00 007 0B0 0b110101010 "" + 0 + 12345678901234567890 + 18446744073709551615 + error + 11259375 + 0 + 7 + 0 + 426 + error + + diff --git a/_sources/examples/example_06.rst.txt b/_sources/examples/example_06.rst.txt new file mode 100644 index 00000000..86de2056 --- /dev/null +++ b/_sources/examples/example_06.rst.txt @@ -0,0 +1,81 @@ +Braille patterns +---------------- + +This example is about encoding support in re2c. +It's a partial decoder from Grade-1 (uncontracted) Unicode English Braille to plain English. +The input may be encoded in UTF-8, UTF-16, UTF-32, or UCS-2: +all of these encodings are capable of representing Braille patterns (code points ``[0x2800 - 0x28ff]``). +We use the ``-r`` option to reuse the same block of re2c rules with different encodings. + +So. The hardest part is to get some input. +Here is a message out of the void: + +.. include:: 06_braille.utf8.txt + +It appears to be UTF-8 encoded :download:`[braille.utf8.txt] <06_braille.utf8.txt>`. +Let's convert it into UTF-16, UTF-32, and UCS-2: + +.. code-block:: bash + + $ iconv -f utf8 -t utf16le 06_braille.utf8.txt > 06_braille.utf16.txt + $ iconv -f utf8 -t utf32le 06_braille.utf8.txt > 06_braille.utf32.txt + $ iconv -f utf8 -t ucs2 06_braille.utf8.txt > 06_braille.ucs2.txt + +And the input is ready. + +Grade-1 Braille is quite simple (compared to Grade-2 Braille). +Patterns map directly to symbols (letters, digits, and punctuators) except for a couple of special patterns: +the numeric mode indicator (⠼), the letter mode indicator (⠰), the capital letter indicator (⠠) +and some others, which we omit here for the sake of simplicity (as well as a few ambiguous punctuation patterns). +Grade-2 Braille allows contractions; those obey some rather complex rules (like those of a natural language) +and are much harder to implement. + +:download:`[braille.re] <06_braille.cr8i.re>` + +.. literalinclude:: 06_braille.cr8i.re + :language: cpp + :linenos: + +Notes: + +* The reuse mode is enabled with the ``-r`` option. +* In the reuse mode, re2c expects a single ``/*!rules:re2c ... */`` block + followed by multiple ``/*!use:re2c ... */`` blocks. + All blocks can have their own configurations, definitions, and rules. +* Encoding can be enabled either with a command-line option or a configuration. +* Each encoding needs the appropriate code unit type (``YYCTYPE``). +* We use conditions to switch between numeric and normal modes. + +Compile: + +.. code-block:: bash + + $ re2c -cr8 -o braille.cc braille.re + $ g++ -o braille braille.cc + +Run: + +.. code-block:: bash + + $ ./braille + utf8: + All human beings are born free and equal in dignity and rights. + They are endowed with reason and conscience and should act towards + one another in a spirit of brotherhood. + + utf16: + All human beings are born free and equal in dignity and rights. + They are endowed with reason and conscience and should act towards + one another in a spirit of brotherhood. + + utf32: + All human beings are born free and equal in dignity and rights. + They are endowed with reason and conscience and should act towards + one another in a spirit of brotherhood. + + ucs2: + All human beings are born free and equal in dignity and rights. + They are endowed with reason and conscience and should act towards + one another in a spirit of brotherhood. + + diff --git a/_sources/examples/example_07.rst.txt b/_sources/examples/example_07.rst.txt new file mode 100644 index 00000000..252481b7 --- /dev/null +++ b/_sources/examples/example_07.rst.txt @@ -0,0 +1,84 @@ +C++98 lexer +----------- + +This is an example of a big, real-world re2c program: a C++98 lexer. +It conforms to the C++98 standard (except for a couple of hacks that simulate the preprocessor). +All nontrivial lexemes (integers, floating-point constants, strings, and character literals) +are parsed (not only recognized): numeric literals are converted to numbers, and strings are unescaped. +Some additional checks described in the standard (e.g., overflows in integer literals) are also done. +In fact, C++ is an easy language to lex: unlike in many other languages, the C++98 lexer can proceed without feedback from the parser. + +:download:`[cxx98.re] <07_cxx98.i.re>` + +.. literalinclude:: 07_cxx98.i.re + :language: cpp + :linenos: + +Notes: + +* The main lexer is used to lex all trivial lexemes (macros, whitespace, boolean literals, keywords, operators, punctuators, and identifiers), + recognize numeric literals (which are further parsed by a bunch of auxiliary lexers), + and recognize the start of a string and character literals (which are further recognized and parsed by an auxiliary lexer). + Numeric literals are thus lexed twice: this approach may be deemed inefficient, + but it takes much more effort to validate and parse them in one go. + Besides, a real-world lexer would rather recognize ill-formed lexemes (e.g., overflown integer literals), + report them, and resume lexing. + +* We don't use re2c in cases where a hand-written parser looks simpler: when parsing octal and decimal literals + (though a re2c-based parser would do exactly the same, without the slightest overhead). + However, hexadecimal literals still require some lexing, which looks better with re2c. + Again, it's only a matter of taste: a re2c-based implementation adds no overhead. + Look at the generated code to make sure. + +* The main lexer and string lexer both use ``re2c:yyfill:enable = 1;``, other lexers use ``re2c:yyfill:enable = 0;``. + This is very important: both the main lexer and string lexer advance input position to new (yet unseen) input characters, + so they must check for the end of input and call ``YYFILL``. In contrast, other lexers only parse lexemes that + have already been recognized by the main lexer: these lexemes are guaranteed to be within buffer bounds + (they are guarded by ``in.tok`` on the left and ``in.lim`` on the right). + +* The hardest part is (unsurprisingly) floating-point literals. + They are just as hard to lex as they are to use. ``:)`` + +Generate, compile, and run: + +.. code-block:: bash + + $ re2c -o cxx98.cc cxx98.re + $ g++ -o cxx98 cxx98.cc + +Run: + +.. code-block:: bash + + $ ./cxx98 07_cxx98.re | fold + STATIC CONST size_t SIZE = 64 * 1024; STRUCT input_t { UNSIGNED CHAR buf[SIZE + + YYMAXFILL]; UNSIGNED CHAR *lim; UNSIGNED CHAR *cur; UNSIGNED CHAR *mar; UNSIGNE + D CHAR *tok; BOOL eof; FILE *CONST file; input_t(FILE *f) : buf() , lim(buf + SI + ZE) , cur(lim) , mar(lim) , tok(lim) , eof(false) , file(f) {} BOOL fill(size_t + need) { IF (eof) { RETURN false; } CONST size_t free = tok - buf; IF (free < nee + d) { RETURN false; } memmove(buf, tok, lim - tok); lim -= free; cur -= free; mar + -= free; tok -= free; lim += fread(lim, 1, free, file); IF (lim < buf + SIZE) { + eof = true; memset(lim, 0, YYMAXFILL); lim += YYMAXFILL; } RETURN true; } }; TE + MPLATE STATIC BOOL adddgt(UNSIGNED LONG &u, UNSIGNED LONG d) { IF (u > + (ULONG_MAX - d) / base) { RETURN false; } u = u * base + d; RETURN true; } STAT + IC BOOL lex_oct(CONST UNSIGNED CHAR *s, CONST UNSIGNED CHAR *e, UNSIGNED LONG &u + ) { FOR (u = 0, ++s; s < e; ++s) { IF (!adddgt<8>(u, *s - 48)) { RETURN false; } + } RETURN true; } STATIC BOOL lex_dec(CONST UNSIGNED CHAR *s, CONST UNSIGNED CHA + R *e, UNSIGNED LONG &u) { FOR (u = 0; s < e; ++s) { IF (!adddgt<10>(u, *s - 48)) + { RETURN false; } } RETURN true; } STATIC BOOL lex_hex(CONST UNSIGNED CHAR *s, + CONST UNSIGNED CHAR *e, UNSIGNED LONG &u) { FOR (u = 0, s += 2; s < e;) { } RETU + RN true; } STATIC BOOL lex_str(input_t &in, UNSIGNED CHAR q) { printf("\x25\x63" + , q); FOR (UNSIGNED LONG u = q;; printf("\x5c\x78\x25\x6c\x78", u)) { in.tok = i + n.cur; } printf("\x25\x63", q); RETURN true; } STATIC BOOL lex_flt(CONST UNSIGNE + D CHAR *s) { DOUBLE d = 0; DOUBLE x = 1; INT e = 0; mant_int: mant_frac: exp_sig + n: exp: sfx: end: printf("\x25\x67", d); RETURN true; } STATIC BOOL lex(input_t + &in) { UNSIGNED LONG u; FOR (;;) { in.tok = in.cur; sfx: } } INT main(INT argc, + CHAR **argv) { IF (argc != 2) { printf ("\x75\x73\x61\x67\x65\x3a\x20\x2e\x2f\x6 + 5\x78\x61\x6d\x70\x6c\x65\x20\x3c\x66\x69\x6c\x65\x6e\x61\x6d\x65\x3e\xa"); RETU + RN 1; } FILE *file = fopen(argv[1], "\x72\x62"); IF (!file) { printf("\x65\x72\x + 72\x6f\x72\x3a\x20\x63\x61\x6e\x6e\x6f\x74\x20\x6f\x70\x65\x6e\x20\x66\x69\x6c\x + 65\x3a\x20\x25\x73\xa", argv[1]); RETURN 1; } input_t in(file); IF (!lex(in)) { + printf("\x2e\x2e\x2e\x20\x65\x72\x72\x6f\x72\xa"); } ELSE { printf("\xa"); } fcl + ose(file); RETURN 0; } + + diff --git a/_sources/examples/example_09.rst.txt b/_sources/examples/example_09.rst.txt new file mode 100644 index 00000000..a663633d --- /dev/null +++ b/_sources/examples/example_09.rst.txt @@ -0,0 +1,53 @@ +/etc/passwd +----------- + +This example shows how to parse simple file formats such as the ``/etc/passwd`` file. +This file consists of multiple lines of the form ``user`` ``:`` ``password`` ``:`` ``UID`` ``:`` ``GID`` ``:`` ``info`` ``:`` ``home`` ``:`` ``command``. +Our example file is the following :download:`[/etc/passwd] <09_etc_passwd.txt>`: + +.. literalinclude:: 09_etc_passwd.txt + +:download:`[etc_passwd.re] <09_etc_passwd.i--tags.re>` + +.. literalinclude:: 09_etc_passwd.i--tags.re + :language: cpp + :linenos: + +Compile: + +.. code-block:: bash + + $ re2c --tags -o etc_passwd.cc etc_passwd.re + $ g++ -o etc_passwd etc_passwd.cc + +Run: + +.. code-block:: bash + + $ ./etc_passwd /etc/passwd + user: root + password: x + UID: 0 + GID: 0 + info: root + home: /root + command: /bin/bash + + user: bin + password: x + UID: 1 + GID: 1 + info: bin + home: /bin + command: /bin/false + + user: portage + password: x + UID: 250 + GID: 250 + info: portage + home: /var/tmp/portage + command: /bin/false + + + diff --git a/_sources/examples/example_10.rst.txt b/_sources/examples/example_10.rst.txt new file mode 100644 index 00000000..d972c7c8 --- /dev/null +++ b/_sources/examples/example_10.rst.txt @@ -0,0 +1,58 @@ +URI (RFC-3986) +-------------- + +This example was used as a benchmark in +`"Tagged Deterministic Finite Automata with Lookahead" <../../2017_trofimovich_tagged_deterministic_finite_automata_with_lookahead.pdf>`_ paper; +it is an RFC-3986 compliant URI parser. +It uses s-tags. + +:download:`[uri_rfc3986.re] <10_uri_rfc3986.i--tags.re>` + +.. literalinclude:: 10_uri_rfc3986.i--tags.re + :language: cpp + :linenos: + +:download:`[uri.dat] <10_uri.dat.txt>` + +.. literalinclude:: 10_uri.dat.txt + +Compile: + +.. code-block:: bash + + $ re2c --tags -o uri_rfc3986.cc uri_rfc3986.re + $ g++ -o uri_rfc3986 uri_rfc3986.cc + +Run: + +.. code-block:: bash + + $ ./uri_rfc3986 uri.dat + URI 1: + scheme: http + userinfo: user:pass + host: 127.0.0.1 (IPv4) + port: 8000 + path: /path/data + query: key=val&key2=val2 + fragment: frag1 + + URI 2: + scheme: rsync + host: rsync.kernel.org (name) + path: /pub/ + + URI 3: + scheme: http + host: re2c.org (name) + path: /manual/syntax/syntax.html + fragment: rules + + URI 4: + scheme: ssh + host: [2001:db8:85a3::8a2e:370:7334] (IP literal) + path: / + + ok, parsed 4 URIs + + diff --git a/_sources/examples/example_11.rst.txt b/_sources/examples/example_11.rst.txt new file mode 100644 index 00000000..b1d5f813 --- /dev/null +++ b/_sources/examples/example_11.rst.txt @@ -0,0 +1,47 @@ +HTTP (RFC-7230) +--------------- + +This example was used as a benchmark in +`"Tagged Deterministic Finite Automata with Lookahead" <../../2017_trofimovich_tagged_deterministic_finite_automata_with_lookahead.pdf>`_ paper; +it is an RFC-7230 compliant HTTP message parser. +It uses both s-tags and m-tags. + +:download:`[http_rfc7230.re] <11_http_rfc7230.i--tags.re>` + +.. literalinclude:: 11_http_rfc7230.i--tags.re + :language: cpp + :linenos: + +:download:`[http.dat] <11_http.dat.txt>` + +.. literalinclude:: 11_http.dat.txt + +Compile: + +.. code-block:: bash + + $ re2c --tags -o http_rfc7230.cc http_rfc7230.re + $ g++ -o http_rfc7230 http_rfc7230.cc + +Run: + +.. code-block:: bash + + $ ./http_rfc7230 http.dat + GET /index.html HTTP/1.1 + Host: www.example.com + User-Agent: Mozilla/5.0 + Accept: text/xml,application/xml,application/xhtml+xml,text/html*/* + Accept-Language: en-us + Accept-Charset: ISO-8859-1,utf-8 + Connection: keep-alive + + HTTP/1.1 200 OK + Date: Thu, 24 Jul 2008 17:36:27 GMT + Server: Apache-Coyote/1.1 + Content-Type: text/html;charset=UTF-8 + Content-Length: 1846 + + ok, parsed 2 HTTPs + + diff --git a/_sources/examples/example_13.rst.txt b/_sources/examples/example_13.rst.txt new file mode 100644 index 00000000..ca02a814 --- /dev/null +++ b/_sources/examples/example_13.rst.txt @@ -0,0 +1,48 @@ +Records & structs +----------------- + +This example shows how to parse simple non-recursive structures and records. +It uses both s-tags (for simple fields) and m-tags (for fields that contain multiple elements). +Our imaginary records describe IRC users. +Each record consists of a nickname followed by an opening curly brace, a list of attributes (one per line), and a closing curly brace. +Attributes are name, country and a list of IRC channels. +Below is an example: + +:download:`[records.dat] <13_records.dat.txt>` + +.. literalinclude:: 13_records.dat.txt + +:download:`[records.re] <13_records.i--tags.re>` + +.. literalinclude:: 13_records.i--tags.re + :language: cpp + :linenos: + +Compile: + +.. code-block:: bash + + $ re2c --tags -o records.cc records.re + $ g++ -o records records.cc + +Run: + +.. code-block:: bash + + $ ./records records.dat + + h4cker1970 + name: Jon Smith + country: UK + channels: + freenode/#gentoo-dev + freenode/#gentoo-arch + freenode/#alpha + + mitek + name: Mitrofan Rygoravich + country: Belarus + channels: + bynets/#haskell + freenode/#unix + diff --git a/_sources/examples/example_14.rst.txt b/_sources/examples/example_14.rst.txt new file mode 100644 index 00000000..49262662 --- /dev/null +++ b/_sources/examples/example_14.rst.txt @@ -0,0 +1,52 @@ +Options & arguments +------------------- + +This example shows how to parse command-line options +with possible arguments, where each individual option may need its own argument format. +Our parser handles errors and typos: +for known options it reports ill-formed arguments; +for unrecognized options it collects them and reports at the end of parsing. +Our imaginary options are summarized below: + +* ``-v``, ``--verbose`` + +* ``-l LIMIT``, ``--limit=LIMIT``, where ``LIMIT`` is a decimal number followed by one of the suffixes ``B``, ``K``, ``M`` or ``G`` + +* ``-d DATE``, ``--date=DATE``, where ``DATE`` has the form ``DD/MM/YYYY`` + +* ``-p PATH``, ``--path=PATH``, where ``PATH`` is a ``/``-separated file path + +* ``-f FORMAT``, ``--format=FORMAT``, where ``FORMAT`` is a double-quoted format string + +:download:`[options.re] <14_options.i--tags.re>` + +.. literalinclude:: 14_options.i--tags.re + :language: cpp + :linenos: + +Compile: + +.. code-block:: bash + + $ re2c --tags -o options.cc options.re + $ g++ -o options options.cc + +Run: + +.. code-block:: bash + + $ ./options '-v --limit=8K -d08/08/1985 -p/usr/src/linux --format="%s" --limit -f=3 --verbos --d"19th May"' + bad argument '' to option --limit + bad argument '=3' to option -f + + options: + date: 08/08/1985 + path: /usr/src/linux + format: "%s" + limit: 8K + verbose: yes + + unknown: + verbos: '' + d: '"19th May"' + diff --git a/_sources/examples/example_15.rst.txt b/_sources/examples/example_15.rst.txt new file mode 100644 index 00000000..3c845766 --- /dev/null +++ b/_sources/examples/example_15.rst.txt @@ -0,0 +1,67 @@ +Strings in binaries +------------------- + +The program below searches all strings starting with double underscore in the given binary file. +The same method can be used to search for arbitrary signatures or keywords. +Since we are dealing with a *binary* file, we cannot use the sentinel method to check for the end of input: +binary files can contain all kinds of characters, so no sentinel can be chosen. +The usual way in such cases is to use ``YYLIMIT``-based checking: it requires padding input with ``YYMAXFILL`` fake characters, +but it's not a problem since the input is buffered anyway. + +However, this exampe takes another approach: +it uses generic API to override the default checking mechanism. +First, it disables the usual mechanism: suppresses the generation of ``YYLESSTHAN`` and ``YYFILL`` with ``re2c:yyfill:enable = 0;`` configuration. +Second, it redefines ``YYSKIP`` to perform checking before advancing to the next input character. +In principle, this approach is less efficient: +checking happens more frequently, as ``YYSKIP`` is invoked on each input character, +while ``YYLESSTHAN`` happens only once per each strongly connected component of automaton. +However, it allows to avoid padding. + +:download:`[binsyms.re] <15_binsyms.i--input(custom).re>` + +.. literalinclude:: 15_binsyms.i--input(custom).re + :language: cpp + :linenos: + +Compile: + +.. code-block:: bash + + $ re2c --input custom -o binsyms.cc binsyms.re + $ g++ -o binsyms binsyms.cc + +Run: + +.. code-block:: bash + + $ ./binsyms binsyms + __gmon_start__ + __libc_start_main + __off_t + __cxx11 + __gnu_cxx3divExx + __off64_t + __pad1 + __pad2 + __pad3 + __pad4 + __pad5 + __compar_fn_t + __gnu_cxx + __init_array_start + __libc_csu_fini + __libc_csu_init + __init_array_end + __GNU_EH_FRAME_HDR + __init_array_end + __init_array_start + __libc_csu_fini + __gmon_start__ + __libc_start_main + __data_start + __TMC_END__ + __dso_handle + __libc_csu_init + __bss_start + + diff --git a/_sources/examples/example_16.rst.txt b/_sources/examples/example_16.rst.txt new file mode 100644 index 00000000..9e0ec572 --- /dev/null +++ b/_sources/examples/example_16.rst.txt @@ -0,0 +1,38 @@ +Fake sentinel +------------- + +This example explores the case when we know the *length* of input, +but there is no terminating character and buffering is not possible. +In such cases we cannot use the usual sentinel method; and we cannot use ``YYLIMIT``-based method as it requires ``YYMAXFILL`` padding. +The choiche then is to use generic API: +disable the default cheching mechanism with ``re2c:yyfill:enable = 0;`` +and use one of the primitives ``YYPEEK`` and ``YYSKIP`` to check for the end of input. + +In this example we use ``YYPEEK`` to emulate *fake sentinel*: +every time the lexer peeks a new character, it first checks for the end of input: +if it has already been reached, ``YYPEEK`` returns ``NULL`` (though the actual string has no terminating ``NULL``). +Checking on every ``YYPEEK`` is less efficient than the usual sentinel method +(which performs no checking at all), but it can be more efficient than copying input to buffer and padding it with a real sentinel character. + +Note that fake sentinel method also relies on the fact that sentinel cannot appear in the middle of well-formed input. +If the input can contain arbitrary characters, then one should utilize ``YYSKIP`` as shown in `this example `_. + +:download:`[fake_sentinel.re] <16_fake_sentinel.i--input(custom).re>` + +.. literalinclude:: 16_fake_sentinel.i--input(custom).re + :language: cpp + :linenos: + +Compile: + +.. code-block:: bash + + $ re2c --input custom -o fake_sentinel.cc fake_sentinel.re + $ g++ -o fake_sentinel fake_sentinel.cc + +Run: + +.. code-block:: bash + + $ ./fake_sentinel somestring + somestring; diff --git a/_sources/examples/example_17.rst.txt b/_sources/examples/example_17.rst.txt new file mode 100644 index 00000000..8d0cd52e --- /dev/null +++ b/_sources/examples/example_17.rst.txt @@ -0,0 +1,32 @@ +std::ifstream +------------- + +This example shows how to override re2c input mechanism: +instead of reading input characters from a buffer in memory, read them directly from file using STL ``std::ifstream`` class. +Note that we use ``tellg`` / ``seekg`` and rely on the ability to move backward and forward in the input stream: +this might not be possible, for example with ``stdin`` stream. +The program below converts Windows-style line endings ``CR LF`` to Unix-style line endings ``LF``. + +This program uses a non-standard way of checking for the end of input: +it disables the usual cheching mechnism with ``re2c:yyfill:enable = 0;`` +(this suppresses the generation of ``YYLESSTHAN`` and ``YYFILL``) +and puts the responsibility for checking on ``YYSKIP``. +This results in more frequent checks: ``YYSKIP`` is happens on each input character, +while ``YYLESSTHAN`` happens only once per each strongly connected component of automaton. +However, this method allows to avoid padding, which would require buffering input and nullify all advantages of direct-file input. + + + +:download:`[ifstream.re] <17_ifstream.i--input(custom).re>` + +.. literalinclude:: 17_ifstream.i--input(custom).re + :language: cpp + :linenos: + +Compile: + +.. code-block:: bash + + $ re2c --input custom -o ifstream.cc ifstream.re + $ g++ -o ifstream ifstream.cc + diff --git a/_sources/examples/examples.rst.txt b/_sources/examples/examples.rst.txt new file mode 100644 index 00000000..904da971 --- /dev/null +++ b/_sources/examples/examples.rst.txt @@ -0,0 +1,20 @@ + +.. toctree:: + :maxdepth: 1 + + Parsing integers with multiple interrelated blocks + Parsing integers with start conditions + Parsing /etc/passwd with tags + Parsing options and arguments with tags + Parsing records and structs with tags + C++98 lexer + Parsing URI (RFC-3986) + Parsing HTTP message headers (RFC-7230) + Parsing Braille patterns with multiple encodings + Finding strings in binaries with generic API + Faking sentinel characted with generic API + Reading from std::ifstream with generic API + +All examples are written in C-90 and in C++98, so they should be portable. +Feel free to `report bugs `_. + diff --git a/_sources/index.rst.txt b/_sources/index.rst.txt new file mode 100644 index 00000000..95b2c3a2 --- /dev/null +++ b/_sources/index.rst.txt @@ -0,0 +1,143 @@ +==== +re2c +==== + +.. toctree:: + :hidden: + + User manual + Build instructions + Release notes + Changelog + +Re2c is a free and open-source lexer generator for C and C++. +The main goal of the project is to generate *very fast* lexers that match or +exceed the speed of carefully optimized hand-written code. Instead of using +traditional table-driven approach, re2c encodes the underlying finite state +automata directly in the form of conditional jumps and applies numerous optimizations to the generated code. +The resulting programs are faster and often smaller than their table-driven counterparts, and they +are much easier to debug and understand. +Re2c has an unusual *flexible user interface*: +instead of assuming a fixed program template, it leaves the definition of +the interface code to the user and allows to configure almost every aspect of the generated +code. This gives the users a lot of freedom in the way they bind the +lexer to their particular environment and allows them to decide on the optimal input model. +Re2c supports *fast and lightweight submatch extraction* +which does not requre the overhead on full parsing --- a feature that is rarely found in the wild. +Re2c is used by many other projects +(such as +`php `_, +`ninja `_, +`yasm `_, +`spamassassin `_, +`BRL-CAD `_ +and `wake `_) +and aims at being fully backward compatible. +On the other hand, it is a research project and a playground for the development of new algorithms in the field of formal grammars and automata. + + +.. |feed| image:: feed/feed/feed.png + :target: feed/atom.xml + :class: feed + :width: 2em + +|feed| `Subscribe `_ to receive the latest news and updates. +See the `user manual `_ for a complete overview with +examples. + +Download +-------- + +You can get the +`latest release `_ on Github, +as well as the `older releases `_ +(make sure you download the latest minor version in each series). +Many Linux distributions and other systems provide their own packages. +Re2c source code is hosted on both Github +(``_) and SourceForge +(``_). +Github serves as the main repository, bugtracker and tarball hosting. +SourceForge is used as a backup repository and email hosting. + +Bugs & patches +-------------- + +Please send bugs reports, patches and other feedback to `github issue tracker +`_ or email them to +`re2c-devel@lists.sourceforge.net `_ and +`re2c-general@lists.sourceforge.net `_ +mailing lists. +Re2c has an IRC channel ``#re2c`` on `freenode `_. +Re2c developers are happy to answer questions and provide help. +Contributions are always welcome! + +Papers +------ + +- `"RE2C: a more versatile scanner generator" + <1994_bumbulis_cowan_re2c_a_more_versatile_scanner_generator.ps>`_ + by Peter Bumbulis and Donald D. Cowan, + ACM Letters on Programming Languages and Systems (LOPLAS), + 1994 + +- `"Tagged Deterministic Finite Automata with Lookahead" + <2017_trofimovich_tagged_deterministic_finite_automata_with_lookahead.pdf>`_ + by Ulya Trofimovich, + arXiv:1907.08837, + 2017 + +- `"Efficient POSIX submatch extraction on NFA" + <2019_borsotti_trofimovich_efficient_posix_submatch_extraction_on_nfa.pdf>`_ + by Angelo Borsotti and Ulya Trofimovich, + 2019 + +Authors +------- + +Re2c was originally written by Peter Bumbulis (peter@csg.uwaterloo.ca) in 1993. +Since then it has been maintained and developed by multiple volunteers, +most notably, +Brian Young (bayoung@acm.org), +Markus Boerger (helly@users.sourceforge.net), +Dan Nuffer (nuffer@users.sourceforge.net) +and Ulya Trofimovich (skvadrik@gmail.com). +Other re2c contributors are +Derick Rethans, +Emmanuel Mogenet, +Hartmut Kaiser, +jcfp, +joscherl, +Mike Gilbert, +Nerd, +nuno-lopes, +Oleksii Taran, +Peter Bumbulis, +Petr Skocik, +Paulo Custodio, +Ross Burton, +Ryan Mast, +Serghei Iakovlev, +Sergei Trofimovich +and Tim Kelly +(apologies if someone is missing). + +License +------- + +Re2c is in the public domain. The data structures and algorithms used +in re2c are all either taken from documents available to the general +public or are inventions of the author. Programs generated by re2c may +be distributed freely. Re2c itself may be distributed freely, in source +or binary, unchanged or modified. Distributors may charge whatever fees +they can obtain for re2c. If you do make use of re2c, or incorporate it into a larger project an +acknowledgement somewhere (documentation, research report, etc.) would +be appreciated. +Re2c is distributed with no warranty whatsoever. +The code is certain to contain errors. +Neither the author nor any contributor takes responsibility for any consequences of its use. + +Version +------- + +This website describes re2c version |version|. + diff --git a/_sources/install/install.rst.txt b/_sources/install/install.rst.txt new file mode 100644 index 00000000..184f6c23 --- /dev/null +++ b/_sources/install/install.rst.txt @@ -0,0 +1,133 @@ +================== +Build instructions +================== + +.. toctree:: + :hidden: + +Dependencies +============ + +Re2c users need only a C++ compiler to build re2c from a release tarball, and +optionally Bash if they want to run the tests. + +Re2c developers also need Autotools, Bison (if they change parser code), rst2man +(if they change documentation), Sphinx (if they change this website), Mingw and +Wine (if they test builds for Windows) and Libtool (if they change the +experimental libre2c library). A few occasional helper scripts are written in +Haskell (but they are not necessary for re2c development). +Re2c is a bootstrapping project with all the consequences. + +Building +======== + +If you are building re2c from repository, *not* from a release tarball, first of +all you should run Autotools: + +.. code-block:: bash + + $ autoreconf -i -W all + +The simplest possible build is an in-tree build (will install re2c to +``$RE2C_PATH`` location): + +.. code-block:: bash + + $ ./configure --prefix=$RE2C_PATH + $ make + $ make install + +Out-of-tree build (puts build artifacts in a separate directory): + +.. code-block:: bash + + $ mkdir $BUILD_DIR + $ cd $BUILD_DIR + $ ../configure --prefix=$RE2C_PATH + $ make + $ make install + +Bootstrapping build (rebuilds re2c with the freshly built re2c and updates +precompiled bootstrap files): + +.. code-block:: bash + + $ make bootstrap + +Building on Windows is more tricky. The best option is to use +`Cygwin `_, or build re2c with `Mingw `_ +(Mingw builds are supported and tested regularly). +For some Mingw versions you might have to use ``-std=gnu++11`` compiler option +to avoid spurious build errors (re2c uses ``-std=c++98`` by default). + +.. code-block:: bash + + $ ./configure --host i686-w64-ming 32 CXXFLAGS="-std=gnu++11" + +To build documentation: + +.. code-block:: bash + + $ ./configure --enable-docs + +To enable debug: + +.. code-block:: bash + + $ ./configure --enable-debug + +To build the experimental libre2c library: + +.. code-block:: bash + + $ ./configure --enable-libs + +Re2c provides a bunch of build scripts ``__build_*.sh`` that can be used +for specialized builds with ``GLIBCXX_DEBUG``, AddressSanitizer, etc. + +Testing +======= + +Re2c has a main test suite and a couple of small unit tests. Run them all: + +.. code-block:: bash + + $ make check + +Run only the main test suite and watch the progress dumped on ``stdout``: + +.. code-block:: bash + + $ ./run_tests.sh -j + +Run the main test suite with ``--skeleton`` re2c option: + +.. code-block:: bash + + $ ./run_tests.sh --skeleton + +Run the test suite under Valgrind (takes some time and memory): + +.. code-block:: bash + + $ make vtests + +Test mingw builds with Wine: + +.. code-block:: bash + + $ make wtests + +Check the distribution: + +.. code-block:: bash + + $ make distcheck + +Re2c provides a helper script ``__alltest.sh`` that builds and tests various +re2c build flavours with ``GLIBCXX_DEBUG``, AddressSanitizer, etc. +There is a couple of fuzz-testing Haskell scripts in the ``fuzz`` subdirectory; +they are based on the QuickCheck library and can be easily modified to fuzz-test +various aspects of re2c by comparing current re2c version against older versions +or against other regular expression libraries. + diff --git a/_sources/manual/dot/example.rst.txt b/_sources/manual/dot/example.rst.txt new file mode 100644 index 00000000..5ae41cbe --- /dev/null +++ b/_sources/manual/dot/example.rst.txt @@ -0,0 +1,16 @@ +Below is an example of generating a picture of DFA that accepts any UTF-8 code point +(``utf8_any.re``): + +.. literalinclude:: /manual/dot/utf8_any.re + :language: cpp + +Generate and render: + +.. code-block:: none + + $ re2c -D -8 utf8_any.re | dot -Tpng -o utf8_any.png + +Here is the picture: + +.. image:: /manual/dot/utf8_any.png + :width: 90% diff --git a/_sources/manual/manual.rst.txt b/_sources/manual/manual.rst.txt new file mode 100644 index 00000000..2d62f4aa --- /dev/null +++ b/_sources/manual/manual.rst.txt @@ -0,0 +1,123 @@ ++++++++++++ +User manual ++++++++++++ + +Syntax +====== +.. include:: /manual/syntax/syntax.rst_ +.. include:: /manual/syntax/example.rst + +Regular expressions +=================== +.. include:: /manual/regexps/regular_expressions.rst_ + +User interface +============== +.. include:: /manual/api/interface.rst_ +.. include:: /manual/api/api.rst_ + +Directives +========== +.. include:: /manual/directives/directives.rst_ + +Options +======= +.. include:: /manual/options/options_list.rst_ + +Configurations +============== +.. include:: /manual/configurations/configurations.rst_ + +EOF handling +============ +.. include:: /manual/eof/eof.rst_ +.. include:: /manual/eof/01_sentinel.rst_ +.. literalinclude:: /manual/eof/01_sentinel.re + :language: c +.. include:: /manual/eof/02_bounds_checking.rst_ +.. literalinclude:: /manual/eof/02_bounds_checking.re + :language: c +.. include:: /manual/eof/03_eof_rule.rst_ +.. literalinclude:: /manual/eof/03_eof_rule.re + :language: c +.. include:: /manual/eof/04_generic_api.rst_ +.. literalinclude:: /manual/eof/04_generic_api.re + :language: c + +Buffer refilling +================ +.. include:: /manual/fill/fill.rst_ +.. include:: /manual/fill/01_fill.rst_ +.. literalinclude:: /manual/fill/01_fill.re + :language: c +.. include:: /manual/fill/02_fill.rst_ +.. literalinclude:: /manual/fill/02_fill.re + :language: c + +Include files +============= +.. include:: /manual/includes/includes.rst_ + +Header files +============ +.. include:: /manual/headers/headers.rst_ + +Submatch extraction +=================== +.. include:: /manual/submatch/submatch.rst_ +.. include:: /manual/submatch/submatch_example_stags.rst_ +.. literalinclude:: /manual/submatch/stags.re + :language: c +.. include:: /manual/submatch/submatch_example_posix.rst_ +.. literalinclude:: /manual/submatch/posix.re + :language: c +.. include:: /manual/submatch/submatch_example_mtags.rst_ +.. literalinclude:: /manual/submatch/mtags.re + :language: cpp + +Storable state +============== +.. include:: /manual/state/state.rst_ +.. literalinclude:: /manual/state/push.re + :language: c + +Reusable blocks +=============== +.. include:: /manual/reuse/reuse.rst_ +.. literalinclude:: /manual/reuse/reuse.re + :language: c + +Encoding support +================ +.. include:: /manual/encodings/encodings.rst_ + +Start conditions +================ +.. include:: /manual/conditions/conditions.rst_ + +Skeleton programs +================= +.. include:: /manual/skeleton/skeleton.rst_ +.. include:: /manual/skeleton/skeleton_example.rst + +Visualization and debug +======================= +.. include:: /manual/dot/dot.rst_ +.. include:: /manual/dot/example.rst + +Warnings +======== +.. include:: /manual/warnings/warnings_general.rst_ +.. include:: /manual/warnings/warnings_list.rst_ +.. include:: /manual/warnings/undefined_control_flow/wundefined_control_flow.rst +.. include:: /manual/warnings/unreachable_rules/wunreachable_rules.rst +.. include:: /manual/warnings/condition_order/wcondition_order.rst +.. include:: /manual/warnings/useless_escape/wuseless_escape.rst +.. include:: /manual/warnings/swapped_range/wswapped_range.rst +.. include:: /manual/warnings/empty_character_class/wempty_character_class.rst +.. include:: /manual/warnings/match_empty_string/wmatch_empty_string.rst +.. include:: /manual/warnings/sentinel_in_midrule/wsentinel_in_midrule.rst + +More examples +============= +.. include:: /examples/examples.rst diff --git a/_sources/manual/skeleton/skeleton_example.rst.txt b/_sources/manual/skeleton/skeleton_example.rst.txt new file mode 100644 index 00000000..91d71f21 --- /dev/null +++ b/_sources/manual/skeleton/skeleton_example.rst.txt @@ -0,0 +1,77 @@ + +Here is an example of a very simple program +:download:`[example.re] ` +that tries to match two-digit hexadecimal numbers: + +.. literalinclude:: /manual/skeleton/example.re.txt + :language: c + +We can see the generated DFA using ```re2c -D example.re | dot -Grankdir=LR -Tpng -o example.png```: + +.. image:: /manual/skeleton/example.png + :width: 60% + +Given this program, ```re2c -S -o example.c example.re``` generates three files: +``example.c`` (main program), ``example.c.line4.input`` (input data) and ``example.c.line4.keys`` (expected match results). +First, let's look at the generated strings +:download:`[example.c.line4.input] `: + +.. code-block:: none + + $ hexdump -v -e '"%08_ax " 24/1 "%02x "' -e '" |" 24/1 "%_p" "|\n"' example.c.line4.input + 00000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 |........................| + 00000018 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f |........ !"#$%&'()*+,-./| + 00000030 3a 3b 3c 3d 3e 3f 40 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 |:;<=>?@GHIJKLMNOPQRSTUVW| + [ ... ] + +Byte sequences correspond to the paths in DFA. +All strings are glued together, so it's hard to tell where is the end of one string and the beginning of another. +For that re2c generates keys :download:`[example.c.line4.keys] `: + +.. code-block:: none + + $hexdump -v -e '"%08_ax " 36/1 "%02x " "\n"' example.c.line4.keys + 00000000 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe + 00000024 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe + 00000048 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe + [ ... ] + +A key is a triplet: string length, the length of matching prefix and the number of matching rule. +(If tags are used, there is an additional key per each tag variable). +Keys are packed into an array. +In our case each key fits into 1 byte, but in case of a larger DFA they might take 2 or 4 bytes. +The generated program :download:`[example.c] ` +contains two auxilary functions: ``read_file`` and ``action_line4``. +``read_file`` is used to map ``.input`` and ``.keys`` files into memory (this function is shared between all lexers). +``action_line4`` is a replacement for actions: it compares actual lexing results with the expected results. +This function is specific to each lexer. +Lexing is done by ``lex_line4``: this function contains the generated DFA. +The skeleton program is self-contained, so we can compile and run it: + +.. code-block:: none + + $ cc -o example example.c + $ ./example + $ echo $? + 0 + +When everything is fine (there are no errors) the program outputs nothing and +exits with zero. For the sake of example, let's pretend that re2c has an error +that results in a missing ``case`` statement: + +.. code-block:: bash + + $ re2c -S -o example.c example.re + $ sed -i -e "s/case '7'://" example.c + $ cc -o example example.c + $ ./example + error: lex_line4: at position 248 (iteration 241): + expected: match length 2, rule 0 + actual: match length 1, rule 254 + +Viola! Now the lexer complains about discrepancy between expected and actual +match results. + +One special case of failure detected by skeleton programs is undefined control +flow in the lexer. Use ``-Wundefined-control-flow`` warning to catch all such +cases in in your code (more details `here `_). diff --git a/_sources/manual/syntax/example.rst.txt b/_sources/manual/syntax/example.rst.txt new file mode 100644 index 00000000..e25bd16f --- /dev/null +++ b/_sources/manual/syntax/example.rst.txt @@ -0,0 +1,19 @@ +A basic example +--------------- + +Here is an example program :download:`[syntax.re] ` +that shows various aspects of re2c syntax: + +.. literalinclude:: /manual/syntax/syntax.re + :language: cpp + +Run re2c as ``re2c -W syntax.re -o syntax.c`` (option ``-W`` enables warnings). +The generated code :download:`[syntax.c] ` +looks like this: + +.. literalinclude:: /manual/syntax/syntax.c.txt + :language: c + +The lines without comments correspond to the code generated by re2c. Not all +comments are present in the output --- only those which are in C/C++ code, and +not inside of re2c blocks. diff --git a/_sources/manual/warnings/condition_order/wcondition_order.rst.txt b/_sources/manual/warnings/condition_order/wcondition_order.rst.txt new file mode 100644 index 00000000..7ab928d6 --- /dev/null +++ b/_sources/manual/warnings/condition_order/wcondition_order.rst.txt @@ -0,0 +1,81 @@ +[-Wcondition-order] +------------------- + +Some older re2c programs that use ``-c --conditions`` option rely on a fixed +condition order instead of using ``/*!types:re2c*/`` directive or the +``-t --type-header`` option. This is incorrect and dangerous, as demonstrated by +the following example :download:`[fixorder.re] +`. In this example +the lexer has two conditions: ``a`` and ``b``. It starts in condition ``a``, +which expects a sequence of letters ``a`` followed by a comma. The comma causes +transition to condition ``b``, which expects a sequence of letters ``b`` +followed by an exclamation mark. Anything other input is an error. Nothing +special, except that condition numbers are hardcoded manually (the mapping of +conditions to numbers is toggled by ``REVERSED_CONDITION_ORDER`` define). + +.. literalinclude:: /manual/warnings/condition_order/fixorder.re.txt + :language: cpp + :linenos: + +Let's compile and run it. +Everything works fine: we get ``aaaa,bbb!`` in both cases. + +.. code-block:: none + + $ re2c -c -o fixorder.c -Wcondition-order fixorder.re + $ + $ c++ -o fixorder fixorder.c && ./fixorder + aaaa,bbb! + $ + $ c++ -o fixorder fixorder.c -DREVERSED_CONDITION_ORDER && ./fixorder + aaaa,bbb! + +However, if we use the ``-s`` re2c option, the lexer becomes sensitive to condition order: + +.. code-block:: none + + $ re2c -cs -o fixorder.c -Wcondition-order fixorder.re + fixorder.re:31:6: warning: looks like you use hardcoded numbers instead of autogenerated condition names: + better add '/*!types:re2c*/' directive or '-t, --type-header' option and don't rely on fixed condition order. [-Wcondition-order] + $ + $ c++ -o fixorder fixorder.c && ./fixorder + aaaa,bbb! + $ + $ c++ -o fixorder fixorder.c -DREVERSED_CONDITION_ORDER && ./fixorder + error + +And we get a warning from re2c. The same behavior remains if we use ``-g`` or +``-b`` option. Why is that? A look at the generated code explains everything. +By default the initial dispatch on conditions is a ``switch`` statement: + +.. code-block:: cpp + + switch (c) { + case yyca: goto yyc_a; + case yycb: goto yyc_b; + } + +Dispatch uses explicit condition names and works no matter what numbers are assigned to them. +However, with the ``-s`` option, re2c generates an ``if`` statement instead of a ``switch``: + +.. code-block:: cpp + + if (c < 1) { + goto yyc_a; + } else { + goto yyc_b; + } + +And with the ``-g`` option, it uses a jump table (computed ``goto``): + +.. code-block:: cpp + + static void *yyctable[2] = { + &&yyc_a, + &&yyc_b, + }; + goto *yyctable[c]; + +The last two cases are sensitive to condition order. The fix is easy: as the +warning suggests, use the ``/*!types:re2c*/`` directive or the +``-t, --type-header`` option. diff --git a/_sources/manual/warnings/empty_character_class/wempty_character_class.rst.txt b/_sources/manual/warnings/empty_character_class/wempty_character_class.rst.txt new file mode 100644 index 00000000..4fa95f4c --- /dev/null +++ b/_sources/manual/warnings/empty_character_class/wempty_character_class.rst.txt @@ -0,0 +1,35 @@ +[-Wempty-character-class] +-------------------------- + +This warning is complementary to the +``--empty-class `` option. +For bakward compatibility reasons the default is ``match-empty``: empty +character class ``[]`` matches empty string (that is, it always matches without +consuming any input). This behaviour doesn't make much sense, therefore re2c +provides a warning ``-Wempty-character-class``. +Note that empty character class can be constructed in many ways, for example as +a result of range negation or the difference operator. The code below (empty.re) +demonstrates some of the possibilities: + +.. code-block:: cpp + :linenos: + + /*!re2c + [] { return 0; } + [^\x00-\xFF] { return 1; } + [^] \ [^] { return 2; } + [abc] \ ("a" | "b" | "c") { return 3; } + "a" \ [a-z] { return 4; } + */ + +Re2c gives the following warnings: + +.. code-block:: none + + $ re2c -Wempty-character-class empty.re -o empty.c + empty.re:2:4: warning: empty character class [-Wempty-character-class] + empty.re:3:4: warning: empty character class [-Wempty-character-class] + empty.re:4:4: warning: empty character class [-Wempty-character-class] + empty.re:5:4: warning: empty character class [-Wempty-character-class] + empty.re:6:4: warning: empty character class [-Wempty-character-class] + diff --git a/_sources/manual/warnings/match_empty_string/wmatch_empty_string.rst.txt b/_sources/manual/warnings/match_empty_string/wmatch_empty_string.rst.txt new file mode 100644 index 00000000..c4e9a9b7 --- /dev/null +++ b/_sources/manual/warnings/match_empty_string/wmatch_empty_string.rst.txt @@ -0,0 +1,45 @@ +[-Wmatch-empty-string] +-------------------------- + +``[-Wmatch-empty-string]`` warns when a rule is nullable (matches an empty +string). It was intended to prevent infinite looping in cases like the +:download:`[hang.re] ` +example below. The program loops over its arguments (the outer ``for`` loop) +and tries to lex each argument (the inner ``for`` loop). The lexer stops when +all input has been consumed and it sees the terminating ``NULL``. Arguments must +consist of lowercase letters only. + +.. literalinclude:: /manual/warnings/match_empty_string/hang.re + :language: cpp + :linenos: + +On well-formed input the program runs as expected. However, if one of the +arguments contains a symbol diffrerent from lowercase letter, the program hangs +forever: + +.. code-block:: none + + $ re2c -Wmatch-empty-string hang.re -o hang.c + hang.re:11:19: warning: rule matches empty string [-Wmatch-empty-string] + $ c++ -o hang hang.c + $ + $ ./hang only lowercase letters + argv[1]: only + argv[2]: lowercase + argv[3]: letters + $ + $ ./hang right ? + argv[1]: right + ^C + +Note that if we add default rule ``*``, the lexer won't hang anymore: it will +match the default rule instead of the nullable rule. The fix is easy: make the +rule non-nullable (say, ``[a-z]+``) and add default rule ``*``. + +In some cases matching an empty string makes perfect sense: for example, it +might be used as a non-consuming default rule, or it might be used to lex an +optional lexeme (if the corresponding rule doesn't match, the lexer jumps to +another block and resumes lexing at the same input position). All these cases +are valid, so if ``[-Wmatch-empty-string]`` becomes annoying, it can be silenced +with ``[-Wno-match-empty-string]``. + diff --git a/_sources/manual/warnings/sentinel_in_midrule/wsentinel_in_midrule.rst.txt b/_sources/manual/warnings/sentinel_in_midrule/wsentinel_in_midrule.rst.txt new file mode 100644 index 00000000..bc0c542b --- /dev/null +++ b/_sources/manual/warnings/sentinel_in_midrule/wsentinel_in_midrule.rst.txt @@ -0,0 +1,84 @@ +[-Wsentinel-in-midrule] +----------------------- + +When using sentinel method of checking for the end of input, it is easy to +forget that the sentinel symbol must not be allowed in the middle of the rule. +For example, the following code tries to match single-quoted strings. It allows +any character except the single quote to occur in the string, including +terminating ``NULL``. As a result, the generated lexer works as expected on +well-formed input like ``'aaa'\0``, but things go wrong on ill-formed input like +``'aaa\0`` (where the closing single quote is missing). Lexer reaches the +terminating ``NULL`` and assumes it is a part of the single-quoted string, so +it continues reading bytes from memory. Eventually the lexer terminates due to +memory access violation, or worse --- it accidentally hits a single quote and +assumes this to be the end of the string. + +.. code-block:: cpp + :linenos: + + #include + + int lex(const char *YYCURSOR) + { + /*!re2c + re2c:define:YYCTYPE = char; + re2c:yyfill:enable = 0; + ['] [^']* ['] { return 0; } + * { return 1; } + */ + } + + int main() + { + assert(lex("'good'") == 0); + assert(lex("'bad") == 1); + return 0; + } + +On this code re2c reports a warning. It cannot be certain that ``NULL`` is the sentinel +symbol, but this is by far the most common case. + +.. code-block:: none + + $ re2c -Wsentinel-in-midrule example.re -oexample.c + example.re:9:18: warning: sentinel symbol 0 occurs in the middle of the rule + (note: if a different sentinel symbol is used, specify it with 're2c:sentinel' configuration) [-Wsentinel-in-midrule] + +However, re2c suggests us to define the sentinel symbol using ``re2c:sentinel`` +configuration. Let's do it. + +.. code-block:: cpp + :linenos: + + #include + + int lex(const char *YYCURSOR) + { + /*!re2c + re2c:define:YYCTYPE = char; + re2c:yyfill:enable = 0; + re2c:sentinel = 0; + ['] [^']* ['] { return 0; } + * { return 1; } + */ + } + + int main() + { + assert(lex("'good'") == 0); + assert(lex("'bad") == 1); + return 0; + } + +The warning has turned into an error, as re2c is now certain that the code +contains an error. + +.. code-block:: none + + $ re2c -Wsentinel-in-midrule example.re -oexample.c + example.re:10:18: error: sentinel symbol 0 occurs in the middle of the rule [-Werror-sentinel-in-midrule] + +The code can be fixed by excluding ``NULL`` from the set of symbols allowed in +the middle of the string: ``['] [^'\x00]* [']``. If it is necessary to allow +all symbols, a more powerful EOF handling method should be used. + diff --git a/_sources/manual/warnings/swapped_range/wswapped_range.rst.txt b/_sources/manual/warnings/swapped_range/wswapped_range.rst.txt new file mode 100644 index 00000000..d215060e --- /dev/null +++ b/_sources/manual/warnings/swapped_range/wswapped_range.rst.txt @@ -0,0 +1,26 @@ +[-Wswapped-range] +-------------------------- + +``-Wswapped-range`` warning is reported in cases when a character class contains +a range which lower bound is greater than the upper bound. For some strange +reason older versions of re2c did not consider this an error and silently +swapped range bounds. Consider the following example (swapped.re): + +.. code-block:: cpp + :linenos: + + /*!re2c + * { return "*"; } + [a-Z] { return "is it what you wanted?"; } + */ + +Re2c interprets this code as ``[Z-a]``, but generates a warning: + +.. code-block:: none + + $ re2c -Wswapped-range swapped.re -o swapped.c + swapped.re:3:5: warning: range lower bound (0x61) is greater than upper bound (0x5A), swapping [-Wswapped-range] + +Use ``[-Werror-swapped-range]`` to make it an error. + + diff --git a/_sources/manual/warnings/undefined_control_flow/wundefined_control_flow.rst.txt b/_sources/manual/warnings/undefined_control_flow/wundefined_control_flow.rst.txt new file mode 100644 index 00000000..a815e38c --- /dev/null +++ b/_sources/manual/warnings/undefined_control_flow/wundefined_control_flow.rst.txt @@ -0,0 +1,85 @@ +[-Wundefined-control-flow] +-------------------------- + +.. toctree:: + :hidden: + +With ``-Wundefined-control-flow`` warning re2c checks that every path in the +generated DFA contains at least one accepting state. When the input matches +such a path, lexer will eventually stop and execute the corresponding semantic +action. However, if some path has no accepting state, then lexer behavior is +undefined: it may loop forever, or read past the end of buffer, or jump to some +other semantic action by accident. For example, consider this simple piece of +code (a.re) that is supposed to match letter ``a``: + +.. code-block:: cpp + :linenos: + + /*!re2c + "a" { return 'a'; } + */ + +The generated code looks like this: + +.. code-block:: cpp + :linenos: + + { + YYCTYPE yych; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch (yych) { + case 'a': goto yy3; + default: goto yy2; + } + yy2: + yy3: + ++YYCURSOR; + { return 'a'; } + } + +Clearly this is not what we want: this code matches any letter, not just ``a``! +This happens because we did not specify any handler for the remaining input symbols. +If we run re2c with ``-Wundefined-control-flow``, we will see that it complains about undefined control flow and recommends using default rule ``*``: + +.. code-block:: none + + a.re:3:2: warning: control flow is undefined for strings that match '[\x0-\x60\x62-\xFF]', use the default '*' rule [-Wundefined-control-flow] + +Let's follow the advice and change the code: + +.. code-block:: cpp + :linenos: + + /*!re2c + * { return '*'; } + "a" { return 'a'; } + */ + +Now the generated code looks much better: + +.. code-block:: cpp + :linenos: + + { + YYCTYPE yych; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch (yych) { + case 'a': goto yy4; + default: goto yy2; + } + yy2: + ++YYCURSOR; + { return '*'; } + yy4: + ++YYCURSOR; + { return 'a'; } + } + +Note that the default rule brings no overhead: it simply binds code to the +default label. It should always be used, unless you are absolutely sure that +your grammar covers all possible cases. + +.. include:: /manual/warnings/undefined_control_flow/default_vs_any.rst + diff --git a/_sources/manual/warnings/unreachable_rules/wunreachable_rules.rst.txt b/_sources/manual/warnings/unreachable_rules/wunreachable_rules.rst.txt new file mode 100644 index 00000000..fbb17526 --- /dev/null +++ b/_sources/manual/warnings/unreachable_rules/wunreachable_rules.rst.txt @@ -0,0 +1,57 @@ +[-Wunreachable-rules] +-------------------------- + +Sometimes the input grammar contains rules that will never match. This can +happen for two reasons. First, some rules may be shadowed by other rules that +match the same input, but have higher priority. Second, the rule itself may be +infinitely greedy: it may consume as many input characters as it can get and +never stop, and as a result never match. Both cases indicate a problem with +the grammar, and ``-Wunreachable-rules`` detects and reports such rules. + +Let's see an example of the first kind: shadowed rules (shadowed.re). + +.. code-block:: cpp + :linenos: + + /*!re2c + "" { return ""; } + * { return "*"; } + "a" | "b" { return "a | b"; } + "a" { return "a"; } + [\x00-\xFF] { return "[0 - 0xFF]"; } + [^] { return "[^]"; } + */ + +In this example the empty rule ``""`` never matches, because any single code +unit is matched by other rules, which take precedence due to the longerst match. +Rule ``"a"`` is shadowed by rule ``"a" | "b"``, which also matches ``a``, but +takes precedence because it comes first. Similarly, rule ``[^]`` is shadowed by +rule ``[\x00-\xFF]``. Default rule ``*`` is also shadowed, but it's an exception +that is not reported (default case should always be handled). Shadowed rules +normally do not appear in the generated code: re2c removes them during its dead +code elimination pass. + +.. code-block:: none + + $ re2c -Wunreachable-rules shadowed.re -o shadowed.c + shadowed.re:2:16: warning: unreachable rule (shadowed by rules at lines 4, 6) [-Wunreachable-rules] + shadowed.re:5:16: warning: unreachable rule (shadowed by rule at line 4) [-Wunreachable-rules] + shadowed.re:7:16: warning: unreachable rule (shadowed by rules at lines 4, 6) [-Wunreachable-rules] + +Now let's see an example of second kind: infinitely greedy rule (greedy.re). + +.. code-block:: cpp + :linenos: + + /*!re2c + [^]* { return "greeedy"; } + */ + +This rule will continue eating input characters until ``YYFILL`` fails, or until +it reads past the end of buffer and causes memory access violation. + +.. code-block:: none + + $ re2c -Wunreachable-rules greedy.re -o greedy.c + greedy.re:2:9: warning: unreachable rule [-Wunreachable-rules] + diff --git a/_sources/manual/warnings/useless_escape/wuseless_escape.rst.txt b/_sources/manual/warnings/useless_escape/wuseless_escape.rst.txt new file mode 100644 index 00000000..dcc95b55 --- /dev/null +++ b/_sources/manual/warnings/useless_escape/wuseless_escape.rst.txt @@ -0,0 +1,77 @@ +[-Wuseless-escape] +-------------------------- + +Sometimes people escape characters that don't need to be escaped --- either +because they (mistakenly) think that the character is special and must be +escaped in the given context, or because they think that this escape sequence +means something (when it actually doesn't), or just by pure accident. With +``-Wuseless-escape`` option re2c warns about ignored escapes. Consider this +example (escapes.re): + +.. code-block:: cpp + :linenos: + + /*!re2c + * {} + "\a\A\"\'\[\]\-\x5d\377" {} + '\a\A\"\'\[\]\-\x5d\377' {} + [\a\A\"\'\[\]\-\x5d\377] {} + */ + +Re2c reports a bunch of warnings: + +.. code-block:: none + + $ re2c -Wuseless-escape escapes.re -o escapes.c + escapes.re:3:7: warning: escape has no effect: '\A' [-Wuseless-escape] + escapes.re:3:11: warning: escape has no effect: '\'' [-Wuseless-escape] + escapes.re:3:13: warning: escape has no effect: '\[' [-Wuseless-escape] + escapes.re:3:15: warning: escape has no effect: '\]' [-Wuseless-escape] + escapes.re:3:17: warning: escape has no effect: '\-' [-Wuseless-escape] + escapes.re:4:7: warning: escape has no effect: '\A' [-Wuseless-escape] + escapes.re:4:9: warning: escape has no effect: '\"' [-Wuseless-escape] + escapes.re:4:13: warning: escape has no effect: '\[' [-Wuseless-escape] + escapes.re:4:15: warning: escape has no effect: '\]' [-Wuseless-escape] + escapes.re:4:17: warning: escape has no effect: '\-' [-Wuseless-escape] + escapes.re:5:7: warning: escape has no effect: '\A' [-Wuseless-escape] + escapes.re:5:9: warning: escape has no effect: '\"' [-Wuseless-escape] + escapes.re:5:11: warning: escape has no effect: '\'' [-Wuseless-escape] + escapes.re:5:13: warning: escape has no effect: '\[' [-Wuseless-escape] + +This is because the ``\A`` and ``\[`` escapes are meaningless in all rules, +``\-`` makes sense only in a character class, +and each type of closing quotes (``"``, ``'`` and ``]``) should only be escaped inside of a string delimited with the same quotes. +Useless escapes are ignored: the escaped symbol is treated as not escaped (``\A`` becomes ``A``, etc.). +The above example should be fixed as follows: + +.. code-block:: cpp + :linenos: + + /*!re2c + * {} + "\aA\"'[]-\x5d\377" {} + '\aA"\'[]-\x5d\377' {} + [\aA"'[\]\-\x5d\377] {} + */ + +More generally, re2c recognizes escapes in the following lexemes: + +* double-quoted strings ``" ... "`` +* single-quoted strings ``' ... '`` +* character classes ``[ ... ]`` and ``[^ ... ]`` + +The following escapes are recognized: + +* Closing quotes (``\"`` for double-quoted strings, ``\'`` for single-quoted strings, and ``\]`` for character classes). +* Dash ``\-`` in character classes. +* Octal escapes: ``\ooo``, where ``o`` is in range ``[0 - 7]`` + (the largest octal escape is ``\377``, which equals ``0xFF``). +* Hexadecimal escapes: ``\xhh``, ``\Xhhhh``, ``\uhhhh``, and ``\Uhhhhhhhh``, + where ``h`` is in range ``[0 - 9]``, ``[a - f]``, or ``[A - F]``. +* Miscellaneous escapes: ``\a``, ``\b``, ``\f``, ``\n``, ``\r``, ``\t``, ``\v``, ``\\``. + +Ill-formed octal and hexadecimal escapes are treated as errors. +An escape followed by a newline is also an error: multiline strings and character classes are not allowed. +Any other ill-formed escapes are ignored. + + diff --git a/_sources/releases/articles/submatch_challenge.rst.txt b/_sources/releases/articles/submatch_challenge.rst.txt new file mode 100644 index 00000000..a4eac92c --- /dev/null +++ b/_sources/releases/articles/submatch_challenge.rst.txt @@ -0,0 +1,153 @@ +Fast submatch extraction +======================== + +*by Ulya Trofimovich* + + +This article is an informal description +of the `novel algorithm <../../2017_trofimovich_tagged_deterministic_finite_automata_with_lookahead.pdf>`_ +used in `re2c-1.0 <../release_notes/1_0.html>`_ +to implement `submatch extraction <../../manual/features/submatch/submatch.html>`_. +It tries to explain what is it so complex about this seemingly simple problem, +why re2c has such a strange interface, +and how *tags* are related to the familiar *capturing groups* used by other regular expression engines. + + + +Introduction +------------ + +*Regular expressions* is a syntactic notation for describing *sets*. +Usually it is assumed that these sets contain strings --- sequences of characters over some fixed alphabet. +This is known as the *language interpretation* of regular expressions. +For example, :math:`a^*b^*` denotes language :math:`L` that contains all strings +composed by a sequence of :math:`a` followed by a sequence of :math:`b`. +Special symbol :math:`\epsilon` means "empty string": + +.. math:: + + L(a^*b^*) = \{\epsilon, a, b, aa, ab, bb, ...\} + +Regular expressions is one possible way of describing *regular languages* --- +the class of languages generated by Type 3 grammars in the Chomsky hierarchy. +For every regular expression there is an equivalent Type 3 grammar that generates the same language and vice versa. +For example, the above language :math:`L` can be generated by the grammar :math:`G = (V_T, V_N, R, S)`: + +.. math:: + + \text{alphabet of terminals:} &\quad V_T = \{ a, b \} \\ + \text{alphabet of non-terminals:} &\quad V_N = \{ A, B \} \\ + \text{production rules:} &\quad R = \{ + A \rightarrow aA | bB | a | b | \epsilon, + B \rightarrow bB | b + \} \\ + \text{start symbol:} &\quad S = A + + +It is often said that regular expressions are used for *matching* strings. +But what exactly is matching? +In the narrow sense of the word it means *recognition*: +deciding if the given string belongs to the language denoted by the regular expression. +For example, :math:`aaabb \in L`, but :math:`aba \not\in L`. +In the broad sense of the word matching means *parsing*: +besides solving the membership problem +it is also necessary to find the *derivation* --- the sequence of grammar rules that transform start symbol into the input string. +Derivation gives more information than a simple membership test +because it reconstructs the *structure* of the input string. +For example, :math:`aaabb` is derived as follows in the grammar :math:`G`: + +.. math:: + + A + \rightarrow aA + \rightarrow aaA + \rightarrow aaaA + \rightarrow aaabB + \rightarrow aaabb + + +There is no exact analogue of "derivation" in terms of regular expressions, +as their primary application is recognition, not parsing. +Yet sometimes it is convenient to know which part of the input string +corresponds to a particular part of the regular expression --- +the problem known as *submatch extraction*. +In our example one might want to know the substrings corresponding to :math:`a^*` and :math:`b^*`; +this is usually denoted with the help of *capturing parentheses*: :math:`(a^*)(b^*)`. +Submatch extraction is similar to parsing: +in order to find submatch boundaries we need to know a bit of the input structure. +However, unlike parsing, there is no need to reconstruct the full structure down to each character. + +.. math:: + + \underbrace{aaa}_{a^*} \underbrace{bb}_{b^*} + +Recognition problem can be solved by converting the regular expression to a *nondeterministic finite automaton* (NFA) +or an equivalent *deterministic finite automaton* (DFA). +Parsing and submatch extraction are inherently more complex than recognition, +and they require a more complex type of automata: *nondeterministic finite state transducers* (NFST). +Unlike NFA, NFST are strictly more powerful than their deterministic analogues (DFST): +it is possible to perform determinization, but the resulting automaton is of a more sophisticated type than DFST. + + +Recognition +----------- + +.. image:: nfa_simple.png + +aaaa + +.. image:: nfa.png + +aaaa + +.. image:: dfa_raw.png + +aaaaa + +.. image:: dfa.png + +aaaa + +.. image:: dfa_min.png + +Recognition problem can be solved by converting the regular expression to a *nondeterministic finite automaton* (NFA) +and simulating NFA moves on the input string. +Simulation takes linear time, but since the automaton is nondeterministic, +it is necessary to track many possible paths simultaneously. +Alternatively, one can convert NFA to an equivalent *deterministic finite automaton* (DFA), +which also runs in linear time, but is much faster then NFA --- there is only one possible path to track. +The *determinization* procedure is quite complex; +in the worst case it may take exponential time and generate a very large DFA. +Therefore determinization is only worthwile +if it can be performed ahead of time (in lexer generators like re2c), +or if the same regular expression is used multiple times. +Some engines try to get the best of both worlds by using *lazy determinization*: +NFA simulation with memoization of all intermediate states. + + + +In terms of NFA "derivation" means "path", +and parsing means finding this path --- a chain of transitions from initial state to final state which spells the input string. +This cannot be done by the means of traditional NFA, +as the only output they produce is a yes/no answer: +simulation either ends in a final state or not. +In order to remember the path automaton must be able to record its moves. +Such automata are known as *nondeterministic finite state transducers* (NFST): +they are like ordinary NFA extended with an output tape +and transitions that not only read symbols from the input string, but also write symbols on the output tape. +Unlike NFA, NFST cannot be always converted to DFST: nondeterminisitc transducers are strictly more powerful. +However, it is possible to turn NFST into a more complex type of determinisitc automata. +Devising and constructing such automata is the main challenge of parsing and submatch extraction. + + +The difficulty with DFA +----------------------- + + + +Dangerous trailing contexts +--------------------------- + + +The challenge of implementing submatch extraction in lexer generators like re2c is not immediately obvious. + diff --git a/_sources/releases/changelog/changelog.rst.txt b/_sources/releases/changelog/changelog.rst.txt new file mode 100644 index 00000000..ade541f9 --- /dev/null +++ b/_sources/releases/changelog/changelog.rst.txt @@ -0,0 +1,1109 @@ +Changelog +========= + +---- +1.2x +---- + +1.2.1 (2019-08-11) +~~~~~~~~~~~~~~~~~~ + +- Fixed bug `#253 `_: + re2c should install unicode_categories.re somewhere. + +- Fixed bug `#254 `_: + Turn off re2c:eof = 0. + +1.2 (2019-08-02) +~~~~~~~~~~~~~~~~ + +- Added EOF rule ``$`` and configuration ``re2c:eof``. + +- Added ``/*!include:re2c ... */`` directive and ``-I`` option. + +- Added ``/*!header:re2c:on*/`` and ``/*!header:re2c:off*/`` directives. + +- Added ``--input-encoding `` option. + + + `#237 `_: + Handle non-ASCII encoded characters in regular expressions + + `#250 `_ + UTF8 enoding + +- Added include file with a list of definitions for Unicode character classes. + + + `#235 `_: + Unicode character classes + +- Added ``--location-format `` option. + + + `#195 `_: + Please consider using Gnu format for error messages + +- Added ``--verbose`` option that prints "success" message if re2c exits + without errors. + +- Added configurations for options: + + + ``-o --output`` (specify output file) + + ``-t --type-header`` (specify header file) + +- Removed configurations for internal/debug options. + +- Extended ``-r`` option: allow to mix multiple ``/*!rules:re2c*/``, + ``/*!use:re2c*/`` and ``/*!re2c*/`` blocks. + + + `#55 `_: + allow standard re2c blocks in reuse mode + +- Fixed ``-F --flex-support`` option: parsing and operator precedence. + + + `#229 `_: + re2c option -F (flex syntax) broken + + `#242 `_: + Operator precedence with --flex-syntax is broken + +- Changed difference operator ``/`` to apply before encoding expansion of + operands. + + + `#236 `_: + Support range difference with variable-length encodings + +- Changed output generation of output file to be atomic. + + + `#245 `_: + re2c output is not atomic + +- Authored research paper "Efficient POSIX Submatch Extraction on NFA" + together with Dr Angelo Borsotti. + +- Added experimental libre2c library (``--enable-libs`` configure option) with + the following algorithms: + + + TDFA with leftmost-greedy disambiguation + + TDFA with POSIX disambiguation (Okui-Suzuki algorithm) + + TNFA with leftmost-greedy disambiguation + + TNFA with POSIX disambiguation (Okui-Suzuki algorithm) + + TNFA with lazy POSIX disambiguation (Okui-Suzuki algorithm) + + TNFA with POSIX disambiguation (Kuklewicz algorithm) + + TNFA with POSIX disambiguation (Cox algorithm) + +- Added debug subsystem (``--enable-debug`` configure option) and new debug + options: + + + ``-dump-cfg`` (dump control flow graph of tag variables) + + ``-dump-interf`` (dump interference table of tag variables) + + ``-dump-closure-stats`` (dump epsilon-closure statistics) + +- Added internal options: + + + ``--posix-closure `` (switch between shortest-path algorithms + used for the construction of POSIX closure) + +- Fixed a number of crashes found by American Fuzzy Lop fuzzer: + + + `#226 `_, + `#227 `_, + `#228 `_, + `#231 `_, + `#232 `_, + `#233 `_, + `#234 `_, + `#238 `_ + +- Fixed handling of newlines: + + + correctly parse multi-character newlines CR LF in ``#line`` directives + + consistently convert all newlines in the generated file to Unix-style LF + +- Changed default tarball format from .gz to .xz. + + + `#221 `_: + big source tarball + +- Fixed a number of other bugs and resolved issues: + + + `#2 `_: abort + + `#6 `_: segfault + + `#10 `_: + lessons/002_upn_calculator/calc_002 doesn't produce a useful example program + + `#44 `_: + Access violation when translating the attached file + + `#49 `_: + wildcard state \000 rules makes lexer behave weard + + `#98 `_: + Transparent handling of #line directives in input files + + `#104 `_: + Improve const-correctness + + `#105 `_: + Conversion of pointer parameters into references + + `#114 `_: + Possibility of fixing bug 2535084 + + `#120 `_: + condition consisting of default rule only is ignored + + `#167 `_: + Add word boundary support + + `#168 `_: + Wikipedia's article on re2c + + `#180 `_: + Comment syntax? + + `#182 `_: + yych being set by YYPEEK () and then not used + + `#196 `_: + Implicit type conversion warnings + + `#198 `_: + no match for ‘operator!=’ in ‘i != std::vector<_Tp, _Alloc>::rend() [with _Tp = re2c::bitmap_t, _Alloc = std::allocator]()’ + + `#210 `_: + How to build re2c in windows? + + `#215 `_: + A memory read overrun issue in s_to_n32_unsafe.cc + + `#220 `_: + src/dfa/dfa.h: simplify constructor to avoid g++-3.4 bug + + `#223 `_: + Fix typo + + `#224 `_: + src/dfa/closure_posix.cc: pack() tweaks + + `#225 `_: + Documentation link is broken in libre2c/README + + `#230 `_: + Changes for upcoming Travis' infra migration + + `#239 `_: + Push model example has wrong re2c invocation, breaks guide + + `#241 `_: + Guidance on how to use re2c for full-duplex command & response protocol + + `#243 `_: + A code generated for period (.) requires 4 bytes + + `#246 `_: + Please add a license to this repo + + `#247 `_: + Build failure on current Cygwin, probably caused by force-fed c++98 mode + + `#248 `_: + distcheck still looks for README + + `#251 `_: + Including what you use is find, but not without inclusion guards + +- Updated documentation and website. + + +---- +1.1x +---- + +1.1.1 (2018-08-30) +~~~~~~~~~~~~~~~~~~ + +- Fixed bug `#211 `_: + re2c ``-V`` throws ``std::out_of_range`` (version to vernum conversion). + +1.1 (2018-08-27) +~~~~~~~~~~~~~~~~ + +- Replaced Kuklewicz POSIX disambiguation algorithm with Okui algorithm. +- Optimized GOR1 algorithm (computation of tagged epsilon-closure). +- Added option ``--conditions`` (an alias for ``-c --start-conditions``). +- Fixed bug `#201 `_: + Bugs with option: ``re2c:flags:no-debug-info``. +- Reworked first part of TDFA paper. + +---- +1.0x +---- + +1.0.3 (2017-11-08) +~~~~~~~~~~~~~~~~~~ + +- Fixed bug `#198 `_: + build error on MacOS with GCC-4.2.1 + +1.0.2 (2017-08-26) +~~~~~~~~~~~~~~~~~~ + +- Fixed bug `#194 `_: + Build with ``--enable-docs`` +- Updated documentation. + +1.0.1 (2017-08-11) +~~~~~~~~~~~~~~~~~~ + +- Fixed bug `#193 `_: + 1.0 build failure on macOS: error: calling a private constructor of class + 're2c::Rule' + +- Added paper "Tagged Deterministic Finite Automata with Lookahead" to the + distribution files. + +1.0 (2017-08-11) +~~~~~~~~~~~~~~~~ + +- Added options: + + + ``-P --posix-captures`` (POSIX-compliant capturing groups) + + ``-T --tags`` (standalone tags with leftmost greedy disambiguation) + + ``--no-lookahead`` + + ``--no-optimize-tags`` + + ``--eager-skip`` + + ``--dump-nfa`` + + ``--dump-dfa-raw`` + + ``--dump-dfa-det`` + + ``--dump-dfa-tagopt`` + + ``--dump-dfa-min`` + + ``--dump-adfa`` + +- Added new syntax: + + + ``@`` + + ``#`` + +- Added new directives: + + + ``/*!stags:re2c ... */`` + + ``/*!mtags:re2c ... */`` + + ``/*!maxnmatch:re2c ... */`` + +- Added new API: + + + ``YYSTAGN (t)`` + + ``YYSTAGP (t)`` + + ``YYMTAGN (t)`` + + ``YYMTAGP (t)`` + + ``YYRESTORETAG (t)`` + + ``YYMAXNMATCH`` + + ``yynmatch`` + + ``yypmatch`` + +- Added inplace confgurations: + + + ``re2c:define:YYSTAGN`` + + ``re2c:define:YYSTAGP`` + + ``re2c:define:YYMTAGN`` + + ``re2c:define:YYMTAGP`` + + ``re2c:define:YYRESTORETAG`` + + ``re2c:flags:8`` or ``re2c:flags:utf-8```` + + ``re2c:flags:b`` or ``re2c:flags:bit-vectors`` + + ``re2c:flags:case-insensitive`` + + ``re2c:flags:case-inverted`` + + ``re2c:flags:d`` or ``re2c:flags:debug-output`` + + ``re2c:flags:dfa-minimization`` + + ``re2c:flags:eager-skip`` + + ``re2c:flags:e`` or ``re2c:flags:ecb`` + + ``re2c:flags:empty-class`` + + ``re2c:flags:encoding-policy`` + + ``re2c:flags:g`` or ``re2c:flags:computed-gotos`` + + ``re2c:flags:i`` or ``re2c:flags:no-debug-info`` + + ``re2c:flags:input`` + + ``re2c:flags:lookahead`` + + ``re2c:flags:optimize-tags`` + + ``re2c:flags:P`` or ``re2c:flags:posix-captures`` + + ``re2c:flags:s`` or ``re2c:flags:nested-ifs`` + + ``re2c:flags:T`` or ``re2c:flags:tags`` + + ``re2c:flags:u`` or ``re2c:flags:unicode`` + + ``re2c:flags:w`` or ``re2c:flags:wide-chars`` + + ``re2c:flags:x`` or ``re2c:flags:utf-16`` + + ``re2c:tags:expression`` + + ``re2c:tags:prefix`` + +- Added warning ``-Wnondeterministic-tags``. + +- Added fuzz-testing scripts + +- Added paper "Tagged Deterministic Finite Automata with Lookahead". + +- Fixed bugs: + + + `#121 `_: + trailing contexts are fundamentally broken + + `#135 `_: + In installation ``make check`` give syntax error + + `#137 `_: + run_tests.sh fail when running configure script with absolute path + + `#138 `_: + website improvement + + `#141 `_: + Tests under Windows + + `#142 `_: + segvault with null terminated input + + `#145 `_: + Values for enum YYCONDTYPE are not generated when default rules with conditions are used + + `#147 `_: + Please add symbol name to "can't find symbol" error message + + `#152 `_: + Line number in #line directive after enum YYCONDTYPE is 0-based + + `#156 `_: + Build with Visual Studio 14 2015: symbol name conflict + + `#158 `_: + Inconsistent forward declaration of struct/class vs definition + + `#160 `_: + Open text files with "wb" causes issues on Windows + + `#162 `_: + Reading files with "rb" causes issues in Windows + + `#165 `_: + Trailing context consumed if initial expression matches it + + `#176 `_: + re2c help message is too wide for most terminals + + `#184 `_: + Small documentation issue + + `#186 `_: + Difference operator sometimes doesn't work with utf-8 + +- Merged pull requests: + + + `#131 `_: + Use bash-specific ``[[`` builtin + + `#136 `_: + Added basic support for travis-ci.org integration + + `#171 `_: + Typo fix + + `#172 `_: + Grammar fixes in the docs + + `#173 `_: + Grammar fixes in the manpage + + `#174 `_: + more documentation fixes + + `#175 `_: + more manpage fixes + + `#177 `_: + sync --help output w/ manpage + + `#178 `_: + Moves rts used in the manpage to master + + `#179 `_: + compose manpage out of rsts from gh-pages-gen + + `#189 `_: + Typo fix and small grammatical change + + `#191 `_: + Makefile.am: create target directory before writing into it + + +----- +0.16x +----- + +0.16 (2016-01-21) +~~~~~~~~~~~~~~~~~ + +- Fixed bug `#127 `_: + code generation error with wide chars and bitmaps (omitted ``goto`` statement) +- Added DFA minimization and option ``--dfa-minimization `` +- Fixed bug `#128 `_: + very slow DFA construction (resulting in a very large DFA) +- Fixed bug `#132 `_: + test failure on big endian archs with 0.15.3 + + +----- +0.15x +----- + +0.15.3 (2015-12-02) +~~~~~~~~~~~~~~~~~~~ + +- Fixed bugs and applied patches: + + + `#122 `_: + clang does not compile re2c 0.15.x + + `#124 `_: + Get rid of UINT32_MAX and friends + + `#125 `_: + [OS X] git reports changes not staged for commit in newly cloned repository + +- Added option ``--no-version`` that allows to omit version information. +- Reduced memory and time consumed with ``-Wundefined-control-flow``. +- Improved coverage of input data generated with ``-S --skeleton``. + + +0.15.2 (2015-11-23) +~~~~~~~~~~~~~~~~~~~ + +- Fixed build system: lexer depends on bison-generated header + (Gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=566620) + + +0.15.1 (2015-11-22) +~~~~~~~~~~~~~~~~~~~ + +- Fixed test failures caused by locale-sensitive 'sort'. + + +0.15 (2015-11-22) +~~~~~~~~~~~~~~~~~ + +- Updated website http://re2c.org: + + + added examples + + updated docs + + added news + + added web feed (Atom 1.0) + +- Added options: + + + ``-S, --skeleton`` + + ``--empty-class `` + +- Added warnings: + + + ``-W`` + + ``-Werror`` + + ``-W`` + + ``-Wno-`` + + ``-Werror-`` + + ``-Wno-error-`` + +- Added specific warnings: + + + ``-Wundefined-control-flow`` + + ``-Wunreachable-rules`` + + ``-Wcondition-order`` + + ``-Wuseless-escape`` + + ``-Wempty-character-class`` + + ``-Wswapped-range`` + + ``-Wmatch-empty-string`` + +- Fixed options: + + + ``--`` (interpret remaining arguments as non-options) + +- Deprecated options: + + + ``-1 --single-pass`` (single pass is the default now) + +- Reduced size of the generated ``.dot`` files. + +- Fixed bugs: + + + `#27 `_: + re2c crashes reading files containing ``%{ %}`` (patch by Rui) + + `#51 `_: + default rule doesn't work in reuse mode + + `#52 `_: + eliminate multiple passes + + `#59 `_: + bogus ``yyaccept`` in ``-c`` mode + + `#60 `_: + redundant use of ``YYMARKER`` + + `#61 `_: + empty character class ``[]`` matches empty string + + `#115 `_: + flex-style named definitions cause ambiguity in re2c grammar + + `#119 `_: + ``-f`` with ``-b``/``-g`` generates incorrect dispatch on fill labels + + `#116 `_: + empty string with non-empty trailing context consumes code units + +- Added test options: + + + ``-j``, ``-j `` (run tests in ``N`` threads, defaults to the number of CPUs) + + ``--wine`` (test windows builds using ``wine``) + + ``--skeleton`` (generate skeleton programs, compile and execute them) + + ``--keep-tmp-files`` (don't delete intermediate files for successful tests) + +- Updated build system: + + + support out of source builds + + support ```make distcheck``` + + added ```make bootstrap``` (rebuild re2c after building with precompiled + ``.re`` files) + + added ```make tests``` (run tests with ``-j``) + + added ```make vtests``` (run tests with ``--valgrind -j``) + + added ```make wtests``` (run tests with ``--wine -j 1``) + + added Autoconf tests for ``CXXFLAGS``. By default try the following options: + ``-W -Wall -Wextra -Weffc++ -pedantic -Wformat=2 -Wredundant-decls + -Wsuggest-attribute=format -Wconversion -Wsign-conversion -O2 -Weverything``), + respect user-defined ``CXXFLAGS`` + + support Mingw builds: ```configure -host i686-w64-mingw32``` + + structured source files + + removed old MSVC files + +- Moved development to github (https://github.com/skvadrik/re2c), + keep a mirror on sourceforge. + + +----- +0.14x +----- + +0.14.3 (2015-05-20) +~~~~~~~~~~~~~~~~~~~ + +- applied patch `#27 `_: + re2c crashes reading files containing %{ %} +- dropped distfiles for MSVC (they are broken anyway) + +0.14.2 (2015-03-25) +~~~~~~~~~~~~~~~~~~~ + +- fixed `#57 `_: + Wrong result only if another rule is present + +0.14.1 (2015-02-27) +~~~~~~~~~~~~~~~~~~~ + +- fixed `#55 `_: + re2c-0.14: re2c -V outputs null byte + +0.14 (2015-02-23) +~~~~~~~~~~~~~~~~~ + +- Added generic input API + + + `#21 `_: + Support to configure how re2c code interfaced with the symbol buffer?" + +- fixed `#46 `_: + re2c generates an infinite loop, depends on existence of previous parser +- fixed `#47 `_: + Dot output label escaped characters + + +----- +0.13x +----- + +0.13.7.5 (2014-08-22) +~~~~~~~~~~~~~~~~~~~~~ + +- Fixed `Gentoo bug with PHP lexer `_ + +0.13.7.4 (2014-07-29) +~~~~~~~~~~~~~~~~~~~~~ + +- Enabled ``make docs`` only if configured with ``--enable-docs`` +- Disallowed to use yacc/byacc instead of bison to build parser +- Removed non-portable sed feature in script that runs tests + +0.13.7.3 (2014-07-27) +~~~~~~~~~~~~~~~~~~~~~ + +- Fixed CXX warning +- Got rid of asciidoc build-time dependency + +0.13.7.2 (2014-07-27) +~~~~~~~~~~~~~~~~~~~~~ + +- Included man page into dist, respect users CXXFLAGS. + +0.13.7.1 (2014-07-26) +~~~~~~~~~~~~~~~~~~~~~ + +- Added missing files to tarball + +0.13.7 (2014-07-25) +~~~~~~~~~~~~~~~~~~~ + +- Added UTF-8 support +- Added UTF-16 support +- Added default rule +- Added option to control ill-formed Unicode + +0.13.6 (2013-07-04) +~~~~~~~~~~~~~~~~~~~ + +- Fixed #2535084 uint problem with Sun C 5.8 +- #3308400: allow Yacc-style ``%{`` code brackets ``}%`` +- #2506253: allow C++ ``//`` comments +- Fixed inplace configuration in ``-e`` mode. +- Applied #2482572 Typos in error messages. +- Applied #2482561 Error in manual section on ``-r`` mode. +- Fixed #2478216 Wrong ``start_label`` in ``-c`` mode. +- Fixed #2186718 Unescaped backslash in file name of ``#line`` directive. +- Fixed #2102138 Duplicate case labels on EBCDIC. +- Fixed #2088583 Compile problem on AIX. +- Fixed #2038610 Ebcdic problem. +- improve dot support: make char intervals (e.g. ``[A-Z]``) instead of one edge + per char + +0.13.5 (2008-05-25) +~~~~~~~~~~~~~~~~~~~ + +- Fixed #1952896 Segfault in ``re2c::Scanner::scan``. +- Fixed #1952842 Regression. + +0.13.4 (2008-04-05) +~~~~~~~~~~~~~~~~~~~ + +- Added transparent handling of ``#line`` directives in input files. +- Added ``re2c:yyfill:check`` inplace configuration. +- Added ``re2c:define:YYSETSTATE:naked`` inplace configuration. +- Added ``re2c:flags:w`` and ``re2c:flags:u`` inplace configurations. +- Added the ability to add rules in ``use:re2c`` blocks. +- Changed ``-r`` flag to accept only ``rules:re2c`` and ``use:re2c`` blocks. + +0.13.3 (2008-03-14) +~~~~~~~~~~~~~~~~~~~ + +- Added ``-r`` flag to allow reuse of scanner definitions. +- Added ``-F`` flag to support flex syntax in rules. +- Fixed SEGV in scanner that occurs with very large blocks. +- Fixed issue with unused ``yybm``. +- Partial support for flex syntax. +- Changed to allow ``/*`` comments with ``-c`` switch. +- Added flag ``-D/--emit-dot``. + +0.13.2 (2008-02-14) +~~~~~~~~~~~~~~~~~~~ + +- Added flag ``--case-inverted``. +- Added flag ``--case-insensitive``. +- Added support for ```` to enable rule setup. +- Added support for ``=>`` style rules. +- Added support for ``:=`` style rules. +- Added support for ``:=>`` style rules. +- Added ``re2c:cond:divider`` and ``re2c:cond:goto`` inplace configuration. +- Fixed code generation to emit space after ``if``. + +0.13.1 (2007-08-24) +~~~~~~~~~~~~~~~~~~~ + +- Added custom build rules for Visual Studio 2005 (``re2c.rules``). + (William Swanson) +- Fixed issue with some compilers. +- Fixed #1776177 Build on AIX. +- Fixed #1743180 ``fwrite`` with 0 length crashes on OS X. + +0.13.0 (2007-06-24) +~~~~~~~~~~~~~~~~~~~ + +- Added ``-c`` and ``-t`` to generate scanners with (f)lex-like condition + support. +- Fixed issue with short form of switches and parameter if not first switch. +- Fixed #1708378 segfault ``in actions.cc``. + + +----- +0.12x +----- + +0.12.3 (2007-08-24) +~~~~~~~~~~~~~~~~~~~ + +- Fixed issue with some compilers. +- Fixed #1776177 Build on AIX. +- Fixed #1743180 ``fwrite`` with 0 length crashes on OS X. + +0.12.2 (2007-06-26) +~~~~~~~~~~~~~~~~~~~ + +- Fixed #1743180 ``fwrite`` with 0 length crashes on OS X. + +0.12.1 (2007-05-23) +~~~~~~~~~~~~~~~~~~~ + +- Fixed #1711240 problem with ``"`` and ``7F`` on EBCDIC plattforms. + +0.12.0 (2007-05-01) +~~~~~~~~~~~~~~~~~~~ + +- Re-release of 0.11.3 as new stable branch. +- Fixed issue with short form of switches and parameter if not first switch. +- Fixed #1708378 segfault in ``actions.cc``. +- re2c 0.12.0 has been tested with the following compilers: + + + gcc version 4.1.2 (Gentoo 4.1.2) + + gcc version 4.1.2 20070302 (prerelease) (4.1.2-1mdv2007.1) + + gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) + + gcc version 4.1.1 20070105 (Red Hat 4.1.1-51) + + gcc version 4.1.0 (SUSE Linux 10) + + gcc version 4.0.3 (4.0.3-0.20060215.2mdk for Mandriva Linux release 2006.1) + + gcc version 4.0.2 20050901 (prerelease) (SUSE Linux) (32 + 64 bit) + + MacPPC, gcc version 4.0.1 (Apple Computer, Inc. build 5367) + + MacIntel, gcc version 4.0.1 (Apple Computer, Inc. build 5250) + + gcc version 3.4.4 [FreeBSD] 20050518 (32 + 64 bit) + + gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125) + + gcc version 3.4.2 [FreeBSD] + + gcc version 3.3.5 20050117 (prerelease) (SUSE Linux) + + gcc version 3.3.3 (PPC, 32 + 64 bit) + + Microsoft (R) C/C++ Optimizing Compiler Version 14.00.50727.762 for x64 (64 bit) + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86 (Microsoft Visual C++ 2005) + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86 (Mictosoft Visual C++ 2003) + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.00.9466 for 80x86 (Microsoft Visual C++ 2002) + + Intel(R) C++ Compiler for 32-bit applications, Version 9.1 Build 20070322Z Package ID: W_CC_C_9.1.037 + + Intel(R) C++ Compiler for Intel(R) EM64T-based applications, Version 9.1 (64 bit) + + icpcbin (ICC) 9.1 20070215 + + CC: Sun C++ 5.8 2005/10/13 (``CXXFLAGS='-library=stlport4'``) + + MIPSpro Compilers: Version 7.4.4m (32 + 64 bit) + + aCC: HP C/aC++ B3910B A.06.15 [Mar 28 2007] (HP-UX IA64) + + +----- +0.11x +----- + +0.11.3 (2007-04-01) +~~~~~~~~~~~~~~~~~~~ + +- Added support for underscores in named definitions. +- Added new option ``--no-generation-date``. +- Fixed issue with long form of switches. + +0.11.2 (2007-03-01) +~~~~~~~~~~~~~~~~~~~ + +- Added inplace configuration ``re2c:yyfill:parameter``. +- Added inplace configuration ``re2c:yych:conversion``. +- Fixed ``-u`` switch code generation. +- Added ability to avoid defines and overwrite generated variable names. + +0.11.1 (2007-02-20) +~~~~~~~~~~~~~~~~~~~ + +- Applied #1647875 Add ``const`` to ``yybm`` vector. + +0.11.0 (2007-01-01) +~~~~~~~~~~~~~~~~~~~ + +- Added ``-u`` switch to support unicode. + + +----- +0.10x +----- + +0.10.8 (2007-04-01) +~~~~~~~~~~~~~~~~~~~ + +- Fixed issue with long form of switches. + +0.10.7 (2007-02-20) +~~~~~~~~~~~~~~~~~~~ + +- Applied #1647875 Add ``const`` to ``yybm`` vector. + +0.10.6 (2006-08-05) +~~~~~~~~~~~~~~~~~~~ + +- Fixed #1529351 Segv bug on unterminated code blocks. +- Fixed #1528269 Invalid code generation. + +0.10.5 (2006-06-11) +~~~~~~~~~~~~~~~~~~~ + +- Fixed long form of ``-1`` switch to ``--single-pass`` as noted in man page + and help. +- Added MSVC 2003 project files and renamed old 2002 ones. + +0.10.4 (2006-06-01) +~~~~~~~~~~~~~~~~~~~ + +- Fix whitespace in generated code. + +0.10.3 (2006-05-14) +~~~~~~~~~~~~~~~~~~~ + +- Fixed issue with ``-wb`` and ``-ws``. +- Added ``-g`` switch to support gcc's computed goto's. +- Changed to use nested ``if``'s instead of ``switch(yyaccept)`` in ``-s`` mode. + +0.10.2 (2006-05-01) +~~~~~~~~~~~~~~~~~~~ + +- Changed to generate ``YYMARKER`` only when needed or in single pass mode. +- Added ``-1`` switch to force single pass generation and make two pass the + default. +- Fixed ``-i`` switch. +- Added configuration ``yyfill:enable`` to allow suppression of ``YYFILL()`` + blocks. +- Added tutorial like lessons to re2c. +- Added ``/*!ignore:re2c */`` to support documenting of re2c source. +- Fixed issue with multiline re2c comments (``/*!max:re2c ... */`` and alike). +- Fixed generation of ``YYDEBUG()`` when using ``-d`` switch. +- Added ``/*!getstate:re2c */`` which triggers generation of the + ``YYGETSTATE()`` block. +- Added configuration ``state:abort``. +- Changed to not generate ``yyNext`` unless configuration ``state:nextlabel`` is + used. +- Changed to not generate ``yyaccept`` code unless needed. +- Changed to use ``if`` instead of ``switch`` expression when ``yyaccpt`` has + only one case. +- Added docu, examples and tests to ``.src.zip`` package (0.10.1 zip was + repackaged). +- Fixed #1479044 incorrect code generated when using ``-b``. +- Fixed #1472770 re2c creates an infinite loop. +- Fixed #1454253 Piece of code saving a backtracking point not generated. +- Fixed #1463639 Missing forward declaration. +- Implemented #1187127 savable state support for multiple re2c blocks. +- re2c 0.10.2 has been tested with the following compilers: + + + gcc (GCC) 4.1.0 (Gentoo 4.1.0) + + gcc version 4.0.3 (4.0.3-0.20060215.2mdk for Mandriva Linux release 2006.1) + + gcc version 4.0.2 20050901 (prerelease) (SUSE Linux) + + gcc (GCC) 3.4.5 (Gentoo 3.4.5, ssp-3.4.5-1.0, pie-8.7.9) + + gcc version 3.4.4 [FreeBSD] 20050518 + + gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125) + + gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3) + + gcc-Version 3.3.5 (Debian 1:3.3.5-13) + + gcc-Version 3.3.0 (mips-sgi-irix6.5/3.3.0/specs) + + MIPSpro Compilers: Version 7.4.4m + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for + 80x86 (Microsoft Visual C++ 2005) + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86 + (Mictosoft Visual C++ 2003) + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.00.9466 for 80x86 + (Microsoft Visual C++ 2002) + + Intel(R) C++ Compiler for Intel(R) EM64T-based applications, Version 9.0 + Build 20050430 Package ID: l_cc_p_9.0.021 + + CC: Sun C++ 5.8 2005/10/13 (``CXXFLAGS='-library=stlport4'``) + + bison 2.1, 1.875d, 1.875b, 1.875 + +0.10.1 (2006-02-28) +~~~~~~~~~~~~~~~~~~~ + +- Added support for Solaris and native SUN compiler. +- Applied #1438160 expose ``YYCTXMARKER``. +- re2c 0.10.1 has been tested with the following compilers: + + + gcc version 4.0.3 (4.0.3-0.20060215.2mdk for Mandriva Linux release 2006.1) + + gcc version 4.0.2 (4.0.2-1mdk for Mandriva Linux release 2006.1) + + gcc version 4.0.2 20050901 (prerelease) (SUSE Linux) + + gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125) + + gcc-Version 3.3.5 (Debian 1:3.3.5-13) + + gcc-Version 3.3.0 (mips-sgi-irix6.5/3.3.0/specs) + + MIPSpro Compilers: Version 7.4.4m + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for + 80x86 (Microsoft Visual C 2005) + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.00.9466 for 80x86 + (Microsoft Visual C 2002) + + Intel(R) C++ Compiler for 32-bit applications, Version 9.0 Build 20051130Z + Package ID: W_CC_C_9.0.028 + + CC: Sun C++ 5.8 2005/10/13 (``CXXFLAGS='-compat5 -library=stlport4'``) + + bison 2.1, 1.875d, 1.875b, 1.875 + +0.10.0 (2006-02-18) +~~~~~~~~~~~~~~~~~~~ + +- Added make target ``zip`` to create windows source packages as zip files. +- Added ``re2c:startlabel`` configuration. +- Fixed code generation to not generate unreachable code for initial state. +- Added support for c/c++ compatible ``\u`` and ``\U`` unicode notation. +- Added ability to control indendation. +- Made scanner error out in case an ambiguous ``/*`` is found. +- Fixed indendation of generated code. +- Added support for DOS line endings. +- Added experimental unicode support. +- Added ``config_w32.h`` to build out of the box on windows (using msvc 2002+). +- Added Microsoft Visual C .NET 2005 build files. +- Applied #1411087 variable length trailing context. +- Applied #1408326 do not generate ``goto`` next state. +- Applied #1408282 ``CharSet`` initialization fix. +- Applied #1408278 ``readsome`` with MSVC. +- Applied #1307467 Unicode patch for 0.9.7. + + +---- +0.9x +---- + +0.9.12 (2005-12-28) +~~~~~~~~~~~~~~~~~~~ + +- Fixed bug #1390174 re2c cannot accept ``{0,}``. + +0.9.11 (2005-12-18) +~~~~~~~~~~~~~~~~~~~ + +- Fixed #1313083 ``-e`` (EBCDIC cross compile) broken. +- Fixed #1297658 underestimation of ``n`` in ``YYFILL(n)``. +- Applied #1339483 Avoid rebuilds of re2c when running subtargets. +- Implemented #1335305 symbol table reimplementation, just slightly modifed. + +0.9.10 (2005-09-04) +~~~~~~~~~~~~~~~~~~~ + +- Add ``-i`` switch to avoid generating ``#line`` information. +- Fixed bug #1251653 re2c generate some invalid ``#line`` on WIN32. + +0.9.9 (2005-07-21) +~~~~~~~~~~~~~~~~~~~ + +- Implemented #1232777 negated char classes ``[^...]`` and the dot operator ``.``. +- Added hexadecimal character definitions. +- Added consistency check for octal character definitions. + +0.9.8 (2005-06-26) +~~~~~~~~~~~~~~~~~~~ + +- Fixed code generation for ``-b`` switch. +- Added Microsoft Visual C .NET build files. + +0.9.7 (2005-04-30) +~~~~~~~~~~~~~~~~~~~ + +- Applied #1181535 storable state patch. +- Added ``-d`` flag which outputs a debugable parser. +- Fixed generation of ``#line`` directives (according to ISO-C99). +- Fixed bug #1187785 Re2c fails to generate valid code. +- Fixed bug #1187452 unused variable ``yyaccept``. + +0.9.6 (2005-04-14) +~~~~~~~~~~~~~~~~~~~ + +- Fix build with gcc >= 3.4. + +0.9.5 (2005-04-08) +~~~~~~~~~~~~~~~~~~~ + +- Added ``/*!max:re2c */`` which emits ``#define YYMAXFILL `` + line. This allows to define buffers of the minimum required length. + Occurence must follow ``/*re2c */`` and cannot preceed it. +- Changed re2c to two pass generation to output warning free code. +- Fixed bug #1163046 re2c hangs when processing valid re-file. +- Fixed bug #1022799 re2c scanner has buffering bug. + +0.9.4 (2005-03-12) +~~~~~~~~~~~~~~~~~~~ + +- Added ``--vernum`` support. +- Fixed bug #1054496 incorrect code generated with ``-b`` option. +- Fixed bug #1012748 re2c does not emit last line if ``\n`` missing. +- Fixed bug #999104 ``--output=output`` option does not work as documented. +- Fixed bug #999103 Invalid options prefixed with two dashes cause program + crash. + +0.9.3 (2004-05-26) +~~~~~~~~~~~~~~~~~~~ + +- Fixes one small possible bug in the generated output. ``ych`` instead of + ``yych`` is output in certain circumstances. + +0.9.2 (2004-05-26) +~~~~~~~~~~~~~~~~~~~ + +- Added ``-o`` option to specify the output file which also will set the + ``#line`` directives to something useful. +- Print version to ``cout`` instead of ``cerr``. +- Added ``-h`` and ``--`` style options. +- Moved development to http://sourceforge.net/projects/re2c +- Fixed bug #960144 minor cosmetic problem. +- Fixed bug #953181 cannot compile with. +- Fixed bug #939277 Windows support. +- Fixed bug #914462 automake build patch +- Fixed bug #891940 braced quantifiers: ``{\d+(,|,\d+)?}`` style. +- Fixed bug #869298 Add case insensitive string literals. +- Fixed bug #869297 Input buffer overrun. + +0.9.1 (2003-12-13) +~~~~~~~~~~~~~~~~~~~ + +- Removed rcs comments in source files. + +------------------------- +re2c adopted (2003-12-09) +------------------------- + +- Version 0.9.1 README:: + + Originally written by Peter Bumbulis (peter@csg.uwaterloo.ca) + Currently maintained by Brian Young (bayoung@acm.org) + + The re2c distribution can be found at: + http://www.tildeslash.org/re2c/index.html + + The source distribution is available from: + http://www.tildeslash.org/re2c/re2c-0.9.1.tar.gz + + This distribution is a cleaned up version of the 0.5 release + maintained by me (Brian Young). Several bugs were fixed as well + as code cleanup for warning free compilation. It has been + developed and tested with egcs 1.0.2 and gcc 2.7.2.3 on Linux x86. + Peter Bumbulis' original release can be found at: + ftp://csg.uwaterloo.ca/pub/peter/re2c.0.5.tar.gz + + re2c is a great tool for writing fast and flexible lexers. + It has served many people well for many years and it deserves + to be maintained more actively. re2c is on the order of 2-3 + times faster than a flex based scanner, and its input model + is much more flexible. + + Patches and requests for features will be entertained. Areas + of particular interest to me are porting (a Solaris and an NT + version will be forthcoming) and wide character support. Note + that the code is already quite portable and should be buildable + on any platform with minor makefile changes. + +- Version 0.5 Peter's original ANNOUNCE and README:: + + re2c is a tool for generating C-based recognizers from regular + expressions. re2c-based scanners are efficient: for programming + languages, given similar specifications, an re2c-based scanner + is typically almost twice as fast as a flex-based scanner with + little or no increase in size (possibly a decrease on cisc + architectures). Indeed, re2c-based scanners are quite competitive + with hand-crafted ones. + + Unlike flex, re2c does not generate complete scanners: the user + must supply some interface code. While this code is not bulky + (about 50-100 lines for a flex-like scanner; see the man page + and examples in the distribution) careful coding is required for + efficiency (and correctness). One advantage of this arrangement + is that the generated code is not tied to any particular input + model. For example, re2c generated code can be used to scan + data from a null-byte terminated buffer as illustrated below. + + Given the following source: + + #define NULL ((char*) 0) + char *scan(char *p) { + char *q; + #define YYCTYPE char + #define YYCURSOR p + #define YYLIMIT p + #define YYMARKER q + #define YYFILL(n) + /*!re2c + [0-9]+ {return YYCURSOR;} + [\000-\377] {return NULL;} + */ + } + + re2c will generate: + + /* Generated by re2c on Sat Apr 16 11:40:58 1994 */ + #line 1 "simple.re" + #define NULL ((char*) 0) + char *scan(char *p) { + char *q; + #define YYCTYPE char + #define YYCURSOR p + #define YYLIMIT p + #define YYMARKER q + #define YYFILL(n) + { + YYCTYPE yych; + unsigned int yyaccept; + goto yy0; + yy1: ++YYCURSOR; + yy0: + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych <= '/') goto yy4; + if(yych >= ':') goto yy4; + yy2: yych = *++YYCURSOR; + goto yy7; + yy3: + #line 10 + {return YYCURSOR;} + yy4: yych = *++YYCURSOR; + yy5: + #line 11 + {return NULL;} + yy6: ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + yy7: if(yych <= '/') goto yy3; + if(yych <= '9') goto yy6; + goto yy3; + } + #line 12 + + } + + Note that most compilers will perform dead-code elimination to + remove all YYCURSOR, YYLIMIT comparisions. + + re2c was developed for a particular project (constructing a fast + REXX scanner of all things!) and so while it has some rough edges, + it should be quite usable. More information about re2c can be + found in the (admittedly skimpy) man page; the algorithms and + heuristics used are described in an upcoming LOPLAS article + (included in the distribution). Probably the best way to find out + more about re2c is to try the supplied examples. re2c is written in + C++, and is currently being developed under Linux using gcc 2.5.8. + + Peter diff --git a/_sources/releases/release_notes.rst.txt b/_sources/releases/release_notes.rst.txt new file mode 100644 index 00000000..fcea4678 --- /dev/null +++ b/_sources/releases/release_notes.rst.txt @@ -0,0 +1,22 @@ +============= +Release notes +============= + +.. toctree:: + :hidden: + + /releases/changelog/changelog + +.. include:: /releases/release_notes/1_2_1.rst +.. include:: /releases/release_notes/1_2.rst +.. include:: /releases/release_notes/1_1_1.rst +.. include:: /releases/release_notes/1_1.rst +.. include:: /releases/release_notes/1_0_3.rst +.. include:: /releases/release_notes/1_0_2.rst +.. include:: /releases/release_notes/1_0_1.rst +.. include:: /releases/release_notes/1_0.rst +.. include:: /releases/release_notes/0_16.rst +.. include:: /releases/release_notes/0_15_3.rst +.. include:: /releases/release_notes/0_15_2.rst +.. include:: /releases/release_notes/0_15_1.rst +.. include:: /releases/release_notes/0_15.rst diff --git a/_sources/releases/release_notes/0_15.rst.txt b/_sources/releases/release_notes/0_15.rst.txt new file mode 100644 index 00000000..d4b7f233 --- /dev/null +++ b/_sources/releases/release_notes/0_15.rst.txt @@ -0,0 +1,36 @@ +Release 0.15 +============ + +This release started out in the spring of 2015 as a relatively simple code cleanup. + +It focused on the following problem: re2c used to repeat the whole generation process multiple times. +Some parts of the generated program depend on the overall input statistics; +they cannot be generated until the whole input has been processed. +The usual strategy is to make stubs for all such things and fix them later. +Instead, re2c used to process the whole input, gather statistics, +discard the generated output, and regenerate it from scratch. +Moreover, each generation pass further duplicated certain calculations (for similar reasons). +As a result, the code generation phase was repeated four times. + +The problem here was not inefficiency: re2c is fast enough to allow the 4x overhead. +The real problem was the complexity of the code: the developer has to think of multiple execution layers all the time. +Some parts of code are only executed on certain layers and affect each other. +Simple reasoning gets really hard. + +So the main purpose of this release was to simplify the code and make it easier to fix bugs and add new features. +Very soon it became clear that some of the changes in code generation are hard to verify by hand. +For example, even a minor rebalancing of ``if`` and ``switch`` statements +may change the generated code significantly. +It was clear that re2c needed an automatic verification tool, +which lead to the idea of generating :ref:`skeleton programs `. + +Meanwhile some work was done on adding :ref:`warnings `, +updating the build system and fixing various bugs. +A heart-warming consequence of the code simplification is that re2c now uses re2c more extensively: +not only the main program, but also the command-line options, inplace configurations, +and all kinds of escaped strings are parsed with re2c. +Website has also been updated (feel free to suggest improvements). + +See the changelog :ref:`releases/changelog/changelog:0.15 (2015-11-22)` for details. + + diff --git a/_sources/releases/release_notes/0_15_1.rst.txt b/_sources/releases/release_notes/0_15_1.rst.txt new file mode 100644 index 00000000..9333f9c9 --- /dev/null +++ b/_sources/releases/release_notes/0_15_1.rst.txt @@ -0,0 +1,7 @@ +Release 0.15.1 +============== + +This release fixes an error in the testing script +(thanks to Sergei Trofimovich who reported the bug and suggested a quick fix). +See the changelog :ref:`releases/changelog/changelog:0.15.1 (2015-11-22)` for details. + diff --git a/_sources/releases/release_notes/0_15_2.rst.txt b/_sources/releases/release_notes/0_15_2.rst.txt new file mode 100644 index 00000000..f2b40705 --- /dev/null +++ b/_sources/releases/release_notes/0_15_2.rst.txt @@ -0,0 +1,7 @@ +Release 0.15.2 +============== + +This release fixes a bug in the build system: +it adds a missing dependency of the lexer on the bison-generated header +(`reported `_ on Gentoo bugtracker). +See the changelog :ref:`releases/changelog/changelog:0.15.2 (2015-11-23)` for details. diff --git a/_sources/releases/release_notes/0_15_3.rst.txt b/_sources/releases/release_notes/0_15_3.rst.txt new file mode 100644 index 00000000..2751f3c5 --- /dev/null +++ b/_sources/releases/release_notes/0_15_3.rst.txt @@ -0,0 +1,12 @@ +Release 0.15.3 +============== + +This release fixes multiple build-time and run-time failures on OS X, FreeBSD, and Windows. +Most of the problems were reported and fixed by Oleksii Taran (on OS X) +and Sergei Trofimovich (on FreeBSD and Windows). +Thank you for your help! + +:ref:`Skeleton ` coverage has been improved. + +See the changelog :ref:`releases/changelog/changelog:0.15.3 (2015-12-02)` for details. + diff --git a/_sources/releases/release_notes/0_16.rst.txt b/_sources/releases/release_notes/0_16.rst.txt new file mode 100644 index 00000000..4c194210 --- /dev/null +++ b/_sources/releases/release_notes/0_16.rst.txt @@ -0,0 +1,40 @@ +Release 0.16 +============== + +This release adds a very important step in the process of code generation: +minimization of the underlying DFA (deterministic finite automaton). +Simply speaking, this means that re2c now generates less code +(while the generated code behaves exactly the same). + +DFA minimization is a very well-known technique +and one might expect that any self-respecting lexer generator would definitely use it. +So how could it be that re2c didn't? +In fact, re2c did use a couple of self-invented tricks to compress the generated code +(one interesting technique is the construction of a *tunnel* automaton). +Some of these tricks were quite buggy (see `this bug report `_ for example). +Now that re2c does canonical DFA minimization, all this stuff is obsolete and has been dropped. + +A lot of attention has been paid to the correctness of the DFA minimization. +Usually, re2c uses a very simple criterion to validate changes: +the generated code for all the tests in testsuite must remain the same. +However, in the case of DFA minimization the generated code changes dramatically. +It is impossible to verify the changes manually. + +One possible verification tool is the :ref:`skeleton` feature. +Because skeleton is constructed prior to DFA minimization, it cannot be affected by any errors in its implementation. + +Another way to verify DFA minimization is by implementing two different algorithms +and comparing the results. The minimization procedure has a very useful property: +the miminal DFA is unique (with respect to state relabeling). +We used the Moore and the so-called *table filling* algorithms: +The Moore algorithm is fast, while table filling is very simple to implement. +The ``--dfa-minimization `` option that allows choosing +the particular algorithm (defaults to ``moore``), but it's only useful for debugging +DFA minimization. + +A good side effect of messing with re2c internals is a significant speedup +of code generation (see `this issue `_ for example). +The test suite now runs twice as fast (at least). + +See the changelog :ref:`releases/changelog/changelog:0.16 (2016-01-21)` for details. + diff --git a/_sources/releases/release_notes/1_0.rst.txt b/_sources/releases/release_notes/1_0.rst.txt new file mode 100644 index 00000000..07f1378a --- /dev/null +++ b/_sources/releases/release_notes/1_0.rst.txt @@ -0,0 +1,93 @@ +Release 1.0 +=========== + +This release is an important milestone in the history of re2c: it adds *submatch extraction*. +It is a long-awaited feature; even as Peter Bumbulis released the first version of re2c back in 1993, +he mentioned submatch extraction in his paper together with Donald D. Cowan +`"RE2C: a more versatile scanner generator" <../../1994_bumbulis_cowan_re2c_a_more_versatile_scanner_generator.ps>`_ +as a useful feature that soon should be added to re2c. +It seemed back then that submatch extraction is relatively easy to implement; +like many other useful extensions, it was deemed to be no more than syntactic sugar on top of canonical regular expressions. + +As it turned out, this is not so: +the problem of *parsing* with regular expressions is inherently more complex than *recognition*, +and submatch extraction cannot be implemented using traditional DFA-based approach. +Many authors studied this subject and developed algorithms suitable for their particular settings and problem domains. +Some of them used NFA-based approach, +others suggested algorithms based on multiple DFA or multiple passes over a single DFA. +For re2c most of these algorithms are too heavyweight: +they require complication of the underlying computational model and incur overhead even in simple cases. + +However, one algorithm is outstanding in this respect: +it is the algorithm invented by Ville Laurikari in 2000 and described in his paper +`"NFAs with Tagged Transitions, their Conversion to Deterministic Automata and Application to Regular Expressions" +`_. +Laurikari algorithm is based on a single DFA extended with a fixed number of *registers*; it makes one pass over the input string, +works in linear time and the required space does not depend on the input length. +But what is most important, the added complexity depends on submatch detalization: +on submatch-free regular expressions Laurikari automaton reduces to a simple DFA. + +When the work on submatch extraction feature started in early 2016, +at first it seemed that Laurikari algorithm was still overly complicated. +Re2c needed an algorithm that would support only *partial* submatch extraction, +but the supported cases would be handled very efficiently. +A lot of effort was spent on studying papers, +and finally this lead to the development of a new algorithm. +It soon became clear that the self-invented algorithm was in fact a special case of Laurikari algorithm, +with one significant performance improvement: the use of lookahead symbol. +Surprisingly, the original Laurikari algorithm has a strange deficiency: +when recording submatches, the automata totally ignore the lookahead symbol +and perform a lot of redundant operations that could be easily avoided. +It was only logical to fix Laurikari algorithm. +The new improved algorithm is described in the paper +`"Tagged Deterministic Finite Automata with Lookahead" <../../2017_trofimovich_tagged_deterministic_finite_automata_with_lookahead.pdf>`_ + +Submatch extraction in re2c comes in two flavors: +POSIX-compliant capturing groups (with true POSIX semantics) +and standalone *tags* that use leftmost greedy disambiguation. +Both features require a number of new API primitives and configurations; +and they are barely documented yet (though I managed to add a section in the manual). +The paper cited above has some interesting benchmark results; +articles and examples will follow in the nearest future. +As usually, you may expect a number of small bug-fix releases in the 1.0.x series. + +The following people contributed to this release: + +* Petr Skocik tidied up re2c documentation: fixed ubiquitous spelling errors + and established synchronization system between the online documentation, + manpage and help message displayed by re2c with ``--help`` option. + +* Sergei Trofimovich wrote a *fuzzer* that generates random regular expressions + and checks them on input data generated with re2c ``--skeleton`` option. + This fuzzer is most helpful; it has already found tens of bugs in the early implementation of submatch extraction. + Sergei also helped me with testing re2c on numerous platforms and computer architectures. + +* Abs62, + asmwarrior, + Ben Smith, + CRCinAU, + Derick Rethans, + Dimitri John Ledkov, + Eldar Zakirov, + jcfp, + Jean-Claude Wippler, + Jeff Trull, + Jérôme Dumesnil, + Jesse Buesking, + Julian Andres Klode, + Paulo Custodio, + Perry E. Metzger, + philippschaefer, + Ross Burton, + Rui Maciel, + Ryan Mast, + Samuel006, + sirzooro, + Tim Kelly + --- all these people contributed bug reports, patches and feedback. Thank you! + +* Many thanks to the early user of the new features João Paredes for his patience and encouraging comments on the subject. + +See the changelog :ref:`releases/changelog/changelog:1.0 (2017-08-11)` for details. + + diff --git a/_sources/releases/release_notes/1_0_1.rst.txt b/_sources/releases/release_notes/1_0_1.rst.txt new file mode 100644 index 00000000..2085e70a --- /dev/null +++ b/_sources/releases/release_notes/1_0_1.rst.txt @@ -0,0 +1,7 @@ +Release 1.0.1 +============= + +This is a minor bug-fix release. +It fixes a build failure on Mac OS X (thanks to ilovezf for the bug report). +See the changelog :ref:`releases/changelog/changelog:1.0.1 (2017-08-11)` for details. + diff --git a/_sources/releases/release_notes/1_0_2.rst.txt b/_sources/releases/release_notes/1_0_2.rst.txt new file mode 100644 index 00000000..098825e2 --- /dev/null +++ b/_sources/releases/release_notes/1_0_2.rst.txt @@ -0,0 +1,7 @@ +Release 1.0.2 +============= + +This is another minor bug-fix release. +It addresses some documentation issues (thanks to Ziris85 for the bug report). +See the changelog :ref:`releases/changelog/changelog:1.0.2 (2017-08-26)` for details. + diff --git a/_sources/releases/release_notes/1_0_3.rst.txt b/_sources/releases/release_notes/1_0_3.rst.txt new file mode 100644 index 00000000..411072dd --- /dev/null +++ b/_sources/releases/release_notes/1_0_3.rst.txt @@ -0,0 +1,6 @@ +Release 1.0.3 +============= + +Yet another minor bug-fix release. +It fixes a build failure on Mac OS X (thanks to Ryan Shmidt for the bug report). +See the changelog :ref:`releases/changelog/changelog:1.0.3 (2017-11-08)` for details. diff --git a/_sources/releases/release_notes/1_1.rst.txt b/_sources/releases/release_notes/1_1.rst.txt new file mode 100644 index 00000000..359e2642 --- /dev/null +++ b/_sources/releases/release_notes/1_1.rst.txt @@ -0,0 +1,18 @@ +Release 1.1 +============= + +This release doesn't bring in any serious user-visible changes; +most of the work concentrated on the internal POSIX disambiguation algorithm +used for submatch extraction with ``--posix-captures`` option. +The old algorithm, introduced in `release 1.0 <./1_0.html>`_, was based on the work of Chris Kuklewicz +(outlined on this `haskell wiki page `_ +and formalized in the paper `Tagged Deterministic Finite Automata with Lookahead +`_). +Kuklewicz algorithm was replaced with a totally different algorithm +based on the work of Satoshi Okui and Taro Suzuki (described in the paper +"Disambiguation in Regular Expression Matching via Position Automata with Augmented Transitions", year 2013). +The main effort in this release was in developing proper theoretical foundations for the new algorithm. +As usual, there has been a couple of bug fixes. + +See the changelog :ref:`releases/changelog/changelog:1.1 (2018-08-27)` for details. + diff --git a/_sources/releases/release_notes/1_1_1.rst.txt b/_sources/releases/release_notes/1_1_1.rst.txt new file mode 100644 index 00000000..34623840 --- /dev/null +++ b/_sources/releases/release_notes/1_1_1.rst.txt @@ -0,0 +1,10 @@ +Release 1.1.1 +============= + +This is a minor bug-fix release. +It fixes a crash with ``-V`` ``--vernum`` option. +The crash was reported and fixed by Mike Gilbert, +and later rediscovered by Daniel J. Luke and Perry E. Metzger. +Sergei Trofimovich made a unit test, as the ``-V`` ``--vernum`` option has already caused some troubles in the past. +See the changelog :ref:`releases/changelog/changelog:1.1.1 (2018-08-30)` for details. +Thanks everyone! diff --git a/_sources/releases/release_notes/1_2.rst.txt b/_sources/releases/release_notes/1_2.rst.txt new file mode 100644 index 00000000..ec72fdcb --- /dev/null +++ b/_sources/releases/release_notes/1_2.rst.txt @@ -0,0 +1,126 @@ +Release 1.2 +=========== + +This release adds a handful of useful features and finalizes two-year +research effort on POSIX disambiguation. + +First and foremost, :ref:`EOF rule ` has been added to +re2c. It is a new method of checking for the end of input, which aims at being +both generic and simple to use. Historically re2c has a +:ref:`number of ways ` to handle EOF situation. The +simplest and the most efficient method is +:ref:`using a sentinel symbol `, but it +has limited applicability. The most widely used and generic method is +:ref:`bounds checking with padding `, +but it is rather complex and requires input buffering. +Finally, it is possible to define custom EOF handling methods +by :ref:`using the generic API `. However, such +methods are not necessarily correct and are likely to be slower than other +methods. The new method, EOF rule, tries to combine the simplicity and +efficiency of the sentinel symbol and the generality of bounds checking. +Essentially, all the user is required to do is to specify an arbitrary "fake" +sentinel using ``re2c:eof`` configuration (zero is usually a good choice), to +define a special EOF rule ``$``, and to make sure that the fake sentinel is +always the last symbol in the input buffer. The lexer will then run without end +of input checks until it hits the branch corresponding to the fake sentinel, at +which point it will perform additional bounds checking. If indeed it is the end, +the lexer will try to get more input. If this attempt fails, the lexer will +either rollback to the last matched rule (or the default rule, if it has +consumed some input but did not match), or else it will go to EOF rule. +Depending on each particular case and the choice of sentinel, the performance of +EOF rule may be slightly better or worse than bounds checking with padding. +See the user manual for more details and examples. + +Another important new feature is the possibility to :ref:`include other files +`. Re2c provides a directive +``/*!include:re2c "file.re" */``, where ``file.re`` is the name of the included +file. +Re2c looks for included files in the directory of the including file and in the +include locations, which can be specified with ``-I`` option. Include files +may have further includes of their own. Re2c provides some predefined include +files that can be found in the ``include/`` sub-directory of the project. These +files contain useful definitions and form something like a standard library +for re2c. Currently there is one available include, ``unicode_categories.re``. + +Re2c now allows to :ref:`generate header file ` +from the input file using option ``-t --type-header`` or +``re2c:flags:t`` and ``re2c:flags:type-header`` configurations and the newly +added directives ``/*!header:re2c:on*/`` and ``/*!header:re2c:off*/``. +Header files may be needed in cases when re2c is used to generate definitions +of constants, variables and structs that must be visible from other translation +units. + +Re2c can now understand UTF8-encoded string literals and character classes in +regular expressions. By default, re2c parses regular expressions like +``"∀x ∃y"`` as a sequence of 1-byte ASCII code points +``e2 88 80 78 20 e2 88 83 79`` (hexadecimal), and the users have to escape +Unicode symbols manually: ``"\u2200x \u2203y"``. This is not what most users +would expect, as demonstrated by multiple issues on the bugtracker. The new +option ``--input-encoding `` allows to change the default +behavior and parse ``"∀x ∃y"`` as a sequence of 4-byte Unicode code points +``2200 78 20 2203 79`` (hexadecimal). Note that the new option affects only +parsing, and not the code generation. + +Re2c now allows to mix :ref:`reusable blocks ` +with normal blocks when ``-r --reuse`` option is used. This is very useful in +cases when the input file contains many re2c blocks, and only some of them need +to be reused (a good example is re2c own lexer, which has to use certain rules +twice in order to generate ASCII and UTF8 lexer variants for +``--input-encoding `` option). + +It is now possible to specify location format in re2c-generated messages with +``--location-format `` option. As one might guess, possible +arguments are GNU location format ``filename:line:column:`` (the default) and +MSVC format ``filename(line,column)``. This option might help IDE users. +Another new option is ``--verbose`` --- it prints a short "success" message in +case re2c exits successfully. + +Flex compatibility mode (enabled with ``-F --flex-support`` option) has been +improved: parsing errors and incorrect operator precedence in some rare cases +have been fixed. Historically re2c allows to mix flex-style code with re2c-style +code, which creates certain difficulties for the parser. Such difficulties can +be resolved by passing parts of the parser context to the lexer. + +The difference operator ``/`` is now applied to its operands before encoding +expansion. Re2c supports difference only for character classes, and encoding +expansion in case of a variable-length encoding may transform even a simple +character class into a complex graph (see +`the graph <../../_images/utf8_any.png>`_ for ``[^]`` in UTF8 for example). +Applying expansion after difference makes ``/`` applicable in more cases. + +Re2c now generates the output file atomically: it first creates a temporary file +and writes the generated output into it, and then renames the temporary file to +the output file. + +Documentation has been rearranged and updated, and the website has been +fixed to look somewhat better on mobile devices (hopefully). + +From developers standpoint, re2c now has better debugging capabilities. Debug +code has been moved in a separate subsystem and is no longer built in release +binaries (debug builds are enabled with ``--enable-debug`` configure option). +New debug options and passes have been added. + +This release has taken almost a year, mostly because of the time needed to +formalize the extended algorithm for POSIX disambiguation and write a formal +paper `Efficient POSIX Submatch Extraction on NFA +<../../2019_borsotti_trofimovich_efficient_posix_submatch_extraction_on_nfa.pdf>`_. +The algorithms described in the paper are implemented in an experimental +library ``libre2c``. The library is intended as a playground for experiments +and research, not a replacement for existing libraries like RE2. Having re2c +as a library is convenient for benchmarking, testing and creating bindings to +other languages. +To build the library and benchmarks, configure re2c with ``--enable-libs`` option. + +Many people have contributed to this release. +Angelo Borsotti co-authored the paper; his hard work has revealed multiple +shortcomings and deficiencies in the algorithms used in re2c. +Henri Salo helped with fuzz-testing re2c using the American Fuzzy Lop. +Denis Naumov helped with Windows portability issues. +Sergei Trofimovich fixed a number of bugs; +he and Serghei Iakovlev helped with the Travis CI infrastructure. +Wesley Terpstra used re2c in the open-source +`wake build tool `_. +Many thanks to them and all the others who contributed to this release! + +A lot of bugs have been fixed. +See the changelog :ref:`releases/changelog/changelog:1.2 (2019-08-02)` for details. diff --git a/_sources/releases/release_notes/1_2_1.rst.txt b/_sources/releases/release_notes/1_2_1.rst.txt new file mode 100644 index 00000000..d8b61a35 --- /dev/null +++ b/_sources/releases/release_notes/1_2_1.rst.txt @@ -0,0 +1,13 @@ +Release 1.2.1 +============= + +This is a minor release that improves some of the features introduced in 1.2. +First, it is now possible to reset ``re2c:eof`` configuration to the +default value by setting it to ``-1``. Second, re2c now installs standard +include files to ``$(datadir)/re2c/stdlib``, where ``$(datadir)`` is +``/usr/share`` by default (but can be configured otherwise). When looking for +include files, re2c automatically tries this directory --- there is no need +to add it manually with ``-I``. +Both issues have been reported by Wesley W. Terpstra. Thank you! + +See the changelog :ref:`releases/changelog/changelog:1.2.1 (2019-08-11)` for details. diff --git a/_static/ajax-loader.gif b/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@Cw{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN literal 0 HcmV?d00001 diff --git a/_static/basic.css b/_static/basic.css new file mode 100644 index 00000000..19ced105 --- /dev/null +++ b/_static/basic.css @@ -0,0 +1,665 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 450px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +div.code-block-caption { + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +div.code-block-caption + div > div.highlight > pre { + margin-top: 0; +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + padding: 1em 1em 0; +} + +div.literal-block-wrapper div.highlight { + margin: 0; +} + +code.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +code.descclassname { + background-color: transparent; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: relative; + left: 0px; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/_static/comment-bright.png b/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..15e27edb12ac25701ac0ac21b97b52bb4e45415e GIT binary patch literal 756 zcmVgfIX78 z$8Pzv({A~p%??+>KickCb#0FM1rYN=mBmQ&Nwp<#JXUhU;{|)}%&s>suq6lXw*~s{ zvHx}3C%<;wE5CH!BR{p5@ml9ws}y)=QN-kL2?#`S5d*6j zk`h<}j1>tD$b?4D^N9w}-k)bxXxFg>+#kme^xx#qg6FI-%iv2U{0h(Y)cs%5a|m%Pn_K3X_bDJ>EH#(Fb73Z zfUt2Q3B>N+ot3qb*DqbTZpFIn4a!#_R-}{?-~Hs=xSS6p&$sZ-k1zDdtqU`Y@`#qL z&zv-~)Q#JCU(dI)Hf;$CEnK=6CK50}q7~wdbI->?E07bJ0R;!GSQTs5Am`#;*WHjvHRvY?&$Lm-vq1a_BzocI^ULXV!lbMd%|^B#fY;XX)n<&R^L z=84u1e_3ziq;Hz-*k5~zwY3*oDKt0;bM@M@@89;@m*4RFgvvM_4;5LB!@OB@^WbVT zjl{t;a8_>od-~P4 m{5|DvB&z#xT;*OnJqG}gk~_7HcNkCr0000W zanA~u9RIXo;n7c96&U)YLgs-FGlx~*_c{Jgvesu1E5(8YEf&5wF=YFPcRe@1=MJmi zag(L*xc2r0(slpcN!vC5CUju;vHJkHc*&70_n2OZsK%O~A=!+YIw z7zLLl7~Z+~RgWOQ=MI6$#0pvpu$Q43 zP@36QAmu6!_9NPM?o<1_!+stoVRRZbW9#SPe!n;#A_6m8f}|xN1;H{`0RoXQ2LM47 zt(g;iZ6|pCb@h2xk&(}S3=EVBUO0e90m2Lp5CB<(SPIaB;n4))3JB87Or#XPOPcum z?<^(g+m9}VNn4Y&B`g8h{t_$+RB1%HKRY6fjtd-<7&EsU;vs0GM(Lmbhi%Gwcfs0FTF}T zL{_M6Go&E0Eg8FuB*(Yn+Z*RVTBE@10eIOb3El^MhO`GabDll(V0&FlJi2k^;q8af zkENdk2}x2)_KVp`5OAwXZM;dG0?M-S)xE1IKDi6BY@5%Or?#aZ9$gcX)dPZ&wA1a< z$rFXHPn|TBf`e?>Are8sKtKrKcjF$i^lp!zkL?C|y^vlHr1HXeVJd;1I~g&Ob-q)& z(fn7s-KI}G{wnKzg_U5G(V%bX6uk zIa+<@>rdmZYd!9Y=C0cuchrbIjuRB_Wq{-RXlic?flu1*_ux}x%(HDH&nT`k^xCeC ziHi1!ChH*sQ6|UqJpTTzX$aw8e(UfcS^f;6yBWd+(1-70zU(rtxtqR%j z-lsH|CKQJXqD{+F7V0OTv8@{~(wp(`oIP^ZykMWgR>&|RsklFMCnOo&Bd{le} zV5F6424Qzl;o2G%oVvmHgRDP9!=rK8fy^!yV8y*4p=??uIRrrr0?>O!(z*g5AvL2!4z0{sq%vhG*Po}`a<6%kTK5TNhtC8}rXNu&h^QH4A&Sk~Autm*s~45(H7+0bi^MraaRVzr05hQ3iK?j` zR#U@^i0WhkIHTg29u~|ypU?sXCQEQgXfObPW;+0YAF;|5XyaMAEM0sQ@4-xCZe=0e z7r$ofiAxn@O5#RodD8rh5D@nKQ;?lcf@tg4o+Wp44aMl~c47azN_(im0N)7OqdPBC zGw;353_o$DqGRDhuhU$Eaj!@m000000NkvXXu0mjfjZ7Z_ literal 0 HcmV?d00001 diff --git a/_static/doctools.js b/_static/doctools.js new file mode 100644 index 00000000..d8928926 --- /dev/null +++ b/_static/doctools.js @@ -0,0 +1,313 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var bbox = span.getBBox(); + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + var parentOfText = node.parentNode.parentNode; + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated === 'undefined') + return string; + return (typeof translated === 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated === 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) === 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this === '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + }, + + initOnKeyListeners: function() { + $(document).keyup(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box or textarea + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + switch (event.keyCode) { + case 37: // left + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + case 39: // right + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); \ No newline at end of file diff --git a/_static/documentation_options.js b/_static/documentation_options.js new file mode 100644 index 00000000..76282090 --- /dev/null +++ b/_static/documentation_options.js @@ -0,0 +1,9 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '1.2', + LANGUAGE: 'None', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' +}; \ No newline at end of file diff --git a/_static/down-pressed.png b/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..5756c8cad8854722893dc70b9eb4bb0400343a39 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`OFdm2Ln;`PZ^+1>KjR?B@S0W7 z%OS_REiHONoJ6{+Ks@6k3590|7k9F+ddB6!zw3#&!aw#S`x}3V3&=A(a#84O-&F7T z^k3tZB;&iR9siw0|F|E|DAL<8r-F4!1H-;1{e*~yAKZN5f0|Ei6yUmR#Is)EM(Po_ zi`qJR6|P<~+)N+kSDgL7AjdIC_!O7Q?eGb+L+qOjm{~LLinM4NHn7U%HcK%uoMYO5 VJ~8zD2B3o(JYD@<);T3K0RV0%P>BEl literal 0 HcmV?d00001 diff --git a/_static/down.png b/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3bdad2ceffae91cee61b32f3295f9bbe646e48 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6CVIL!hEy=F?b*7pIY7kW{q%Rg zx!yQ<9v8bmJwa`TQk7YSw}WVQ()mRdQ;TC;* literal 0 HcmV?d00001 diff --git a/_static/favicon.ico b/_static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..386f482aa1dc3bd8e8a95a1f7fb30b24aba4f76f GIT binary patch literal 318 zcmbV{u?<2o3`AcfBnk@rg+xvHcc7qPnBTGiY{Et$W}*2F3U@I<)Hpi(V*5@B6rG4r zUN9Ee0;3SZPH^9GX*rW;j?;0Is`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/_static/jquery-3.2.1.js b/_static/jquery-3.2.1.js new file mode 100644 index 00000000..d2d8ca47 --- /dev/null +++ b/_static/jquery-3.2.1.js @@ -0,0 +1,10253 @@ +/*! + * jQuery JavaScript Library v3.2.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2017-03-20T18:59Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + + + + function DOMEval( code, doc ) { + doc = doc || document; + + var script = doc.createElement( "script" ); + + script.text = code; + doc.head.appendChild( script ).parentNode.removeChild( script ); + } +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.2.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + + // As of jQuery 3.0, isNumeric is limited to + // strings and numbers (primitives or objects) + // that can be coerced to finite numbers (gh-2662) + var type = jQuery.type( obj ); + return ( type === "number" || type === "string" ) && + + // parseFloat NaNs numeric-cast false positives ("") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + !isNaN( obj - parseFloat( obj ) ); + }, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE <=9 - 11, Edge 12 - 13 + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.3 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-08-08 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true && ("form" in elem || "label" in elem); + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + disabledAncestor( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9-11, Edge + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + if ( preferredDoc !== document && + (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( el ) { + el.className = "i"; + return !el.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + }); + + // ID filter and find + if ( support.getById ) { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( (elem = elems[i++]) ) { + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( el ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll(":enabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll(":disabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( el ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return (sel + "").replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( (oldCache = uniqueCache[ key ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( el ) { + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Simple selector that can be filtered directly, removing non-Elements + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + // Complex selector, compare the two sets, removing non-Elements + qualifier = jQuery.filter( qualifier, elements ); + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1; + } ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( nodeName( elem, "iframe" ) ) { + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( jQuery.isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && jQuery.isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( jQuery.isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ jQuery.camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ jQuery.camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( jQuery.camelCase ); + } else { + key = jQuery.camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + jQuery.contains( elem.ownerDocument, elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, + scale = 1, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + do { + + // If previous iteration zeroed out, double until we get *something*. + // Use string for doubling so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + initialInUnit = initialInUnit / scale; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Update scale, tolerating zero or NaN from tween.cur() + // Break the loop if scale is unchanged or perfect, or if we've just had enough. + } while ( + scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations + ); + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); + +var rscriptType = ( /^$|\/(?:java|ecma)script/i ); + + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // Support: IE <=9 only + option: [ 1, "" ], + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "
", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); +var documentElement = document.documentElement; + + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 only +// See #13393 for more info +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = {}; + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: jQuery.isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + + // Support: IE <=10 - 11, Edge 12 - 13 + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( ">tbody", elem )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rmargin = ( /^margin/ ); + +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + div.style.cssText = + "box-sizing:border-box;" + + "position:relative;display:block;" + + "margin:auto;border:1px;padding:1px;" + + "top:1%;width:50%"; + div.innerHTML = ""; + documentElement.appendChild( container ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = divStyle.marginLeft === "2px"; + boxSizingReliableVal = divStyle.width === "4px"; + + // Support: Android 4.0 - 4.3 only + // Some styles come back with percentage values, even though they shouldn't + div.style.marginRight = "50%"; + pixelMarginRightVal = divStyle.marginRight === "4px"; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + + "padding:0;margin-top:1px;position:absolute"; + container.appendChild( div ); + + jQuery.extend( support, { + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelMarginRight: function() { + computeStyleTests(); + return pixelMarginRightVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a property mapped along what jQuery.cssProps suggests or to +// a vendor prefixed property. +function finalPropName( name ) { + var ret = jQuery.cssProps[ name ]; + if ( !ret ) { + ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; + } + return ret; +} + +function setPositiveNumber( elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i, + val = 0; + + // If we already have the right measurement, avoid augmentation + if ( extra === ( isBorderBox ? "border" : "content" ) ) { + i = 4; + + // Otherwise initialize for horizontal or vertical properties + } else { + i = name === "width" ? 1 : 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // At this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + + // At this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // At this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with computed style + var valueIsBorderBox, + styles = getStyles( elem ), + val = curCSS( elem, name, styles ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test( val ) ) { + return val; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && + ( support.boxSizingReliable() || val === elem.style[ name ] ); + + // Fall back to offsetWidth/Height when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + if ( val === "auto" ) { + val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ]; + } + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + + // Use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + "float": "cssFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + if ( type === "number" ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = jQuery.camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + } ) : + getWidthOrHeight( elem, name, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = extra && getStyles( elem ), + subtract = extra && augmentWidthOrHeight( + elem, + name, + extra, + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ); + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ name ] = value; + value = jQuery.css( elem, name ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = jQuery.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 13 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( jQuery.isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + jQuery.proxy( result.stop, result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnothtmlwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnothtmlwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( type === "string" ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = value.match( rnothtmlwhite ) || []; + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, isFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; +} ); + +jQuery.fn.extend( { + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +} ); + + + + +support.focusin = "onfocusin" in window; + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = jQuery.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = jQuery.isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( jQuery.isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 13 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available, append data to url + if ( s.data ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + "throws": true + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( jQuery.isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + + + + + + + + +

+ +
+
+
+
+ +
+

Multiple blocks¶

+

This example demonstrates the use of multiple interrelated /*!re2c ... */ blocks. +We pick a deliberately simple task (parsing integers), +so that all complexity is associated with relations between blocks and not with the lexical grammar.

+

[multiple_blocks.re]

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
#include <limits.h>
+#include <stdio.h>
+
+template<int base>
+static bool adddgt(unsigned long &u, unsigned int d)
+{
+    if (u > (ULONG_MAX - d) / base) {
+        return false;
+    }
+    u = u * base + d;
+    return true;
+}
+
+static bool lex(const char *s, unsigned long &u)
+{
+    const char *YYMARKER;
+    const char *YYCTXMARKER;
+    u = 0;
+
+    /*!re2c
+        re2c:yyfill:enable = 0;
+        re2c:define:YYCTYPE = char;
+        re2c:define:YYCURSOR = s;
+
+        end = "\x00";
+    */
+
+    /*!re2c
+        *                  { return false; }
+        '0b' / [01]        { goto bin; }
+        "0"                { goto oct; }
+        "" / [1-9]         { goto dec; }
+        '0x' / [0-9a-fA-F] { goto hex; }
+    */
+
+bin:
+    /*!re2c
+        *     { return false; }
+        end   { return true; }
+        [01]  { if (!adddgt<2>(u, s[-1] - '0')) return false; goto bin; }
+    */
+
+oct:
+    /*!re2c
+        *     { return false; }
+        end   { return true; }
+        [0-7] { if (!adddgt<8>(u, s[-1] - '0')) return false; goto oct; }
+    */
+
+dec:
+    /*!re2c
+        *     { return false; }
+        end   { return true; }
+        [0-9] { if (!adddgt<10>(u, s[-1] - '0')) return false; goto dec; }
+    */
+
+hex:
+    /*!re2c
+        *     { return false; }
+        end   { return true; }
+        [0-9] { if (!adddgt<16>(u, s[-1] - '0'))      return false; goto hex; }
+        [a-f] { if (!adddgt<16>(u, s[-1] - 'a' + 10)) return false; goto hex; }
+        [A-F] { if (!adddgt<16>(u, s[-1] - 'A' + 10)) return false; goto hex; }
+    */
+}
+
+int main(int argc, char **argv)
+{
+    for (int i = 1; i < argc; ++i) {
+        unsigned long u;
+        if (lex(argv[i], u)) {
+            printf("%lu\n", u);
+        } else {
+            printf("error\n");
+        }
+    }
+    return 0;
+}
+
+
+

Notes:

+
    +
  • Configurations and definitions (lines 20 - 26) are not scoped to a single re2c block — they are global. +Each block may override configurations, but this affects the global scope.
  • +
  • Blocks don’t have to be in the same function: they can be in separate functions or elsewhere +as long as the exposed interface fits into the lexical scope.
  • +
+

Compile:

+
$ re2c -o multiple_blocks.cc multiple_blocks.re
+$ g++ -o multiple_blocks multiple_blocks.cc
+
+
+

Run:

+
$ ./multiple_blocks 0 12345678901234567890 0xFFFFffffFFFFffff 0x1FFFFffffFFFFffff 0xAbcDEf 0x00 007 0B0 0b110101010 ""
+0
+12345678901234567890
+18446744073709551615
+error
+11259375
+0
+7
+0
+426
+error
+
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/examples/example_05.html b/examples/example_05.html new file mode 100644 index 00000000..b197f966 --- /dev/null +++ b/examples/example_05.html @@ -0,0 +1,220 @@ + + + + + + + + Conditions — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Conditions¶

+

This example demonstrates the use of conditions. +It is similar in functionality to the Multiple blocks example, +except that individual sub-lexers are connected usding conditions rather than multiple blocks. +Conditions allow to encode multiple interconnected lexers within a single re2c block.

+

[conditions.re]

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
#include <limits.h>
+#include <stdio.h>
+
+template<int base>
+static bool adddgt(unsigned long &u, unsigned int d)
+{
+    if (u > (ULONG_MAX - d) / base) {
+        return false;
+    }
+    u = u * base + d;
+    return true;
+}
+
+/*!types:re2c*/
+
+static bool lex(const char *s, unsigned long &u)
+{
+    const char *YYMARKER;
+    const char *YYCTXMARKER;
+    int c = yycinit;
+    u = 0;
+    /*!re2c
+        re2c:yyfill:enable = 0;
+        re2c:define:YYCTYPE = char;
+        re2c:define:YYCURSOR = s;
+        re2c:define:YYGETCONDITION = "c";
+        re2c:define:YYGETCONDITION:naked = 1;
+        re2c:define:YYSETCONDITION = "c = @@;";
+        re2c:define:YYSETCONDITION:naked = 1;
+
+        <*> * { return false; }
+
+        <init> '0b' / [01]        :=> bin
+        <init> "0"                :=> oct
+        <init> "" / [1-9]         :=> dec
+        <init> '0x' / [0-9a-fA-F] :=> hex
+
+        <bin, oct, dec, hex> "\x00" { return true; }
+        <bin> [01]  { if (!adddgt<2>(u, s[-1] - '0')) return false; goto yyc_bin; }
+        <oct> [0-7] { if (!adddgt<8>(u, s[-1] - '0')) return false; goto yyc_oct; }
+        <dec> [0-9] { if (!adddgt<10>(u, s[-1] - '0')) return false; goto yyc_dec; }
+        <hex> [0-9] { if (!adddgt<16>(u, s[-1] - '0'))      return false; goto yyc_hex; }
+        <hex> [a-f] { if (!adddgt<16>(u, s[-1] - 'a' + 10)) return false; goto yyc_hex; }
+        <hex> [A-F] { if (!adddgt<16>(u, s[-1] - 'A' + 10)) return false; goto yyc_hex; }
+    */
+}
+
+int main(int argc, char **argv)
+{
+    for (int i = 1; i < argc; ++i) {
+        unsigned long u;
+        if (lex(argv[i], u)) {
+            printf("%lu\n", u);
+        } else {
+            printf("error\n");
+        }
+    }
+    return 0;
+}
+
+
+

Notes:

+
    +
  • Conditions are enabled with the -c option.
  • +
  • Conditions are only syntactic sugar; they can be translated into multiple blocks.
  • +
  • Each condition is a standalone lexer (DFA).
  • +
  • Each condition has a unique identifier: /*!types:re2c*/ tells re2c to generate +an enumeration of all the identifiers (the names are prefixed with yyc by default). +The lexer uses YYGETCONDITION to get the identifier of the current condition +and YYSETCONDITION to set it.
  • +
  • Each condition has a unique label (prefixed with yyc_ by default).
  • +
  • Conditions are connected: transitions are allowed between the final states of one condition +and the start state of another condition (but not between inner states of different conditions). +The generated code starts with dispatch. +Actions can either jump to the initial dispatch or jump directly to a condition.
  • +
  • The <*> rule is merged to all conditions (low priority).
  • +
  • Rules with multiple conditions are merged to each listed condition (normal priority).
  • +
  • :=> jumps directly to the next condition (bypassing the initial dispatch).
  • +
+

Compile:

+
$ re2c -c -o conditions.cc conditions.re
+$ g++ -o conditions conditions.cc
+
+
+

Run:

+
$ ./conditions 0 12345678901234567890 0xFFFFffffFFFFffff 0x1FFFFffffFFFFffff 0xAbcDEf 0x00 007 0B0 0b110101010 ""
+0
+12345678901234567890
+18446744073709551615
+error
+11259375
+0
+7
+0
+426
+error
+
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/examples/example_06.html b/examples/example_06.html new file mode 100644 index 00000000..beb02730 --- /dev/null +++ b/examples/example_06.html @@ -0,0 +1,581 @@ + + + + + + + + Braille patterns — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Braille patterns¶

+

This example is about encoding support in re2c. +It’s a partial decoder from Grade-1 (uncontracted) Unicode English Braille to plain English. +The input may be encoded in UTF-8, UTF-16, UTF-32, or UCS-2: +all of these encodings are capable of representing Braille patterns (code points [0x2800 - 0x28ff]). +We use the -r option to reuse the same block of re2c rules with different encodings.

+

So. The hardest part is to get some input. +Here is a message out of the void:

+

⠠⠁⠇⠇⠀⠓⠥⠍⠁⠝⠀⠃⠑⠊⠝⠛⠎⠀⠁⠗⠑⠀⠃⠕⠗⠝⠀⠋⠗⠑⠑⠀⠁⠝⠙⠀⠑⠟⠥⠁⠇⠀⠊⠝⠀⠙⠊⠛⠝⠊⠞⠽⠀⠁⠝⠙⠀⠗⠊⠛⠓⠞⠎⠲⠀ +⠠⠞⠓⠑⠽⠀⠁⠗⠑⠀⠑⠝⠙⠕⠺⠑⠙⠀⠺⠊⠞⠓⠀⠗⠑⠁⠎⠕⠝⠀⠁⠝⠙⠀⠉⠕⠝⠎⠉⠊⠑⠝⠉⠑⠀⠁⠝⠙⠀⠎⠓⠕⠥⠇⠙⠀⠁⠉⠞⠀⠞⠕⠺⠁⠗⠙⠎⠀ +⠕⠝⠑⠀⠁⠝⠕⠞⠓⠑⠗⠀⠊⠝⠀⠁⠀⠎⠏⠊⠗⠊⠞⠀⠕⠋⠀⠃⠗⠕⠞⠓⠑⠗⠓⠕⠕⠙⠲

+

It appears to be UTF-8 encoded [braille.utf8.txt]. +Let’s convert it into UTF-16, UTF-32, and UCS-2:

+
$ iconv -f utf8 -t utf16le 06_braille.utf8.txt > 06_braille.utf16.txt
+$ iconv -f utf8 -t utf32le 06_braille.utf8.txt > 06_braille.utf32.txt
+$ iconv -f utf8 -t ucs2 06_braille.utf8.txt > 06_braille.ucs2.txt
+
+
+

And the input is ready.

+

Grade-1 Braille is quite simple (compared to Grade-2 Braille). +Patterns map directly to symbols (letters, digits, and punctuators) except for a couple of special patterns: +the numeric mode indicator (â ¼), the letter mode indicator (â °), the capital letter indicator (â  ) +and some others, which we omit here for the sake of simplicity (as well as a few ambiguous punctuation patterns). +Grade-2 Braille allows contractions; those obey some rather complex rules (like those of a natural language) +and are much harder to implement.

+

[braille.re]

+
  1
+  2
+  3
+  4
+  5
+  6
+  7
+  8
+  9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+ 32
+ 33
+ 34
+ 35
+ 36
+ 37
+ 38
+ 39
+ 40
+ 41
+ 42
+ 43
+ 44
+ 45
+ 46
+ 47
+ 48
+ 49
+ 50
+ 51
+ 52
+ 53
+ 54
+ 55
+ 56
+ 57
+ 58
+ 59
+ 60
+ 61
+ 62
+ 63
+ 64
+ 65
+ 66
+ 67
+ 68
+ 69
+ 70
+ 71
+ 72
+ 73
+ 74
+ 75
+ 76
+ 77
+ 78
+ 79
+ 80
+ 81
+ 82
+ 83
+ 84
+ 85
+ 86
+ 87
+ 88
+ 89
+ 90
+ 91
+ 92
+ 93
+ 94
+ 95
+ 96
+ 97
+ 98
+ 99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
#include <ctype.h>
+#include <stdio.h>
+
+template<typename char_t>
+struct input_t {
+    size_t len;
+    char_t *str;
+
+    input_t(FILE *f) : len(0), str(NULL)
+    {
+        fseek(f, 0, SEEK_END);
+        len = ftell(f) / sizeof(char_t);
+        fseek(f, 0, SEEK_SET);
+        str = new char_t[len + 1];
+        fread(str, sizeof(char_t), len, f);
+        str[len] = 0;
+    }
+    ~input_t()
+    {
+        delete[]str;
+    }
+};
+
+typedef input_t<unsigned char>  iutf8_t;
+typedef input_t<unsigned short> iutf16_t;
+typedef input_t<unsigned int>   iutf32_t;
+typedef input_t<unsigned short> iucs2_t;
+
+struct out_t {
+    bool caps;
+
+    out_t() : caps(false) {}
+    void prt(char c)
+    {
+        printf("%c", caps ? toupper(c) : c);
+        caps = false;
+    }
+    void err()
+    {
+        printf(" ... error\n");
+    }
+};
+
+/*!rules:re2c
+    re2c:yyfill:enable = 0;
+
+    // letters
+    l = "\u2830";
+    la = "\u2801"; lb = "\u2803"; lc = "\u2809"; ld = "\u2819"; le = "\u2811";
+    lf = "\u280b"; lg = "\u281b"; lh = "\u2813"; li = "\u280a"; lj = "\u281a";
+    lk = "\u2805"; ll = "\u2807"; lm = "\u280d"; ln = "\u281d"; lo = "\u2815";
+    lp = "\u280f"; lq = "\u281f"; lr = "\u2817"; ls = "\u280e"; lt = "\u281e";
+    lu = "\u2825"; lv = "\u2827"; lw = "\u283a"; lx = "\u282d"; ly = "\u283d";
+    lz = "\u2835";
+
+    // numbers
+    n = "\u283c";
+    n1 = "\u2801"; n2 = "\u2803"; n3 = "\u2809"; n4 = "\u2819"; n5 = "\u2811";
+    n6 = "\u280b"; n7 = "\u281b"; n8 = "\u2813"; n9 = "\u280a"; n0 = "\u281a";
+
+    // punctuation
+    pcom = "\u2802"; psem = "\u2806"; pcln = "\u2812";
+    pdot = "\u2832"; pxcl = "\u2816"; pqst = "\u2826";
+    past = "\u2814"; pdsh = "\u2804"; phyp = "\u2824";
+
+    // formatting
+    fcp = "\u2820"; fsp = "\u2800" | "\x20"; fnl = "\n" | "\n\r";
+
+    <*> *      { out.err(); return; }
+    <*> "\x00" { if (YYCURSOR != in.str + in.len + 1) out.err(); return; }
+
+    <*> l :=> l
+    <l> la { out.prt('a'); goto yyc_l; }
+    <l> lb { out.prt('b'); goto yyc_l; }
+    <l> lc { out.prt('c'); goto yyc_l; }
+    <l> ld { out.prt('d'); goto yyc_l; }
+    <l> le { out.prt('e'); goto yyc_l; }
+    <l> lf { out.prt('f'); goto yyc_l; }
+    <l> lg { out.prt('g'); goto yyc_l; }
+    <l> lh { out.prt('h'); goto yyc_l; }
+    <l> li { out.prt('i'); goto yyc_l; }
+    <l> lj { out.prt('j'); goto yyc_l; }
+    <l> lk { out.prt('k'); goto yyc_l; }
+    <l> ll { out.prt('l'); goto yyc_l; }
+    <l> lm { out.prt('m'); goto yyc_l; }
+    <l> ln { out.prt('n'); goto yyc_l; }
+    <l> lo { out.prt('o'); goto yyc_l; }
+    <l> lp { out.prt('p'); goto yyc_l; }
+    <l> lq { out.prt('q'); goto yyc_l; }
+    <l> lr { out.prt('r'); goto yyc_l; }
+    <l> ls { out.prt('s'); goto yyc_l; }
+    <l> lt { out.prt('t'); goto yyc_l; }
+    <l> lu { out.prt('u'); goto yyc_l; }
+    <l> lv { out.prt('v'); goto yyc_l; }
+    <l> lw { out.prt('w'); goto yyc_l; }
+    <l> lx { out.prt('x'); goto yyc_l; }
+    <l> ly { out.prt('y'); goto yyc_l; }
+    <l> lz { out.prt('z'); goto yyc_l; }
+
+    <*> n :=> n
+    <n> n1 { out.prt('1'); goto yyc_n; }
+    <n> n2 { out.prt('2'); goto yyc_n; }
+    <n> n3 { out.prt('3'); goto yyc_n; }
+    <n> n4 { out.prt('4'); goto yyc_n; }
+    <n> n5 { out.prt('5'); goto yyc_n; }
+    <n> n6 { out.prt('6'); goto yyc_n; }
+    <n> n7 { out.prt('7'); goto yyc_n; }
+    <n> n8 { out.prt('8'); goto yyc_n; }
+    <n> n9 { out.prt('9'); goto yyc_n; }
+    <n> n0 { out.prt('0'); goto yyc_n; }
+
+    <*> pcom { out.prt(','); goto yyc_l; }
+    <*> psem { out.prt(';'); goto yyc_l; }
+    <*> pcln { out.prt(':'); goto yyc_l; }
+    <*> pdot { out.prt('.'); goto yyc_l; }
+    <*> pxcl { out.prt('!'); goto yyc_l; }
+    <*> pqst { out.prt('?'); goto yyc_l; }
+    <*> past { out.prt('*'); goto yyc_l; }
+    <*> pdsh { out.prt('\''); goto yyc_l; }
+    <*> phyp { out.prt('-'); goto yyc_l; }
+
+    <*> fcp { out.caps = true; goto yyc_l; }
+    <*> fsp { out.prt(' '); goto yyc_l; }
+    <*> fnl { out.prt('\n'); goto yyc_l; }
+*/
+
+/*!types:re2c*/
+
+static void lex_utf8(const iutf8_t & in)
+{
+    const unsigned char *YYCURSOR = in.str;
+    const unsigned char *YYMARKER;
+    int c = yycl;
+    out_t out;
+    /*!use:re2c
+        re2c:define:YYCTYPE = "unsigned char";
+        re2c:define:YYGETCONDITION = "c";
+        re2c:define:YYGETCONDITION:naked = 1;
+        re2c:define:YYSETCONDITION = "c = @@;";
+        re2c:define:YYSETCONDITION:naked = 1;
+    */
+}
+
+static void lex_utf16(const iutf16_t & in)
+{
+    const unsigned short *YYCURSOR = in.str;
+    int c = yycl;
+    out_t out;
+    /*!use:re2c
+        re2c:define:YYCTYPE = "unsigned int";
+        re2c:define:YYGETCONDITION = "c";
+        re2c:define:YYGETCONDITION:naked = 1;
+        re2c:define:YYSETCONDITION = "c = @@;";
+        re2c:define:YYSETCONDITION:naked = 1;
+        re2c:flags:8 = 0;
+        re2c:flags:x = 1;
+    */
+}
+
+static void lex_utf32(const iutf32_t & in)
+{
+    const unsigned int *YYCURSOR = in.str;
+    int c = yycl;
+    out_t out;
+    /*!use:re2c
+        re2c:define:YYCTYPE = "unsigned int";
+        re2c:define:YYGETCONDITION = "c";
+        re2c:define:YYGETCONDITION:naked = 1;
+        re2c:define:YYSETCONDITION = "c = @@;";
+        re2c:define:YYSETCONDITION:naked = 1;
+        re2c:flags:x = 0;
+        re2c:flags:u = 1;
+    */
+}
+
+static void lex_ucs2(const iucs2_t & in)
+{
+    const unsigned short *YYCURSOR = in.str;
+    int c = yycl;
+    out_t out;
+    /*!use:re2c
+        re2c:define:YYCTYPE = "unsigned int";
+        re2c:define:YYGETCONDITION = "c";
+        re2c:define:YYGETCONDITION:naked = 1;
+        re2c:define:YYSETCONDITION = "c = @@;";
+        re2c:define:YYSETCONDITION:naked = 1;
+        re2c:flags:u = 0;
+        re2c:flags:w = 1;
+    */
+}
+
+int main()
+{
+    FILE *f;
+
+    f = fopen("06_braille.utf8.txt", "rb");
+    if (f) {
+        printf("utf8:\n");
+        iutf8_t in(f);
+        lex_utf8(in);
+        fclose(f);
+    }
+
+    f = fopen("06_braille.utf16.txt", "rb");
+    if (f) {
+        printf("utf16:\n");
+        iutf16_t in(f);
+        lex_utf16(in);
+        fclose(f);
+    }
+
+    f = fopen("06_braille.utf32.txt", "rb");
+    if (f) {
+        printf("utf32:\n");
+        iutf32_t in(f);
+        lex_utf32(in);
+        fclose(f);
+    }
+
+    f = fopen("06_braille.ucs2.txt", "rb");
+    if (f) {
+        printf("ucs2:\n");
+        iucs2_t in(f);
+        lex_ucs2(in);
+        fclose(f);
+    }
+
+    return 0;
+}
+
+
+

Notes:

+
    +
  • The reuse mode is enabled with the -r option.
  • +
  • In the reuse mode, re2c expects a single /*!rules:re2c ... */ block +followed by multiple /*!use:re2c ... */ blocks. +All blocks can have their own configurations, definitions, and rules.
  • +
  • Encoding can be enabled either with a command-line option or a configuration.
  • +
  • Each encoding needs the appropriate code unit type (YYCTYPE).
  • +
  • We use conditions to switch between numeric and normal modes.
  • +
+

Compile:

+
$ re2c -cr8 -o braille.cc braille.re
+$ g++ -o braille braille.cc
+
+
+

Run:

+
$ ./braille
+utf8:
+All human beings are born free and equal in dignity and rights.
+They are endowed with reason and conscience and should act towards
+one another in a spirit of brotherhood.
+
+utf16:
+All human beings are born free and equal in dignity and rights.
+They are endowed with reason and conscience and should act towards
+one another in a spirit of brotherhood.
+
+utf32:
+All human beings are born free and equal in dignity and rights.
+They are endowed with reason and conscience and should act towards
+one another in a spirit of brotherhood.
+
+ucs2:
+All human beings are born free and equal in dignity and rights.
+They are endowed with reason and conscience and should act towards
+one another in a spirit of brotherhood.
+
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/examples/example_07.html b/examples/example_07.html new file mode 100644 index 00000000..aeba486a --- /dev/null +++ b/examples/example_07.html @@ -0,0 +1,875 @@ + + + + + + + + C++98 lexer — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

C++98 lexer¶

+

This is an example of a big, real-world re2c program: a C++98 lexer. +It conforms to the C++98 standard (except for a couple of hacks that simulate the preprocessor). +All nontrivial lexemes (integers, floating-point constants, strings, and character literals) +are parsed (not only recognized): numeric literals are converted to numbers, and strings are unescaped. +Some additional checks described in the standard (e.g., overflows in integer literals) are also done. +In fact, C++ is an easy language to lex: unlike in many other languages, the C++98 lexer can proceed without feedback from the parser.

+

[cxx98.re]

+
  1
+  2
+  3
+  4
+  5
+  6
+  7
+  8
+  9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+ 32
+ 33
+ 34
+ 35
+ 36
+ 37
+ 38
+ 39
+ 40
+ 41
+ 42
+ 43
+ 44
+ 45
+ 46
+ 47
+ 48
+ 49
+ 50
+ 51
+ 52
+ 53
+ 54
+ 55
+ 56
+ 57
+ 58
+ 59
+ 60
+ 61
+ 62
+ 63
+ 64
+ 65
+ 66
+ 67
+ 68
+ 69
+ 70
+ 71
+ 72
+ 73
+ 74
+ 75
+ 76
+ 77
+ 78
+ 79
+ 80
+ 81
+ 82
+ 83
+ 84
+ 85
+ 86
+ 87
+ 88
+ 89
+ 90
+ 91
+ 92
+ 93
+ 94
+ 95
+ 96
+ 97
+ 98
+ 99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
#include <float.h>
+#include <limits.h>
+#include <stdio.h>
+#include <string.h>
+
+/*!max:re2c*/
+static const size_t SIZE = 64 * 1024;
+
+struct input_t {
+    unsigned char buf[SIZE + YYMAXFILL];
+    unsigned char *lim;
+    unsigned char *cur;
+    unsigned char *mar;
+    unsigned char *tok;
+    bool eof;
+
+    FILE *const file;
+
+    input_t(FILE *f)
+        : buf()
+        , lim(buf + SIZE)
+        , cur(lim)
+        , mar(lim)
+        , tok(lim)
+        , eof(false)
+        , file(f)
+    {}
+    bool fill(size_t need)
+    {
+        if (eof) {
+            return false;
+        }
+        const size_t free = tok - buf;
+        if (free < need) {
+            return false;
+        }
+        memmove(buf, tok, lim - tok);
+        lim -= free;
+        cur -= free;
+        mar -= free;
+        tok -= free;
+        lim += fread(lim, 1, free, file);
+        if (lim < buf + SIZE) {
+            eof = true;
+            memset(lim, 0, YYMAXFILL);
+            lim += YYMAXFILL;
+        }
+        return true;
+    }
+};
+
+/*!re2c re2c:define:YYCTYPE = "unsigned char"; */
+
+template<int base>
+static bool adddgt(unsigned long &u, unsigned long d)
+{
+    if (u > (ULONG_MAX - d) / base) {
+        return false;
+    }
+    u = u * base + d;
+    return true;
+}
+
+static bool lex_oct(const unsigned char *s, const unsigned char *e, unsigned long &u)
+{
+    for (u = 0, ++s; s < e; ++s) {
+        if (!adddgt<8>(u, *s - 0x30u)) {
+            return false;
+        }
+    }
+    return true;
+}
+
+static bool lex_dec(const unsigned char *s, const unsigned char *e, unsigned long &u)
+{
+    for (u = 0; s < e; ++s) {
+        if (!adddgt<10>(u, *s - 0x30u)) {
+            return false;
+        }
+    }
+    return true;
+}
+
+static bool lex_hex(const unsigned char *s, const unsigned char *e, unsigned long &u)
+{
+    for (u = 0, s += 2; s < e;) {
+    /*!re2c
+        re2c:yyfill:enable = 0;
+        re2c:define:YYCURSOR = s;
+        *     { if (!adddgt<16>(u, s[-1] - 0x30u))      return false; continue; }
+        [a-f] { if (!adddgt<16>(u, s[-1] - 0x61u + 10)) return false; continue; }
+        [A-F] { if (!adddgt<16>(u, s[-1] - 0x41u + 10)) return false; continue; }
+    */
+    }
+    return true;
+}
+
+static bool lex_str(input_t &in, unsigned char q)
+{
+    printf("%c", q);
+    for (unsigned long u = q;; printf("\\x%lx", u)) {
+        in.tok = in.cur;
+        /*!re2c
+            re2c:define:YYCURSOR = in.cur;
+            re2c:define:YYMARKER = in.mar;
+            re2c:define:YYLIMIT = in.lim;
+            re2c:yyfill:enable = 1;
+            re2c:define:YYFILL = "if (!in.fill(@@)) return false;";
+            re2c:define:YYFILL:naked = 1;
+            *                    { return false; }
+            [^\n\\]              { u = in.tok[0]; if (u == q) break; continue; }
+            "\\a"                { u = '\a'; continue; }
+            "\\b"                { u = '\b'; continue; }
+            "\\f"                { u = '\f'; continue; }
+            "\\n"                { u = '\n'; continue; }
+            "\\r"                { u = '\r'; continue; }
+            "\\t"                { u = '\t'; continue; }
+            "\\v"                { u = '\v'; continue; }
+            "\\\\"               { u = '\\'; continue; }
+            "\\'"                { u = '\''; continue; }
+            "\\\""               { u = '"';  continue; }
+            "\\?"                { u = '?';  continue; }
+            "\\" [0-7]{1,3}      { lex_oct(in.tok, in.cur, u); continue; }
+            "\\u" [0-9a-fA-F]{4} { lex_hex(in.tok, in.cur, u); continue; }
+            "\\U" [0-9a-fA-F]{8} { lex_hex(in.tok, in.cur, u); continue; }
+            "\\x" [0-9a-fA-F]+   { if (!lex_hex(in.tok, in.cur, u)) return false; continue; }
+        */
+    }
+    printf("%c", q);
+    return true;
+}
+
+static bool lex_flt(const unsigned char *s)
+{
+    double d = 0;
+    double x = 1;
+    int e = 0;
+    /*!re2c
+        re2c:yyfill:enable = 0;
+        re2c:define:YYCURSOR = s;
+    */
+mant_int:
+    /*!re2c
+        "."   { goto mant_frac; }
+        [eE]  { goto exp_sign; }
+        *     { d = (d * 10) + (s[-1] - '0'); goto mant_int; }
+    */
+mant_frac:
+    /*!re2c
+        ""    { goto sfx; }
+        [eE]  { goto exp_sign; }
+        [0-9] { d += (x /= 10) * (s[-1] - '0'); goto mant_frac; }
+    */
+exp_sign:
+    /*!re2c
+        "+"?  { x = 1e+1; goto exp; }
+        "-"   { x = 1e-1; goto exp; }
+    */
+exp:
+    /*!re2c
+        ""    { for (; e > 0; --e) d *= x;    goto sfx; }
+        [0-9] { e = (e * 10) + (s[-1] - '0'); goto exp; }
+    */
+sfx:
+    /*!re2c
+        *     { goto end; }
+        [fF]  { if (d > FLT_MAX) return false; goto end; }
+    */
+end:
+    printf("%g", d);
+    return true;
+}
+
+static bool lex(input_t &in)
+{
+    unsigned long u;
+    for (;;) {
+        in.tok = in.cur;
+        /*!re2c
+            re2c:define:YYCURSOR = in.cur;
+            re2c:define:YYMARKER = in.mar;
+            re2c:define:YYLIMIT = in.lim;
+            re2c:yyfill:enable = 1;
+            re2c:define:YYFILL = "if (!in.fill(@@)) return false;";
+            re2c:define:YYFILL:naked = 1;
+
+            end = "\x00";
+
+            *   { return false; }
+            end { return in.lim - in.tok == YYMAXFILL; }
+
+            // macros
+            macro = ("#" | "%:") ([^\n] | "\\\n")* "\n";
+            macro { continue; }
+
+            // whitespaces
+            mcm = "/*" ([^*] | ("*" [^/]))* "*""/";
+            scm = "//" [^\n]* "\n";
+            wsp = ([ \t\v\n\r] | scm | mcm)+;
+            wsp { printf(" "); continue; }
+
+            // character and string literals
+            "L"? ['"] { if (!lex_str(in, in.cur[-1])) return false; continue; }
+            "L"? "''" { return false; }
+
+            // integer literals
+            oct = "0" [0-7]*;
+            dec = [1-9][0-9]*;
+            hex = '0x' [0-9a-fA-F]+;
+            oct { if (!lex_oct(in.tok, in.cur, u)) return false; goto sfx; }
+            dec { if (!lex_dec(in.tok, in.cur, u)) return false; goto sfx; }
+            hex { if (!lex_hex(in.tok, in.cur, u)) return false; goto sfx; }
+
+            // floating literals
+            frc = [0-9]* "." [0-9]+ | [0-9]+ ".";
+            exp = 'e' [+-]? [0-9]+;
+            flt = (frc exp? | [0-9]+ exp) [fFlL]?;
+            flt { if (lex_flt(in.tok)) continue; return false; }
+
+            // boolean literals
+            "false" { printf("false"); continue; }
+            "true"  { printf("true");  continue; }
+
+            // keywords
+            "asm"              { printf("ASM");              continue; }
+            "auto"             { printf("AUTO");             continue; }
+            "bool"             { printf("BOOL");             continue; }
+            "break"            { printf("BREAK");            continue; }
+            "case"             { printf("CASE");             continue; }
+            "catch"            { printf("CATCH");            continue; }
+            "char"             { printf("CHAR");             continue; }
+            "class"            { printf("CLASS");            continue; }
+            "const"            { printf("CONST");            continue; }
+            "const_cast"       { printf("CONST_CAST");       continue; }
+            "continue"         { printf("CONTINUE");         continue; }
+            "default"          { printf("DEFAULT");          continue; }
+            "do"               { printf("DO");               continue; }
+            "double"           { printf("DOUBLE");           continue; }
+            "dynamic_cast"     { printf("DYNAMIC_CAST");     continue; }
+            "else"             { printf("ELSE");             continue; }
+            "enum"             { printf("ENUM");             continue; }
+            "explicit"         { printf("EXPLICIT");         continue; }
+            "export"           { printf("EXPORT");           continue; }
+            "extern"           { printf("EXTERN");           continue; }
+            "float"            { printf("FLOAT");            continue; }
+            "for"              { printf("FOR");              continue; }
+            "friend"           { printf("FRIEND");           continue; }
+            "goto"             { printf("GOTO");             continue; }
+            "if"               { printf("IF");               continue; }
+            "inline"           { printf("INLINE");           continue; }
+            "int"              { printf("INT");              continue; }
+            "long"             { printf("LONG");             continue; }
+            "mutable"          { printf("MUTABLE");          continue; }
+            "namespace"        { printf("NAMESPACE");        continue; }
+            "operator"         { printf("OPERATOR");         continue; }
+            "private"          { printf("PRIVATE");          continue; }
+            "protected"        { printf("PROTECTED");        continue; }
+            "public"           { printf("PUBLIC");           continue; }
+            "register"         { printf("REGISTER");         continue; }
+            "reinterpret_cast" { printf("REINTERPRET_CAST"); continue; }
+            "return"           { printf("RETURN");           continue; }
+            "short"            { printf("SHORT");            continue; }
+            "signed"           { printf("SIGNED");           continue; }
+            "sizeof"           { printf("SIZEOF");           continue; }
+            "static"           { printf("STATIC");           continue; }
+            "static_cast"      { printf("STATIC_CAST");      continue; }
+            "struct"           { printf("STRUCT");           continue; }
+            "switch"           { printf("SWITCH");           continue; }
+            "template"         { printf("TEMPLATE");         continue; }
+            "this"             { printf("THIS");             continue; }
+            "throw"            { printf("THROW");            continue; }
+            "try"              { printf("TRY");              continue; }
+            "typedef"          { printf("TYPEDEF");          continue; }
+            "typeid"           { printf("TYPEID");           continue; }
+            "typename"         { printf("TYPENAME");         continue; }
+            "union"            { printf("UNION");            continue; }
+            "unsigned"         { printf("UNSIGNED");         continue; }
+            "using"            { printf("USING");            continue; }
+            "virtual"          { printf("VIRTUAL");          continue; }
+            "void"             { printf("VOID");             continue; }
+            "volatile"         { printf("VOLATILE");         continue; }
+            "wchar_t"          { printf("WCHAR_T");          continue; }
+            "while"            { printf("WHILE");            continue; }
+
+            // operators and punctuation (including preprocessor)
+            ("{" | "<%")      { printf("{");      continue; }
+            ("}" | "%>")      { printf("}");      continue; }
+            ("[" | "<:")      { printf("[");      continue; }
+            ("]" | ":>")      { printf("]");      continue; }
+            "("               { printf("(");      continue; }
+            ")"               { printf(")");      continue; }
+            ";"               { printf(";");      continue; }
+            ":"               { printf(":");      continue; }
+            "..."             { printf("...");    continue; }
+            "new"             { printf("new");    continue; }
+            "delete"          { printf("delete"); continue; }
+            "?"               { printf("?");      continue; }
+            "::"              { printf("::");     continue; }
+            "."               { printf(".");      continue; }
+            ".*"              { printf(".");      continue; }
+            "+"               { printf("+");      continue; }
+            "-"               { printf("-");      continue; }
+            "*"               { printf("*");      continue; }
+            "/"               { printf("/");      continue; }
+            "%"               { printf("%%");     continue; }
+            ("^" | "xor")     { printf("^");      continue; }
+            ("&" | "bitand")  { printf("&");      continue; }
+            ("|" | "bitor")   { printf("|");      continue; }
+            ("~" | "compl")   { printf("~");      continue; }
+            ("!" | "not")     { printf("!");      continue; }
+            "="               { printf("=");      continue; }
+            "<"               { printf("<");      continue; }
+            ">"               { printf(">");      continue; }
+            "+="              { printf("+=");     continue; }
+            "-="              { printf("-=");     continue; }
+            "*="              { printf("*=");     continue; }
+            "/="              { printf("/=");     continue; }
+            "%="              { printf("%%=");    continue; }
+            ("^=" | "xor_eq") { printf("^=");     continue; }
+            ("&=" | "and_eq") { printf("&=");     continue; }
+            ("|=" | "or_eq")  { printf("|=");     continue; }
+            "<<"              { printf("<<");     continue; }
+            ">>"              { printf(">>");     continue; }
+            ">>="             { printf(">>=");    continue; }
+            "<<="             { printf("<<=");    continue; }
+            "=="              { printf("==");     continue; }
+            ("!=" | "not_eq") { printf("!=");     continue; }
+            "<="              { printf("<=");     continue; }
+            ">="              { printf(">=");     continue; }
+            ("&&" | "and")    { printf("&&");     continue; }
+            ("||" | "or")     { printf("||");     continue; }
+            "++"              { printf("++");     continue; }
+            "--"              { printf("--");     continue; }
+            ","               { printf(",");      continue; }
+            "->*"             { printf("->*");    continue; }
+            "->"              { printf("->");     continue; }
+
+            // identifiers
+            id = [a-zA-Z_][a-zA-Z_0-9]*;
+            id { printf("%.*s", in.cur - in.tok, in.tok); continue; }
+        */
+sfx:
+        /*!re2c
+            ""          { if (u > INT_MAX)  return false; printf("%d",  static_cast<int>(u));      continue; }
+            'u'         { if (u > UINT_MAX) return false; printf("%u",  static_cast<unsigned>(u)); continue; }
+            'l'         { if (u > LONG_MAX) return false; printf("%ld", static_cast<long>(u));     continue; }
+            'ul' | 'lu' { printf("%lu", u); continue; }
+        */
+    }
+}
+
+int main(int argc, char **argv)
+{
+    if (argc != 2) {
+        printf ("usage: ./example <filename>\n");
+        return 1;
+    }
+
+    FILE *file = fopen(argv[1], "rb");
+    if (!file) {
+        printf("error: cannot open file: %s\n", argv[1]);
+        return 1;
+    }
+
+    input_t in(file);
+    if (!lex(in)) {
+        printf("... error\n");
+    } else {
+        printf("\n");
+    }
+
+    fclose(file);
+    return 0;
+}
+
+
+

Notes:

+
    +
  • The main lexer is used to lex all trivial lexemes (macros, whitespace, boolean literals, keywords, operators, punctuators, and identifiers), +recognize numeric literals (which are further parsed by a bunch of auxiliary lexers), +and recognize the start of a string and character literals (which are further recognized and parsed by an auxiliary lexer). +Numeric literals are thus lexed twice: this approach may be deemed inefficient, +but it takes much more effort to validate and parse them in one go. +Besides, a real-world lexer would rather recognize ill-formed lexemes (e.g., overflown integer literals), +report them, and resume lexing.
  • +
  • We don’t use re2c in cases where a hand-written parser looks simpler: when parsing octal and decimal literals +(though a re2c-based parser would do exactly the same, without the slightest overhead). +However, hexadecimal literals still require some lexing, which looks better with re2c. +Again, it’s only a matter of taste: a re2c-based implementation adds no overhead. +Look at the generated code to make sure.
  • +
  • The main lexer and string lexer both use re2c:yyfill:enable = 1;, other lexers use re2c:yyfill:enable = 0;. +This is very important: both the main lexer and string lexer advance input position to new (yet unseen) input characters, +so they must check for the end of input and call YYFILL. In contrast, other lexers only parse lexemes that +have already been recognized by the main lexer: these lexemes are guaranteed to be within buffer bounds +(they are guarded by in.tok on the left and in.lim on the right).
  • +
  • The hardest part is (unsurprisingly) floating-point literals. +They are just as hard to lex as they are to use. :)
  • +
+

Generate, compile, and run:

+
$ re2c -o cxx98.cc cxx98.re
+$ g++ -o cxx98 cxx98.cc
+
+
+

Run:

+
$ ./cxx98 07_cxx98.re | fold
+ STATIC CONST size_t SIZE = 64 * 1024; STRUCT input_t { UNSIGNED CHAR buf[SIZE +
+ YYMAXFILL]; UNSIGNED CHAR *lim; UNSIGNED CHAR *cur; UNSIGNED CHAR *mar; UNSIGNE
+D CHAR *tok; BOOL eof; FILE *CONST file; input_t(FILE *f) : buf() , lim(buf + SI
+ZE) , cur(lim) , mar(lim) , tok(lim) , eof(false) , file(f) {} BOOL fill(size_t
+need) { IF (eof) { RETURN false; } CONST size_t free = tok - buf; IF (free < nee
+d) { RETURN false; } memmove(buf, tok, lim - tok); lim -= free; cur -= free; mar
+ -= free; tok -= free; lim += fread(lim, 1, free, file); IF (lim < buf + SIZE) {
+ eof = true; memset(lim, 0, YYMAXFILL); lim += YYMAXFILL; } RETURN true; } }; TE
+MPLATE<INT base> STATIC BOOL adddgt(UNSIGNED LONG &u, UNSIGNED LONG d) { IF (u >
+ (ULONG_MAX - d) / base) { RETURN false; } u = u * base + d; RETURN true; } STAT
+IC BOOL lex_oct(CONST UNSIGNED CHAR *s, CONST UNSIGNED CHAR *e, UNSIGNED LONG &u
+) { FOR (u = 0, ++s; s < e; ++s) { IF (!adddgt<8>(u, *s - 48)) { RETURN false; }
+ } RETURN true; } STATIC BOOL lex_dec(CONST UNSIGNED CHAR *s, CONST UNSIGNED CHA
+R *e, UNSIGNED LONG &u) { FOR (u = 0; s < e; ++s) { IF (!adddgt<10>(u, *s - 48))
+ { RETURN false; } } RETURN true; } STATIC BOOL lex_hex(CONST UNSIGNED CHAR *s,
+CONST UNSIGNED CHAR *e, UNSIGNED LONG &u) { FOR (u = 0, s += 2; s < e;) { } RETU
+RN true; } STATIC BOOL lex_str(input_t &in, UNSIGNED CHAR q) { printf("\x25\x63"
+, q); FOR (UNSIGNED LONG u = q;; printf("\x5c\x78\x25\x6c\x78", u)) { in.tok = i
+n.cur; } printf("\x25\x63", q); RETURN true; } STATIC BOOL lex_flt(CONST UNSIGNE
+D CHAR *s) { DOUBLE d = 0; DOUBLE x = 1; INT e = 0; mant_int: mant_frac: exp_sig
+n: exp: sfx: end: printf("\x25\x67", d); RETURN true; } STATIC BOOL lex(input_t
+&in) { UNSIGNED LONG u; FOR (;;) { in.tok = in.cur; sfx: } } INT main(INT argc,
+CHAR **argv) { IF (argc != 2) { printf ("\x75\x73\x61\x67\x65\x3a\x20\x2e\x2f\x6
+5\x78\x61\x6d\x70\x6c\x65\x20\x3c\x66\x69\x6c\x65\x6e\x61\x6d\x65\x3e\xa"); RETU
+RN 1; } FILE *file = fopen(argv[1], "\x72\x62"); IF (!file) { printf("\x65\x72\x
+72\x6f\x72\x3a\x20\x63\x61\x6e\x6e\x6f\x74\x20\x6f\x70\x65\x6e\x20\x66\x69\x6c\x
+65\x3a\x20\x25\x73\xa", argv[1]); RETURN 1; } input_t in(file); IF (!lex(in)) {
+printf("\x2e\x2e\x2e\x20\x65\x72\x72\x6f\x72\xa"); } ELSE { printf("\xa"); } fcl
+ose(file); RETURN 0; }
+
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/examples/example_09.html b/examples/example_09.html new file mode 100644 index 00000000..3b6cd3b4 --- /dev/null +++ b/examples/example_09.html @@ -0,0 +1,249 @@ + + + + + + + + /etc/passwd — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

/etc/passwd¶

+

This example shows how to parse simple file formats such as the /etc/passwd file. +This file consists of multiple lines of the form user : password : UID : GID : info : home : command. +Our example file is the following [/etc/passwd]:

+
root:x:0:0:root:/root:/bin/bash
+bin:x:1:1:bin:/bin:/bin/false
+portage:x:250:250:portage:/var/tmp/portage:/bin/false
+
+
+

[etc_passwd.re]

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
#include <stdio.h>
+#include <stdlib.h>
+
+/*!max:re2c*/
+
+static int lex(const char *YYCURSOR)
+{
+    const char *YYMARKER, *n, *p, *u, *g, *f, *h, *c;
+    /*!stags:re2c format = 'const char *@@;'; */
+loop:
+    /*!re2c
+        re2c:define:YYCTYPE = char;
+        re2c:yyfill:enable = 0;
+
+        end  = "\x00";
+        eol  = "\n";
+        sep  = [:];
+        char = [^] \ (end | eol | sep);
+        user = char+;
+        pass = char*;
+        uid  = [0-9]+;
+        gid  = [0-9]+;
+        info = char*;
+        home = "/" char*;
+        cmd  = "/" char*;
+
+        *   { printf("error\n"); return 1; }
+        end { return 0; }
+
+        @n user sep
+        @p pass sep
+        @u uid  sep
+        @g gid  sep
+        @f info sep
+        @h home sep
+        @c cmd  eol {
+            printf("user:     %.*s\n", (int)(p - n) - 1, n);
+            printf("password: %.*s\n", (int)(u - p) - 1, p);
+            printf("UID:      %.*s\n", (int)(g - u) - 1, u);
+            printf("GID:      %.*s\n", (int)(f - g) - 1, g);
+            printf("info:     %.*s\n", (int)(h - f) - 1, f);
+            printf("home:     %.*s\n", (int)(c - h) - 1, h);
+            printf("command:  %.*s\n", (int)(YYCURSOR - c - 1), c);
+            printf("\n");
+            goto loop;
+        }
+    */
+}
+
+int main(int argc, char **argv)
+{
+    if (argc < 2) {
+        fprintf(stderr, "no input files\n");
+        return 1;
+    }
+
+    FILE *file = fopen(argv[1], "r");
+
+    fseek(file, 0, SEEK_END);
+    const size_t fsize = (size_t) ftell(file);
+    fseek(file, 0, SEEK_SET);
+
+    char *buffer = (char*) malloc(fsize + 1);
+
+    fread(buffer, 1, fsize, file);
+    buffer[fsize] = 0;
+
+    const int status = lex(buffer);
+
+    fclose(file);
+    free(buffer);
+
+    return status;
+}
+
+
+

Compile:

+
$ re2c --tags -o etc_passwd.cc etc_passwd.re
+$ g++ -o etc_passwd etc_passwd.cc
+
+
+

Run:

+
$ ./etc_passwd /etc/passwd
+user:     root
+password: x
+UID:      0
+GID:      0
+info:     root
+home:     /root
+command:  /bin/bash
+
+user:     bin
+password: x
+UID:      1
+GID:      1
+info:     bin
+home:     /bin
+command:  /bin/false
+
+user:     portage
+password: x
+UID:      250
+GID:      250
+info:     portage
+home:     /var/tmp/portage
+command:  /bin/false
+
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/examples/example_10.html b/examples/example_10.html new file mode 100644 index 00000000..b69c3c48 --- /dev/null +++ b/examples/example_10.html @@ -0,0 +1,445 @@ + + + + + + + + URI (RFC-3986) — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

URI (RFC-3986)¶

+

This example was used as a benchmark in +“Tagged Deterministic Finite Automata with Lookahead” paper; +it is an RFC-3986 compliant URI parser. +It uses s-tags.

+

[uri_rfc3986.re]

+
  1
+  2
+  3
+  4
+  5
+  6
+  7
+  8
+  9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+ 32
+ 33
+ 34
+ 35
+ 36
+ 37
+ 38
+ 39
+ 40
+ 41
+ 42
+ 43
+ 44
+ 45
+ 46
+ 47
+ 48
+ 49
+ 50
+ 51
+ 52
+ 53
+ 54
+ 55
+ 56
+ 57
+ 58
+ 59
+ 60
+ 61
+ 62
+ 63
+ 64
+ 65
+ 66
+ 67
+ 68
+ 69
+ 70
+ 71
+ 72
+ 73
+ 74
+ 75
+ 76
+ 77
+ 78
+ 79
+ 80
+ 81
+ 82
+ 83
+ 84
+ 85
+ 86
+ 87
+ 88
+ 89
+ 90
+ 91
+ 92
+ 93
+ 94
+ 95
+ 96
+ 97
+ 98
+ 99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+/*!max:re2c*/
+static const size_t SIZE = 4096;
+
+typedef struct {
+    FILE *file;
+    char *buf;
+    char *lim;
+    char *cur;
+    char *mar;
+    char *tok;
+    /*!stags:re2c format = "char *@@;\n"; */
+    int eof;
+} input_t;
+
+static void init_input(input_t *in, const char *fname)
+{
+    in->file = fopen(fname, "r");
+    in->buf = (char*) malloc(SIZE + YYMAXFILL);
+    in->lim = in->buf + SIZE;
+    in->cur = in->lim;
+    in->mar = in->lim;
+    in->tok = in->lim;
+    /*!stags:re2c format = "in->@@ = 0;\n"; */
+    in->eof = 0;
+}
+
+static void free_input(input_t *in)
+{
+    free(in->buf);
+    fclose(in->file);
+}
+
+static int fill(input_t *in, size_t need)
+{
+    size_t free;
+    if (in->eof) return 1;
+
+    free = in->tok - in->buf;
+    if (free < need) return 2;
+
+    memmove(in->buf, in->tok, in->lim - in->tok);
+    in->lim -= free;
+    in->cur -= free;
+    in->mar -= free;
+    in->tok -= free;
+    /*!stags:re2c format = "if (in->@@) in->@@ -= free;\n"; */
+    in->lim += fread(in->lim, 1, free, in->file);
+    if (in->lim < in->buf + SIZE) {
+        in->eof = 1;
+        memset(in->lim, 0, YYMAXFILL);
+        in->lim += YYMAXFILL;
+    }
+    return 0;
+}
+
+static int lex(input_t *in, long *count)
+{
+    const char
+        *s1, *u1, *h1, *h3, *h5, *r1, *p1, *p3, *q1, *f1,
+        *s2, *u2, *h2, *h4, *h6, *r2, *p2, *p4, *q2, *f2;
+    long c;
+
+    c = 0;
+loop:
+    in->tok = in->cur;
+/*!re2c
+
+    re2c:define:YYCTYPE      = char;
+    re2c:define:YYCURSOR     = in->cur;
+    re2c:define:YYMARKER     = in->mar;
+    re2c:define:YYLIMIT      = in->lim;
+    re2c:define:YYFILL       = "if (fill(in, @@) != 0) return 2;";
+    re2c:define:YYFILL:naked = 1;
+    re2c:tags:expression     = "in->@@";
+
+    end = "\x00";
+    eol = "\n";
+
+    alpha       = [a-zA-Z];
+    digit       = [0-9];
+    hexdigit    = [0-9a-fA-F];
+    unreserved  = alpha | digit | [-._~];
+    pct_encoded = "%" hexdigit{2};
+    sub_delims  = [!$&'()*+,;=];
+    pchar       = unreserved | pct_encoded | sub_delims | [:@];
+
+    scheme = @s1 alpha (alpha | digit | [-+.])* @s2;
+    userinfo = @u1 (unreserved | pct_encoded | sub_delims | ":")* @u2;
+    dec_octet
+        = digit
+        | [\x31-\x39] digit
+        | "1" digit{2}
+        | "2" [\x30-\x34] digit
+        | "25" [\x30-\x35];
+    ipv4address = dec_octet "." dec_octet "." dec_octet "." dec_octet;
+    h16         = hexdigit{1,4};
+    ls32        = h16 ":" h16 | ipv4address;
+    ipv6address
+        =                            (h16 ":"){6} ls32
+        |                       "::" (h16 ":"){5} ls32
+        | (               h16)? "::" (h16 ":"){4} ls32
+        | ((h16 ":"){0,1} h16)? "::" (h16 ":"){3} ls32
+        | ((h16 ":"){0,2} h16)? "::" (h16 ":"){2} ls32
+        | ((h16 ":"){0,3} h16)? "::"  h16 ":"     ls32
+        | ((h16 ":"){0,4} h16)? "::"              ls32
+        | ((h16 ":"){0,5} h16)? "::"              h16
+        | ((h16 ":"){0,6} h16)? "::";
+    ipvfuture   = "v" hexdigit+ "." (unreserved | sub_delims | ":" )+;
+    ip_literal  = "[" ( ipv6address | ipvfuture ) "]";
+    reg_name    = (unreserved | pct_encoded | sub_delims)*;
+    host
+        = @h1 ip_literal  @h2
+        | @h3 ipv4address @h4
+        | @h5 reg_name    @h6;
+    port      = @r1 digit* @r2;
+    authority = (userinfo "@")? host (":" port)?;
+    path_abempty  = ("/" pchar*)*;
+    path_absolute = "/" (pchar+ ("/" pchar*)*)?;
+    path_rootless = pchar+ ("/" pchar*)*;
+    path_empty    = "";
+    hier_part
+        = "//" authority @p1 path_abempty @p2
+        | @p3 (path_absolute | path_rootless | path_empty) @p4;
+    query    = @q1 (pchar | [/?])* @q2;
+    fragment = @f1 (pchar | [/?])* @f2;
+    uri = scheme ":" hier_part ("?" query)? ("#" fragment)?;
+
+    *   { return 1; }
+    end { *count = c; return 0; }
+    eol { goto loop; }
+    uri {
+        ++c;
+        printf("URI %ld:\n", c);
+        printf("  scheme:   %.*s\n", (int)(s2 - s1), s1);
+        if (u1) printf("  userinfo: %.*s\n", (int)(u2 - u1), u1);
+        if (h1) printf("  host:     %.*s (IP literal)\n", (int)(h2 - h1), h1);
+        if (h3) printf("  host:     %.*s (IPv4)\n", (int)(h4 - h3), h3);
+        if (h5) printf("  host:     %.*s (name)\n", (int)(h6 - h5), h5);
+        if (r1) printf("  port:     %.*s\n", (int)(r2 - r1), r1);
+        if (p1) printf("  path:     %.*s\n", (int)(p2 - p1), p1);
+        if (p3) printf("  path:     %.*s\n", (int)(p4 - p3), p3);
+        if (q1) printf("  query:    %.*s\n", (int)(q2 - q1), q1);
+        if (f1) printf("  fragment: %.*s\n", (int)(f2 - f1), f1);
+        printf("\n");
+        goto loop;
+    }
+*/
+}
+
+int main(int argc, char **argv)
+{
+    long count;
+    input_t in;
+    init_input(&in, argv[1]);
+
+    switch (lex(&in, &count)) {
+        case 0:  fprintf(stderr, "ok, parsed %ld URIs\n", count); break;
+        case 1:  fprintf(stderr, "syntax error\n"); break;
+        case 2:  fprintf(stderr, "yyfill error\n"); break;
+        default: fprintf(stderr, "panic\n"); break;
+    }
+
+    free_input(&in);
+    return 0;
+}
+
+
+

[uri.dat]

+
http://user:pass@127.0.0.1:8000/path/data?key=val&key2=val2#frag1
+rsync://rsync.kernel.org/pub/
+http://re2c.org/manual/syntax/syntax.html#rules
+ssh://[2001:db8:85a3::8a2e:370:7334]/
+
+
+

Compile:

+
$ re2c --tags -o uri_rfc3986.cc uri_rfc3986.re
+$ g++ -o uri_rfc3986 uri_rfc3986.cc
+
+
+

Run:

+
$ ./uri_rfc3986 uri.dat
+URI 1:
+  scheme:   http
+  userinfo: user:pass
+  host:     127.0.0.1 (IPv4)
+  port:     8000
+  path:     /path/data
+  query:    key=val&key2=val2
+  fragment: frag1
+
+URI 2:
+  scheme:   rsync
+  host:     rsync.kernel.org (name)
+  path:     /pub/
+
+URI 3:
+  scheme:   http
+  host:     re2c.org (name)
+  path:     /manual/syntax/syntax.html
+  fragment: rules
+
+URI 4:
+  scheme:   ssh
+  host:     [2001:db8:85a3::8a2e:370:7334] (IP literal)
+  path:     /
+
+ok, parsed 4 URIs
+
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/examples/example_11.html b/examples/example_11.html new file mode 100644 index 00000000..a04f7907 --- /dev/null +++ b/examples/example_11.html @@ -0,0 +1,698 @@ + + + + + + + + HTTP (RFC-7230) — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

HTTP (RFC-7230)¶

+

This example was used as a benchmark in +“Tagged Deterministic Finite Automata with Lookahead” paper; +it is an RFC-7230 compliant HTTP message parser. +It uses both s-tags and m-tags.

+

[http_rfc7230.re]

+
  1
+  2
+  3
+  4
+  5
+  6
+  7
+  8
+  9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 24
+ 25
+ 26
+ 27
+ 28
+ 29
+ 30
+ 31
+ 32
+ 33
+ 34
+ 35
+ 36
+ 37
+ 38
+ 39
+ 40
+ 41
+ 42
+ 43
+ 44
+ 45
+ 46
+ 47
+ 48
+ 49
+ 50
+ 51
+ 52
+ 53
+ 54
+ 55
+ 56
+ 57
+ 58
+ 59
+ 60
+ 61
+ 62
+ 63
+ 64
+ 65
+ 66
+ 67
+ 68
+ 69
+ 70
+ 71
+ 72
+ 73
+ 74
+ 75
+ 76
+ 77
+ 78
+ 79
+ 80
+ 81
+ 82
+ 83
+ 84
+ 85
+ 86
+ 87
+ 88
+ 89
+ 90
+ 91
+ 92
+ 93
+ 94
+ 95
+ 96
+ 97
+ 98
+ 99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+typedef struct mtag_t {
+    struct mtag_t *pred;
+    long dist;
+} mtag_t;
+
+typedef struct mtagpool_t {
+    mtag_t *head;
+    mtag_t *next;
+    mtag_t *last;
+} mtagpool_t;
+
+typedef struct {
+    FILE *file;
+    char *buf;
+    char *lim;
+    char *cur;
+    char *mar;
+    char *tok;
+    /*!stags:re2c format = "char *@@;\n"; */
+    /*!mtags:re2c format = "mtag_t *@@;\n"; */
+    mtagpool_t mtp;
+    int eof;
+} input_t;
+
+static void mtagpool_clear(mtagpool_t *mtp, input_t *in)
+{
+    mtp->next = mtp->head;
+    /*!mtags:re2c format = "in->@@ = 0;\n"; */
+}
+
+static void mtagpool_init(mtagpool_t *mtp)
+{
+    static const unsigned size = 1024 * 1024;
+    mtp->head = (mtag_t*)malloc(size * sizeof(mtag_t));
+    mtp->next = mtp->head;
+    mtp->last = mtp->head + size;
+}
+
+static void mtagpool_free(mtagpool_t *mtp)
+{
+    free(mtp->head);
+    mtp->head = mtp->next = mtp->last = NULL;
+}
+
+static mtag_t *mtagpool_next(mtagpool_t *mtp)
+{
+    unsigned size;
+    mtag_t *head;
+
+    if (mtp->next < mtp->last) return mtp->next++;
+
+    size = mtp->last - mtp->head;
+    head = (mtag_t*)malloc(2 * size * sizeof(mtag_t));
+    memcpy(head, mtp->head, size * sizeof(mtag_t));
+    free(mtp->head);
+    mtp->head = head;
+    mtp->next = head + size;
+    mtp->last = head + size * 2;
+    return mtp->next++;
+}
+
+static void mtag(mtag_t **pmt, const char *b, const char *t, mtagpool_t *mtp)
+{
+    mtag_t *mt = mtagpool_next(mtp);
+    mt->pred = *pmt;
+    mt->dist = t - b;
+    *pmt = mt;
+}
+
+/*!max:re2c*/
+static const size_t SIZE = 4096;
+
+static void init_input(input_t *in, const char *fname)
+{
+    in->file = fopen(fname, "r");
+    in->buf = (char*) malloc(SIZE + YYMAXFILL);
+    in->lim = in->buf + SIZE;
+    in->cur = in->lim;
+    in->mar = in->lim;
+    in->tok = in->lim;
+    /*!stags:re2c format = "in->@@ = 0;\n"; */
+    /*!mtags:re2c format = "in->@@ = 0;\n"; */
+    mtagpool_init(&in->mtp);
+    in->eof = 0;
+}
+
+static void free_input(input_t *in)
+{
+    fclose(in->file);
+    free(in->buf);
+    mtagpool_free(&in->mtp);
+}
+
+static int fill(input_t *in, size_t need)
+{
+    size_t free;
+    if (in->eof) return 1;
+
+    free = in->tok - in->buf;
+    if (free < need) return 2;
+
+    memmove(in->buf, in->tok, in->lim - in->tok);
+    in->lim -= free;
+    in->cur -= free;
+    in->mar -= free;
+    in->tok -= free;
+    /*!stags:re2c format = "if (in->@@) in->@@ -= free;\n"; */
+    in->lim += fread(in->lim, 1, free, in->file);
+    if (in->lim < in->buf + SIZE) {
+        in->eof = 1;
+        memset(in->lim, 0, YYMAXFILL);
+        in->lim += YYMAXFILL;
+    }
+    return 0;
+}
+
+static void print_headers(const char *tok,
+    const mtag_t *h1, const mtag_t *h2,
+    const mtag_t *h3, const mtag_t *h4,
+    const mtag_t *h5)
+{
+    if (!h1) return;
+    print_headers(tok, h1->pred, h2->pred, h3->pred, h4->pred, h5->pred);
+    printf("%.*s%.*s%.*s%.*s\n",
+        (int)(h2->dist - h1->dist), tok + h1->dist,
+        (int)(h3->dist - h2->dist), tok + h2->dist,
+        (int)(h4->dist - h3->dist), tok + h3->dist,
+        (int)(h5->dist - h4->dist), tok + h4->dist);
+}
+
+#define YYCTYPE        char
+#define YYCURSOR       in->cur
+#define YYMARKER       in->mar
+#define YYLIMIT        in->lim
+#define YYMTAGP(mt)    mtag(&mt, in->tok, in->cur, &in->mtp)
+#define YYMTAGN(mt)    mtag(&mt, in->tok, NULL, &in->mtp)
+#define YYFILL(n)      if (fill(in, n) != 0) return 2;
+
+static int lex(input_t *in, long *count)
+{
+    const char *of, *au, *at,
+        *hs1, *hs3, *m1, *p1, *p3, *p5, *q1, *q3,
+        *hs2, *hs4, *m2, *p2, *p4, *p6, *q2, *q4,
+        *r1, *r3, *rp1, *s1, *st1, *u1, *u3, *v1, *v3,
+        *r2, *r4, *rp2, *s2, *st2, *u2, *u4, *v2, *v4;
+    mtag_t *h1, *h2, *h3, *h4, *h5;
+    long c;
+
+    c = 0;;
+    of = au = at
+        = hs1 = hs3 = m1 = p1 = p3 = p5 = q1 = q3
+        = hs2 = hs4 = m2 = p2 = p4 = p6 = q2 = q4
+        = r1 = r3 = rp1 = s1 = st1 = u1 = u3 = v1 = v3
+        = r2 = r4 = rp2 = s2 = st2 = u2 = u4 = v2 = v4 = NULL;
+loop:
+    in->tok = in->cur;
+/*!re2c
+    re2c:tags:expression = "in->@@";
+
+    end = "\x00";
+    eol = "\n";
+
+    crlf        = eol;
+    sp          = " ";
+    htab        = "\t";
+    ows         = (sp | htab)*;
+    digit       = [0-9];
+    alpha       = [a-zA-Z];
+    hexdigit    = [0-9a-fA-F];
+    unreserved  = alpha | digit | [-._~];
+    pct_encoded = "%" hexdigit{2};
+    sub_delims  = [!$&'()*+,;=];
+    pchar       = unreserved | pct_encoded | sub_delims | [:@];
+    vchar       = [\x1f-\x7e];
+    tchar       = [-!#$%&'*+.^_`|~] | digit | alpha;
+
+    obs_fold       = crlf (sp | htab)+;
+    obs_text       = [\x80-\xff];
+    field_name     = tchar+;
+    field_vchar    = vchar | obs_text;
+    field_content  = field_vchar ((sp | htab)+ field_vchar)?;
+    field_value    = (field_content | obs_fold)*;
+    header_field   = #h1 field_name #h2 ":" ows #h3 field_value #h4 ows #h5;
+    scheme         = alpha (alpha | digit | [-+.])*;
+    userinfo       = (unreserved | pct_encoded | sub_delims | ":")*;
+    dec_octet
+        = digit
+        | [\x31-\x39] digit
+        | "1" digit{2}
+        | "2" [\x30-\x34] digit
+        | "25" [\x30-\x35];
+    ipv4address    = dec_octet "." dec_octet "." dec_octet "." dec_octet;
+    h16            = hexdigit{1,4};
+    ls32           = h16 ":" h16 | ipv4address;
+    ipv6address
+        =                            (h16 ":"){6} ls32
+        |                       "::" (h16 ":"){5} ls32
+        | (               h16)? "::" (h16 ":"){4} ls32
+        | ((h16 ":"){0,1} h16)? "::" (h16 ":"){3} ls32
+        | ((h16 ":"){0,2} h16)? "::" (h16 ":"){2} ls32
+        | ((h16 ":"){0,3} h16)? "::"  h16 ":"     ls32
+        | ((h16 ":"){0,4} h16)? "::"              ls32
+        | ((h16 ":"){0,5} h16)? "::"              h16
+        | ((h16 ":"){0,6} h16)? "::";
+    ipvfuture      = "v" hexdigit+ "." (unreserved | sub_delims | ":" )+;
+    ip_literal     = "[" ( ipv6address | ipvfuture ) "]";
+    reg_name       = (unreserved | pct_encoded | sub_delims)*;
+    path_abempty   = ("/" pchar*)*;
+    path_absolute  = "/" (pchar+ ("/" pchar*)*)?;
+    path_rootless  = pchar+ ("/" pchar*)*;
+    path_empty     = "";
+    host           = ip_literal | ipv4address | reg_name;
+    port           = digit*;
+    query          = (pchar | [/?])*;
+    absolute_uri   = @s1 scheme @s2 ":"
+        ( "//" (@u1 userinfo @u2 "@")? @hs1 host @hs2 (":" @r1 port @r2)? @p1 path_abempty @p2
+        | @p3 (path_absolute | path_rootless | path_empty) @p4
+        ) ("?" @q1 query @q2)?;
+    authority      = (@u3 userinfo @u4 "@")? @hs3 host @hs4 (":" @r3 port @r4)?;
+    origin_form    = @p5 path_abempty @p6 ("?" @q3 query @q4)?;
+    http_name      = "HTTP";
+    http_version   = http_name "/" digit "." digit;
+    request_target
+        = @at authority
+        | @au absolute_uri
+        | @of origin_form
+        | "*";
+    method         = tchar+;
+    request_line   = @m1 method @m2 sp request_target sp @v3 http_version @v4 crlf;
+    status_code    = digit{3};
+    reason_phrase  = (htab | sp | vchar | obs_text)*;
+    status_line    = @v1 http_version @v2 sp @st1 status_code @st2 sp @rp1 reason_phrase @rp2 crlf;
+    start_line     = (request_line | status_line);
+    message_head   = start_line (header_field crlf)* crlf;
+
+    *   { return 1; }
+    end { *count = c; return 0; }
+    eol { goto loop; }
+    message_head {
+        ++c;
+        if (st1) {
+            printf("%.*s %.*s %.*s\n",
+                (int)(v2 - v1), v1,
+                (int)(st2 - st1), st1,
+                (int)(rp2 - rp1), rp1);
+        } else if (m1) {
+            printf("%.*s ", (int)(m2 - m1), m1);
+            if (of) {
+                printf("%.*s", (int)(p6 - p5), p5);
+                if (q3) printf("?%.*s", (int)(q4 - q3), q3);
+            } else if (au) {
+                printf("%.*s:", (int)(s2 - s1), s1);
+                if (p1) printf("//");
+                if (u1) printf("%.*s@", (int)(u2 - u1), u1);
+                printf("%.*s", (int)(hs2 - hs1), hs1);
+                if (r1) printf(":%.*s", (int)(r2 - r1), r1);
+                if (p1) printf("%.*s",  (int)(p2 - p1), p1);
+                if (p3) printf("%.*s",  (int)(p4 - p3), p3);
+                if (q1) printf("?%.*s", (int)(q2 - q1), q1);
+            } else if (at) {
+                if (u3) printf("%.*s@", (int)(u4 - u3), u3);
+                printf("%.*s", (int)(hs4 - hs3), hs3);
+                if (r3) printf(":%.*s", (int)(r4 - r3), r3);
+            } else {
+                printf("*");
+            }
+            printf(" %.*s\n", (int)(v4 - v3), v3);
+        }
+        print_headers(in->tok, h1, h2, h3, h4, h5);
+        printf("\n");
+        mtagpool_clear(&in->mtp, in);
+        goto loop;
+    }
+*/
+}
+
+int main(int argc, char **argv)
+{
+    long count;
+    input_t in;
+    init_input(&in, argv[1]);
+
+    switch (lex(&in, &count)) {
+        case 0:  fprintf(stderr, "ok, parsed %ld HTTPs\n", count); break;
+        case 1:  fprintf(stderr, "syntax error\n"); break;
+        case 2:  fprintf(stderr, "yyfill error\n"); break;
+        default: fprintf(stderr, "panic!\n"); break;
+    }
+
+    free_input(&in);
+    return 0;
+}
+
+
+

[http.dat]

+
GET /index.html HTTP/1.1
+Host: www.example.com
+User-Agent: Mozilla/5.0
+Accept: text/xml,application/xml,application/xhtml+xml,text/html*/*
+Accept-Language: en-us
+Accept-Charset: ISO-8859-1,utf-8
+Connection: keep-alive
+
+HTTP/1.1 200 OK
+Date: Thu, 24 Jul 2008 17:36:27 GMT
+Server: Apache-Coyote/1.1
+Content-Type: text/html;charset=UTF-8
+Content-Length: 1846
+
+
+
+

Compile:

+
$ re2c --tags -o http_rfc7230.cc http_rfc7230.re
+$ g++ -o http_rfc7230 http_rfc7230.cc
+
+
+

Run:

+
$ ./http_rfc7230 http.dat
+GET /index.html HTTP/1.1
+Host: www.example.com
+User-Agent: Mozilla/5.0
+Accept: text/xml,application/xml,application/xhtml+xml,text/html*/*
+Accept-Language: en-us
+Accept-Charset: ISO-8859-1,utf-8
+Connection: keep-alive
+
+HTTP/1.1 200 OK
+Date: Thu, 24 Jul 2008 17:36:27 GMT
+Server: Apache-Coyote/1.1
+Content-Type: text/html;charset=UTF-8
+Content-Length: 1846
+
+ok, parsed 2 HTTPs
+
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/examples/example_13.html b/examples/example_13.html new file mode 100644 index 00000000..f23ef286 --- /dev/null +++ b/examples/example_13.html @@ -0,0 +1,302 @@ + + + + + + + + Records & structs — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Records & structs¶

+

This example shows how to parse simple non-recursive structures and records. +It uses both s-tags (for simple fields) and m-tags (for fields that contain multiple elements). +Our imaginary records describe IRC users. +Each record consists of a nickname followed by an opening curly brace, a list of attributes (one per line), and a closing curly brace. +Attributes are name, country and a list of IRC channels. +Below is an example:

+

[records.dat]

+
h4cker1970 {
+    name     = Jon Smith
+    country  = UK
+    channels = freenode/#gentoo-dev; freenode/#gentoo-arch; freenode/#alpha;
+}
+
+mitek {
+    name     = Mitrofan Rygoravich
+    country  = Belarus
+    channels = bynets/#haskell; freenode/#unix;
+}
+
+
+
+

[records.re]

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
#include <stdio.h>
+#include <stdlib.h>
+#include <vector>
+
+struct mtag_t
+{
+    int pred;
+    const char *tag;
+};
+
+typedef std::vector<mtag_t> mtagpool_t;
+
+static void mtag(int *pt, const char *t, mtagpool_t *tp)
+{
+    mtag_t l = {*pt, t};
+    *pt = (int) tp->size();
+    tp->push_back(l);
+}
+
+static void print_channels(const mtagpool_t &tp, int x, int y)
+{
+    if (x == -1) return;
+    print_channels(tp, tp[x].pred, tp[y].pred);
+    const char *px = tp[x].tag, *py = tp[y].tag;
+    printf("    %.*s\n", (int) (py - px), px);
+}
+
+#define YYMTAGP(t) mtag(&t, YYCURSOR, &tp)
+#define YYMTAGN(t) mtag(&t, NULL,     &tp)
+
+static int lex(const char *YYCURSOR)
+{
+    const char *YYMARKER, *n1, *n2, *a1, *a2, *c1, *c2;
+    mtagpool_t tp;
+    int h1, h2;
+    /*!stags:re2c format = "const char *@@;"; */
+    /*!mtags:re2c format = "int @@;"; */
+loop:
+    tp.clear();
+    /*!mtags:re2c format = "@@ = -1;"; */
+    /*!re2c
+        re2c:define:YYCTYPE = char;
+        re2c:yyfill:enable = 0;
+
+        end     = "\x00";
+        eol     = "\n";
+        wsp     = [ \t]*;
+        eq      = wsp "=" wsp;
+        nick    = [a-zA-Z0-9_]+;
+        name    = [A-Z] ("." | [a-z]+);
+        names   = name (wsp name)*;
+        country = [A-Za-z ]+;
+        channel = ([a-z0-9-]+ "/")? "#" [a-z0-9-]+;
+
+        *         { printf("error: %s\n", YYCURSOR); return 1; }
+        end       { return 0; }
+        wsp | eol { goto loop; }
+
+        @n1 nick @n2 wsp "{" wsp eol
+            wsp "name"     eq @a1 names   @a2 wsp eol
+            wsp "country"  eq @c1 country @c2 wsp eol
+            wsp "channels" eq (wsp #h1 channel #h2 wsp ";")* wsp eol
+        wsp "}" {
+            printf("\n%.*s\n", (int) (n2 - n1), n1);
+            printf("  name:     %.*s\n", (int) (a2 - a1), a1);
+            printf("  country:  %.*s\n", (int) (c2 - c1), c1);
+            printf("  channels:\n");
+            print_channels(tp, h1, h2);
+            goto loop;
+        }
+    */
+}
+
+int main(int argc, char **argv)
+{
+    if (argc < 2) {
+        fprintf(stderr, "no input files\n");
+        return 1;
+    }
+
+    FILE *file = fopen(argv[1], "r");
+
+    fseek(file, 0, SEEK_END);
+    const size_t fsize = (size_t) ftell(file);
+    fseek(file, 0, SEEK_SET);
+
+    char *buffer = (char*) malloc(fsize + 1);
+
+    fread(buffer, 1, fsize, file);
+    buffer[fsize] = 0;
+
+    const int status = lex(buffer);
+
+    fclose(file);
+    free(buffer);
+
+    return status;
+}
+
+
+

Compile:

+
$ re2c --tags -o records.cc records.re
+$ g++ -o records records.cc
+
+
+

Run:

+
$ ./records records.dat
+
+h4cker1970
+  name:     Jon Smith
+  country:  UK
+  channels:
+    freenode/#gentoo-dev
+    freenode/#gentoo-arch
+    freenode/#alpha
+
+mitek
+  name:     Mitrofan Rygoravich
+  country:  Belarus
+  channels:
+    bynets/#haskell
+    freenode/#unix
+
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/examples/example_14.html b/examples/example_14.html new file mode 100644 index 00000000..866e97d3 --- /dev/null +++ b/examples/example_14.html @@ -0,0 +1,278 @@ + + + + + + + + Options & arguments — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Options & arguments¶

+

This example shows how to parse command-line options +with possible arguments, where each individual option may need its own argument format. +Our parser handles errors and typos: +for known options it reports ill-formed arguments; +for unrecognized options it collects them and reports at the end of parsing. +Our imaginary options are summarized below:

+
    +
  • -v, --verbose
  • +
  • -l LIMIT, --limit=LIMIT, where LIMIT is a decimal number followed by one of the suffixes B, K, M or G
  • +
  • -d DATE, --date=DATE, where DATE has the form DD/MM/YYYY
  • +
  • -p PATH, --path=PATH, where PATH is a /-separated file path
  • +
  • -f FORMAT, --format=FORMAT, where FORMAT is a double-quoted format string
  • +
+

[options.re]

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
#include <stdio.h>
+#include <string>
+#include <vector>
+
+typedef std::vector<std::pair<std::string, std::string> > unknown_t;
+
+struct options_t
+{
+    std::string date;
+    std::string path;
+    std::string format;
+    std::string limit;
+    bool verbose;
+};
+
+static void show(const options_t &o, const unknown_t &u)
+{
+    printf("\noptions:\n");
+    printf("  date:    %s\n", o.date.c_str());
+    printf("  path:    %s\n", o.path.c_str());
+    printf("  format:  %s\n", o.format.c_str());
+    printf("  limit:   %s\n", o.limit.c_str());
+    printf("  verbose: %s\n", o.verbose ? "yes" : "no");
+
+    printf("\nunknown:\n");
+    unknown_t::const_iterator i = u.begin(), e = u.end();
+    for (; i != e; ++i) {
+        printf("  %s: '%s'\n", i->first.c_str(), i->second.c_str());
+    }
+}
+
+static void bad_arg(const char *k, const char *v, const char *e)
+{
+    printf("bad argument '%.*s' to option %.*s\n",
+        (int) (e - v), v, (int) (v - k), k);
+}
+
+static int lex(const char *s)
+{
+    options_t o;
+    unknown_t u;
+    const char *m, *k, *v;
+    /*!stags:re2c format = 'const char *@@;'; */
+loop:
+    /*!re2c
+        re2c:define:YYCTYPE = char;
+        re2c:define:YYCURSOR = s;
+        re2c:define:YYMARKER = m;
+        re2c:yyfill:enable = 0;
+
+        end    = "\x00";
+        sp     = [ \t\n\r];
+        eq     = "=";
+        wsp    = sp*;
+        char   = [^=] \ end;
+        ochar  = char \ sp;
+        pchar  = ochar \ [/];
+        str    = ["] (char \ ["] | [\]["])* ["];
+        opt    = ochar+;
+        arg    = ochar* | str;
+        date   = [0-9]{2} "/" [0-9]{2} "/" [0-9]{4};
+        path   = pchar* ("/" pchar*)*;
+        format = str;
+        limit  = [0-9]+ [BKMG]?;
+
+        *   { printf("error: %s\n", s); return 1; }
+        end { show(o, u); return 0; }
+        wsp { goto loop; }
+
+        "-v" | "--verbose"              { o.verbose = true; goto loop; }
+        ("-l" | "--limit"  eq) @v limit { o.limit  = std::string(v, s); goto loop; }
+        ("-f" | "--format" eq) @v str   { o.format = std::string(v, s); goto loop; }
+        ("-d" | "--date"   eq) @v date  { o.date   = std::string(v, s); goto loop; }
+        ("-p" | "--path"   eq) @v path  { o.path   = std::string(v, s); goto loop; }
+
+        @k ("--" ("limit" | "format" | "date" | "path") | "-" [lfdp]) @v eq? arg {
+            bad_arg(k, v, s);
+            goto loop;
+        }
+        [-]{1,2} @k opt @v eq? arg {
+            u.push_back(std::make_pair(std::string(k, v), std::string(v, s)));
+            goto loop;
+        }
+    */
+}
+
+int main(int argc, char **argv)
+{
+    for (int i = 1; i < argc; ++i) lex(argv[i]);
+    return 0;
+}
+
+
+

Compile:

+
$ re2c --tags -o options.cc options.re
+$ g++ -o options options.cc
+
+
+

Run:

+
$ ./options '-v --limit=8K -d08/08/1985 -p/usr/src/linux --format="%s" --limit -f=3 --verbos --d"19th May"'
+bad argument '' to option --limit
+bad argument '=3' to option -f
+
+options:
+  date:    08/08/1985
+  path:    /usr/src/linux
+  format:  "%s"
+  limit:   8K
+  verbose: yes
+
+unknown:
+  verbos: ''
+  d: '"19th May"'
+
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/examples/example_15.html b/examples/example_15.html new file mode 100644 index 00000000..e0fbabe2 --- /dev/null +++ b/examples/example_15.html @@ -0,0 +1,210 @@ + + + + + + + + Strings in binaries — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Strings in binaries¶

+

The program below searches all strings starting with double underscore in the given binary file. +The same method can be used to search for arbitrary signatures or keywords. +Since we are dealing with a binary file, we cannot use the sentinel method to check for the end of input: +binary files can contain all kinds of characters, so no sentinel can be chosen. +The usual way in such cases is to use YYLIMIT-based checking: it requires padding input with YYMAXFILL fake characters, +but it’s not a problem since the input is buffered anyway.

+

However, this exampe takes another approach: +it uses generic API to override the default checking mechanism. +First, it disables the usual mechanism: suppresses the generation of YYLESSTHAN and YYFILL with re2c:yyfill:enable = 0; configuration. +Second, it redefines YYSKIP to perform checking before advancing to the next input character. +In principle, this approach is less efficient: +checking happens more frequently, as YYSKIP is invoked on each input character, +while YYLESSTHAN happens only once per each strongly connected component of automaton. +However, it allows to avoid padding.

+

[binsyms.re]

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
#include <stdlib.h>
+#include <stdio.h>
+
+static void lex(const char *cur, const char *lim)
+{
+    const char *mar, *tok;
+#   define YYCTYPE     char
+#   define YYPEEK()    *cur
+#   define YYSKIP()    if (++cur == lim) return;
+#   define YYBACKUP()  mar = cur
+#   define YYRESTORE() cur = mar
+loop:
+    tok = cur;
+    /*!re2c
+        re2c:yyfill:enable = 0;
+
+        * { goto loop; }
+        "__" [a-zA-Z0-9_]+ {
+            printf("%.*s\n", (int) (cur - tok), tok);
+            goto loop;
+        }
+    */
+}
+
+int main(int argc, char **argv)
+{
+    if (argc < 2) {
+        fprintf(stderr, "no input files\n");
+        return 1;
+    }
+
+    FILE *file = fopen(argv[1], "rb");
+    if (file == NULL) {
+        fprintf(stderr, "cannot open file\n");
+        return 1;
+    }
+
+    fseek(file, 0, SEEK_END);
+    const size_t fsize = (size_t) ftell(file);
+    fseek(file, 0, SEEK_SET);
+
+    char *buffer = (char*) malloc(fsize);
+    fread(buffer, 1, fsize, file);
+    lex(buffer, buffer + fsize);
+
+    free(buffer);
+    fclose(file);
+    return 0;
+}
+
+
+

Compile:

+
$ re2c --input custom -o binsyms.cc binsyms.re
+$ g++ -o binsyms binsyms.cc
+
+
+

Run:

+
$ ./binsyms binsyms
+__gmon_start__
+__libc_start_main
+__off_t
+__cxx11
+__gnu_cxx3divExx
+__off64_t
+__pad1
+__pad2
+__pad3
+__pad4
+__pad5
+__compar_fn_t
+__gnu_cxx
+__init_array_start
+__libc_csu_fini
+__libc_csu_init
+__init_array_end
+__GNU_EH_FRAME_HDR
+__init_array_end
+__init_array_start
+__libc_csu_fini
+__gmon_start__
+__libc_start_main
+__data_start
+__TMC_END__
+__dso_handle
+__libc_csu_init
+__bss_start
+
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/examples/example_16.html b/examples/example_16.html new file mode 100644 index 00000000..8a1c3081 --- /dev/null +++ b/examples/example_16.html @@ -0,0 +1,146 @@ + + + + + + + + Fake sentinel — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Fake sentinel¶

+

This example explores the case when we know the length of input, +but there is no terminating character and buffering is not possible. +In such cases we cannot use the usual sentinel method; and we cannot use YYLIMIT-based method as it requires YYMAXFILL padding. +The choiche then is to use generic API: +disable the default cheching mechanism with re2c:yyfill:enable = 0; +and use one of the primitives YYPEEK and YYSKIP to check for the end of input.

+

In this example we use YYPEEK to emulate fake sentinel: +every time the lexer peeks a new character, it first checks for the end of input: +if it has already been reached, YYPEEK returns NULL (though the actual string has no terminating NULL). +Checking on every YYPEEK is less efficient than the usual sentinel method +(which performs no checking at all), but it can be more efficient than copying input to buffer and padding it with a real sentinel character.

+

Note that fake sentinel method also relies on the fact that sentinel cannot appear in the middle of well-formed input. +If the input can contain arbitrary characters, then one should utilize YYSKIP as shown in this example.

+

[fake_sentinel.re]

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
#include <stdio.h>
+#include <string.h>
+
+static int lex(const char *cur, const char *lim)
+{
+    const char *mar, *tok = cur;
+#   define YYCTYPE     char
+#   define YYPEEK()    (cur < lim ? *cur : 0)
+#   define YYSKIP()    ++cur
+#   define YYBACKUP()  mar = cur
+#   define YYRESTORE() cur = mar
+    /*!re2c
+        re2c:yyfill:enable = 0;
+
+        * { printf("error\n"); return 1; }
+        [0-9a-zA-Z]+ [;] [\x00] {
+            printf("%.*s\n", (int) (cur - tok) - 1, tok);
+            return 0;
+        }
+    */
+}
+
+int main(int argc, char **argv)
+{
+    if (argc != 2) return 1;
+
+    char *s = argv[1];
+    size_t l = strlen(s);
+    s[l] = ';'; // overwrite terminating NULL
+    return lex(s, s + l + 1);
+}
+
+
+

Compile:

+
$ re2c --input custom -o fake_sentinel.cc fake_sentinel.re
+$ g++ -o fake_sentinel fake_sentinel.cc
+
+
+

Run:

+
$ ./fake_sentinel somestring
+somestring;
+
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/examples/example_17.html b/examples/example_17.html new file mode 100644 index 00000000..ddbad9d8 --- /dev/null +++ b/examples/example_17.html @@ -0,0 +1,138 @@ + + + + + + + + std::ifstream — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

std::ifstream¶

+

This example shows how to override re2c input mechanism: +instead of reading input characters from a buffer in memory, read them directly from file using STL std::ifstream class. +Note that we use tellg / seekg and rely on the ability to move backward and forward in the input stream: +this might not be possible, for example with stdin stream. +The program below converts Windows-style line endings CR LF to Unix-style line endings LF.

+

This program uses a non-standard way of checking for the end of input: +it disables the usual cheching mechnism with re2c:yyfill:enable = 0; +(this suppresses the generation of YYLESSTHAN and YYFILL) +and puts the responsibility for checking on YYSKIP. +This results in more frequent checks: YYSKIP is happens on each input character, +while YYLESSTHAN happens only once per each strongly connected component of automaton. +However, this method allows to avoid padding, which would require buffering input and nullify all advantages of direct-file input.

+

[ifstream.re]

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
#include <fstream>
+
+static void conv(std::ifstream &in, std::ofstream &out)
+{
+    std::streampos mar;
+#   define YYCTYPE     char
+#   define YYPEEK()    in.peek()
+#   define YYSKIP()    do { in.ignore(); if (in.eof()) return; } while(0)
+#   define YYBACKUP()  mar = in.tellg()
+#   define YYRESTORE() in.seekg(mar)
+loop:
+    /*!re2c
+        re2c:yyfill:enable = 0;
+
+        *      { out.put(yych); goto loop; }
+        "\r\n" { out.put('\n'); goto loop; }
+    */
+}
+
+int main(int argc, char **argv)
+{
+    if (argc != 3) return 1;
+
+    std::ifstream in(argv[1], std::ios::binary);
+    std::ofstream out(argv[2], std::ios::binary);
+    if (in.fail() || out.fail()) return 2;
+
+    conv(in, out);
+    return 0;
+}
+
+
+

Compile:

+
$ re2c --input custom -o ifstream.cc ifstream.re
+$ g++ -o ifstream ifstream.cc
+
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/examples/examples.html b/examples/examples.html new file mode 100644 index 00000000..1470bed5 --- /dev/null +++ b/examples/examples.html @@ -0,0 +1,74 @@ + + + + + + + + <no title> — re2c 1.2 documentation + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/feed/atom.xml b/feed/atom.xml new file mode 100644 index 00000000..24a6a39f --- /dev/null +++ b/feed/atom.xml @@ -0,0 +1,224 @@ + + + + re2c + + http://re2c.org/ + 2016-01-21T00:00:00Z + + + Release 0.15 + + http://re2c.org/releases/release_notes.html#release-0-15 + 2015-11-22T00:00:00Z + +
+ Major release re2c-0.15 (release notes). :) +
+
+ + Ulya Trofimovich + skvadrik@gmail.com + +
+ + + Release 0.15.1 + + http://re2c.org/releases/release_notes.html#release-0-15-1 + 2015-11-23T00:00:00Z + +
+ Minor release re2c-0.15.1 (release notes). +
+
+ + Ulya Trofimovich + skvadrik@gmail.com + +
+ + + Release 0.15.2 + + http://re2c.org/releases/release_notes.html#release-0-15-2 + 2015-11-23T22:00:00Z + +
+ Minor release re2c-0.15.2 (release notes). +
+
+ + Ulya Trofimovich + skvadrik@gmail.com + +
+ + + Release 0.15.3 + + http://re2c.org/releases/release_notes.html#release-0-15-3 + 2015-12-02T00:00:00Z + +
+ Minor release re2c-0.15.3 (release notes). +
+
+ + Ulya Trofimovich + skvadrik@gmail.com + +
+ + + Release 0.16 + + http://re2c.org/releases/release_notes.html#release-0-16 + 2016-01-21T00:00:00Z + +
+ Major release re2c-0.16 (release notes). +
+
+ + Ulya Trofimovich + skvadrik@gmail.com + +
+ + + Release 1.0 + + http://re2c.org/releases/release_notes.html#release-1-0 + 2017-08-11T00:00:00Z + +
+ Release re2c-1.0! (release notes). +
+
+ + Ulya Trofimovich + skvadrik@gmail.com + +
+ + + + Release 1.0.1 + + http://re2c.org/releases/release_notes.html#release-1-0-1 + 2017-08-14T09:00:00Z + +
+ Release re2c-1.0.1! (release notes). +
+
+ + Ulya Trofimovich + skvadrik@gmail.com + +
+ + + + Release 1.0.2 + + http://re2c.org/releases/release_notes.html#release-1-0-2 + 2017-08-26T22:00:00Z + +
+ Another small release re2c-1.0.2! (release notes). +
+
+ + Ulya Trofimovich + skvadrik@gmail.com + +
+ + + + Release 1.0.3 + + http://re2c.org/releases/release_notes.html#release-1-0-3 + 2017-11-08T22:00:00Z + +
+ Yet another small release re2c-1.0.3 :) (release notes). +
+
+ + Ulya Trofimovich + skvadrik@gmail.com + +
+ + + + Release 1.1 + + http://re2c.org/releases/release_notes.html#release-1-1 + 2018-08-27T23:00:00Z + +
+ Release re2c-1.1 (release notes). +
+
+ + Ulya Trofimovich + skvadrik@gmail.com + +
+ + + + Release 1.1.1 + + http://re2c.org/releases/release_notes.html#release-1-1-1 + 2018-08-30T23:30:00Z + +
+ Release re2c-1.1.1 (release notes). +
+
+ + Ulya Trofimovich + skvadrik@gmail.com + +
+ + + + Release 1.2 + + http://re2c.org/releases/release_notes.html#release-1-2 + 2019-08-02T00:00:00Z + +
+ Major release re2c-1.2 (release notes). +
+
+ + Ulya Trofimovich + skvadrik@gmail.com + +
+ + + + Release 1.2.1 + + http://re2c.org/releases/release_notes.html#release-1-2-1 + 2019-08-11T00:00:00Z + +
+ Minor release re2c-1.2.1 (release notes). +
+
+ + Ulya Trofimovich + skvadrik@gmail.com + +
+ +
diff --git a/feed/feed.png b/feed/feed.png new file mode 100644 index 0000000000000000000000000000000000000000..2eeaf239aca9a597499032db9759e114fb3e5de6 GIT binary patch literal 7519 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 + + + + + + Index — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ + +

Index

+ +
+ +
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 00000000..fb72efe3 --- /dev/null +++ b/index.html @@ -0,0 +1,190 @@ + + + + + + + + re2c — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

re2c¶

+
+
+

Re2c is a free and open-source lexer generator for C and C++. +The main goal of the project is to generate very fast lexers that match or +exceed the speed of carefully optimized hand-written code. Instead of using +traditional table-driven approach, re2c encodes the underlying finite state +automata directly in the form of conditional jumps and applies numerous optimizations to the generated code. +The resulting programs are faster and often smaller than their table-driven counterparts, and they +are much easier to debug and understand. +Re2c has an unusual flexible user interface: +instead of assuming a fixed program template, it leaves the definition of +the interface code to the user and allows to configure almost every aspect of the generated +code. This gives the users a lot of freedom in the way they bind the +lexer to their particular environment and allows them to decide on the optimal input model. +Re2c supports fast and lightweight submatch extraction +which does not requre the overhead on full parsing — a feature that is rarely found in the wild. +Re2c is used by many other projects +(such as +php, +ninja, +yasm, +spamassassin, +BRL-CAD +and wake) +and aims at being fully backward compatible. +On the other hand, it is a research project and a playground for the development of new algorithms in the field of formal grammars and automata.

+

feed Subscribe to receive the latest news and updates. +See the user manual for a complete overview with +examples.

+
+

Download¶

+

You can get the +latest release on Github, +as well as the older releases +(make sure you download the latest minor version in each series). +Many Linux distributions and other systems provide their own packages. +Re2c source code is hosted on both Github +(https://github.com/skvadrik/re2c) and SourceForge +(https://sourceforge.net/p/re2c). +Github serves as the main repository, bugtracker and tarball hosting. +SourceForge is used as a backup repository and email hosting.

+
+
+

Bugs & patches¶

+

Please send bugs reports, patches and other feedback to github issue tracker or email them to +re2c-devel@lists.sourceforge.net and +re2c-general@lists.sourceforge.net +mailing lists. +Re2c has an IRC channel #re2c on freenode. +Re2c developers are happy to answer questions and provide help. +Contributions are always welcome!

+
+
+

Papers¶

+ +
+
+

Authors¶

+

Re2c was originally written by Peter Bumbulis (peter@csg.uwaterloo.ca) in 1993. +Since then it has been maintained and developed by multiple volunteers, +most notably, +Brian Young (bayoung@acm.org), +Markus Boerger (helly@users.sourceforge.net), +Dan Nuffer (nuffer@users.sourceforge.net) +and Ulya Trofimovich (skvadrik@gmail.com). +Other re2c contributors are +Derick Rethans, +Emmanuel Mogenet, +Hartmut Kaiser, +jcfp, +joscherl, +Mike Gilbert, +Nerd, +nuno-lopes, +Oleksii Taran, +Peter Bumbulis, +Petr Skocik, +Paulo Custodio, +Ross Burton, +Ryan Mast, +Serghei Iakovlev, +Sergei Trofimovich +and Tim Kelly +(apologies if someone is missing).

+
+
+

License¶

+

Re2c is in the public domain. The data structures and algorithms used +in re2c are all either taken from documents available to the general +public or are inventions of the author. Programs generated by re2c may +be distributed freely. Re2c itself may be distributed freely, in source +or binary, unchanged or modified. Distributors may charge whatever fees +they can obtain for re2c. If you do make use of re2c, or incorporate it into a larger project an +acknowledgement somewhere (documentation, research report, etc.) would +be appreciated. +Re2c is distributed with no warranty whatsoever. +The code is certain to contain errors. +Neither the author nor any contributor takes responsibility for any consequences of its use.

+
+
+

Version¶

+

This website describes re2c version 1.2.

+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/install/install.html b/install/install.html new file mode 100644 index 00000000..c2f6f62c --- /dev/null +++ b/install/install.html @@ -0,0 +1,167 @@ + + + + + + + + Build instructions — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Build instructions¶

+
+
+
+

Dependencies¶

+

Re2c users need only a C++ compiler to build re2c from a release tarball, and +optionally Bash if they want to run the tests.

+

Re2c developers also need Autotools, Bison (if they change parser code), rst2man +(if they change documentation), Sphinx (if they change this website), Mingw and +Wine (if they test builds for Windows) and Libtool (if they change the +experimental libre2c library). A few occasional helper scripts are written in +Haskell (but they are not necessary for re2c development). +Re2c is a bootstrapping project with all the consequences.

+
+
+

Building¶

+

If you are building re2c from repository, not from a release tarball, first of +all you should run Autotools:

+
$ autoreconf -i -W all
+
+
+

The simplest possible build is an in-tree build (will install re2c to +$RE2C_PATH location):

+
$ ./configure --prefix=$RE2C_PATH
+$ make
+$ make install
+
+
+

Out-of-tree build (puts build artifacts in a separate directory):

+
$ mkdir $BUILD_DIR
+$ cd $BUILD_DIR
+$ ../configure --prefix=$RE2C_PATH
+$ make
+$ make install
+
+
+

Bootstrapping build (rebuilds re2c with the freshly built re2c and updates +precompiled bootstrap files):

+
$ make bootstrap
+
+
+

Building on Windows is more tricky. The best option is to use +Cygwin, or build re2c with Mingw +(Mingw builds are supported and tested regularly). +For some Mingw versions you might have to use -std=gnu++11 compiler option +to avoid spurious build errors (re2c uses -std=c++98 by default).

+
$ ./configure --host i686-w64-ming 32 CXXFLAGS="-std=gnu++11"
+
+
+

To build documentation:

+
$ ./configure --enable-docs
+
+
+

To enable debug:

+
$ ./configure --enable-debug
+
+
+

To build the experimental libre2c library:

+
$ ./configure --enable-libs
+
+
+

Re2c provides a bunch of build scripts __build_*.sh that can be used +for specialized builds with GLIBCXX_DEBUG, AddressSanitizer, etc.

+
+
+

Testing¶

+

Re2c has a main test suite and a couple of small unit tests. Run them all:

+
$ make check
+
+
+

Run only the main test suite and watch the progress dumped on stdout:

+
$ ./run_tests.sh -j<N>
+
+
+

Run the main test suite with --skeleton re2c option:

+
$ ./run_tests.sh --skeleton
+
+
+

Run the test suite under Valgrind (takes some time and memory):

+
$ make vtests
+
+
+

Test mingw builds with Wine:

+
$ make wtests
+
+
+

Check the distribution:

+
$ make distcheck
+
+
+

Re2c provides a helper script __alltest.sh that builds and tests various +re2c build flavours with GLIBCXX_DEBUG, AddressSanitizer, etc. +There is a couple of fuzz-testing Haskell scripts in the fuzz subdirectory; +they are based on the QuickCheck library and can be easily modified to fuzz-test +various aspects of re2c by comparing current re2c version against older versions +or against other regular expression libraries.

+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/manual/dot/example.html b/manual/dot/example.html new file mode 100644 index 00000000..0f46c336 --- /dev/null +++ b/manual/dot/example.html @@ -0,0 +1,70 @@ + + + + + + + + <no title> — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +

Below is an example of generating a picture of DFA that accepts any UTF-8 code point +(utf8_any.re):

+
/*!re2c
+    *   {}
+    [^] {}
+*/
+
+
+

Generate and render:

+
$ re2c -D -8 utf8_any.re | dot -Tpng -o utf8_any.png
+
+
+

Here is the picture:

+../../_images/utf8_any.png + + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/manual/manual.html b/manual/manual.html new file mode 100644 index 00000000..b1097e46 --- /dev/null +++ b/manual/manual.html @@ -0,0 +1,2920 @@ + + + + + + + + User manual — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

User manual¶

+
+

Syntax¶

+

A re2c program consists of a number of re2c blocks and directives intermixed +with normal C/C++ code. Each re2c block consists of a sequence of named +definitions, configurations and rules that contain regular expressions. The +generated lexer communicates with the outer world by the means of user +interface. +Rules consist of a regular expression followed by a user-defined action +(semantic action): a block of C/C++ code that is executed in case of successful +match. Semantic action can be either an arbitrary block of code enclosed in +curly braces { and }, or a block of code without curly braces preceded +with := and ended with a newline that is not followed by a whitespace. +If multiple rules match, longest match takes precedence. If multiple rules match +the same string, the earlier rule takes priority. If -c --conditions option +is used, then rules have more complex form described in the section about +conditions. There are two special kinds of rules:

+
    +
  • Default rule * which has the lowest priority reagrdless of its place in +the source code, matches any code unit and consumes exactly one code unit. +This rule should always be defined.
  • +
  • EOF rule $ which matches the end of input. This rule should be defined if +the simplified EOF handling method is used.
  • +
+

Named definitions are of the form name = regexp ; where name is an +identifier that consists of letters, digits and underscores, and regexp is a +regular expression. With -F --flex-syntax option named definitions are also +of the form name regexp. Each name should be defined before it is used.

+
+

A basic example¶

+

Here is an example program [syntax.re] +that shows various aspects of re2c syntax:

+
/*!re2c re2c:flags:i = 1; */         // re2c block with configuration that turns off #line directives
+                                     //
+#include <stdio.h>                   //    C/C++ code
+                                     //
+/*!max:re2c*/                        // directive that defines YYMAXFILL (unused)
+/*!re2c                              // start of re2c block
+    digit  = [0-9];                  //   named definition of 'digit'
+    number = digit+;                 //   named definition of 'number'
+*/                                   // end of re2c block
+                                     //
+static int lex(const char *YYCURSOR) // YYCURSOR is defined as a function parameter
+{                                    //
+    const char *YYMARKER;            // YYMARKER is defined as a local variable
+    /*!re2c                          // start of re2c block
+    re2c:define:YYCTYPE = char;      //   configuration that defines YYCTYPE
+    re2c:yyfill:enable  = 0;         //   configuration that turns off YYFILL
+                                     //
+    * { return 1; }                  //   default rule with its semantic action
+                                     //
+    number {                         //   a normal rule with its semantic action
+        printf("number\n");          //     ... semantic action (continued)
+        return 0;                    //     ... semantic action (continued)
+    }                                //   end of semantic action
+                                     //
+    */                               // end of re2c block
+}                                    //
+                                     //
+int main()                           //
+{                                    //
+    lex("1024");                     //    C/C++ code
+    lex(";]");                       //
+    return 0;                        //
+}                                    //
+
+
+

Run re2c as re2c -W syntax.re -o syntax.c (option -W enables warnings). +The generated code [syntax.c] +looks like this:

+
                                     // re2c block with configuration that turns off #line directives
+                                     //
+#include <stdio.h>                   //    C/C++ code
+                                     //
+#define YYMAXFILL 1                  // directive that defines YYMAXFILL (unused)
+                                     // end of re2c block
+                                     //
+static int lex(const char *YYCURSOR) // YYCURSOR is defined as a function parameter
+{                                    //
+    const char *YYMARKER;            // YYMARKER is defined as a local variable
+    
+{
+    char yych;
+    yych = *YYCURSOR;
+    switch (yych) {
+    case '0':
+    case '1':
+    case '2':
+    case '3':
+    case '4':
+    case '5':
+    case '6':
+    case '7':
+    case '8':
+    case '9':   goto yy4;
+    default:    goto yy2;
+    }
+yy2:
+    ++YYCURSOR;
+    { return 1; }
+yy4:
+    yych = *++YYCURSOR;
+    switch (yych) {
+    case '0':
+    case '1':
+    case '2':
+    case '3':
+    case '4':
+    case '5':
+    case '6':
+    case '7':
+    case '8':
+    case '9':   goto yy4;
+    default:    goto yy6;
+    }
+yy6:
+    {                                //   a normal rule with its semantic action
+        printf("number\n");          //     ... semantic action (continued)
+        return 0;                    //     ... semantic action (continued)
+    }
+}
+                                     // end of re2c block
+}                                    //
+                                     //
+int main()                           //
+{                                    //
+    lex("1024");                     //    C/C++ code
+    lex(";]");                       //
+    return 0;                        //
+}                                    //
+
+
+

The lines without comments correspond to the code generated by re2c. Not all +comments are present in the output — only those which are in C/C++ code, and +not inside of re2c blocks.

+
+
+
+

Regular expressions¶

+

re2c uses the following syntax for regular expressions:

+
    +
  • "foo" case-sensitive string literal
  • +
  • 'foo' case-insensitive string literal
  • +
  • [a-xyz], [^a-xyz] character class (possibly negated)
  • +
  • . any character except newline
  • +
  • R \ S difference of character classes R and S
  • +
  • R* zero or more occurrences of R
  • +
  • R+ one or more occurrences of R
  • +
  • R? optional R
  • +
  • R{n} repetition of R exactly n times
  • +
  • R{n,} repetition of R at least n times
  • +
  • R{n,m} repetition of R from n to m times
  • +
  • (R) just R; parentheses are used to override precedence or for POSIX-style submatch
  • +
  • R S concatenation: R followed by S
  • +
  • R | S alternative: R or S
  • +
  • R / S lookahead: R followed by S, but S is not consumed
  • +
  • name the regular expression defined as name (or literal string "name" in Flex compatibility mode)
  • +
  • {name} the regular expression defined as name in Flex compatibility mode
  • +
  • @stag an s-tag: saves the last input position at which @stag matches in a variable named stag
  • +
  • #mtag an m-tag: saves all input positions at which #mtag matches in a variable named mtag
  • +
+

Character classes and string literals may contain the following escape sequences: +\a, \b, \f, \n, \r, \t, \v, \\, octal escapes \ooo and hexadecimal escapes \xhh, \uhhhh and \Uhhhhhhhh.

+
+
+

User interface¶

+

Below is the list of all symbols which may be used by the lexer in order to interact with the outer world. +These symbols should be defined by the user, +either in the form of inplace configurations, +or as C/C++ variables, functions, macros and other language constructs. +Which primitives are necessary depends on the particular use case.

+
+
yyaccept
+
L-value of unsigned integral type that is used to hold the number of the last matched rule. +Explicit definition by the user is necessary only with -f --storable-state option.
+
YYBACKUP ()
+
Backup current input position (used only with --input custom option).
+
YYBACKUPCTX ()
+
Backup current input position for trailing context (used only with --input custom option).
+
yych
+
L-value of type YYCTYPE that is used to hold current input character. +Explicit definition by the user is necessary only with -f --storable-state option.
+
YYCONDTYPE
+
The type of condition identifiers (used only with -c --conditions option). +Should be generated either with /*!types:re2c*/ directive, or with -t --type-header option.
+
YYCTXMARKER
+
L-value of type YYCTYPE * that is used to backup input position of trailing context. +It is needed only if regular expressions use the lookahead operator /.
+
YYCTYPE
+
The type of the input characters (code units). +Usually it should be unsigned char for ASCII, EBCDIC and UTF-8 encodings, +unsigned short for UTF-16 or UCS-2 encodings, +and unsigned int for UTF-32 encoding.
+
YYCURSOR
+
L-value of type YYCTYPE * that is used as a pointer to the current input symbol. +Initially YYCURSOR points to the first character and is advanced by the lexer during matching. +When a rule matches, YYCURSOR points past the last character of the matched string.
+
YYDEBUG (state, symbol)
+
A function-like primitive that is used to dump debug information (only used with -d --debug-output option). +YYDEBUG should return no value and accept two arguments: +state (either lexer state or -1) and symbol (current input symbol).
+
YYFILL (n)
+
A function-like primitive that is called by the lexer when there is not enough input. +YYFILL should return no value and supply at least n additional characters. +Maximal value of n equals YYMAXFILL, which can be obtained with the /*!max:re2c*/ directive.
+
YYGETCONDITION ()
+
R-value of type YYCONDTYPE that represents current condition identifier (used only with -c --conditions option).
+
YYGETSTATE ()
+
R-value of signed integral type that represents current lexer state (used only with -f --storable-state option). +Initial value of lexer state should be -1.
+
YYLESSTHAN (n)
+
R-value of boolean type that is true if and only if there is less than n input characters left (used only with --input custom option).
+
YYLIMIT
+
R-value of type YYCTYPE * that marks the end of input (YYLIMIT[-1] should be the last input character). +Lexer compares YYCURSOR and YYLIMIT in order to determine if there is enough input characters left.
+
YYMARKER
+
L-value of type YYCTYPE * used to backup input position of successful match. +This might be necessary if there is an overlapping longer rule that might also match.
+
YYMTAGP (t)
+
Append current input position to the history of m-tag t (used only with -T --tags option).
+
YYMTAGN (t)
+
Append default value to the history of m-tag t (used only with -T --tags option).
+
YYMAXFILL
+
Integral constant that denotes maximal value of YYFILL argument +and is autogenerated by /*!max:re2c*/ directive.
+
YYMAXNMATCH
+
Integral constant that denotes maximal number of capturing groups in a rule +and is autogenerated by /*!maxnmatch:re2c*/ directive (used only with --posix-captures option).
+
yynmatch
+
L-value of unsigned integral type that is used to hold the number of capturing groups in the matching rule. +Used only with -P --posix-captures option.
+
YYPEEK ()
+
R-value of type YYCTYPE that denotes current input character (used only with --input custom option).
+
yypmatch
+
An array of l-values that are used to hold the values of s-tags +corresponding to the capturing parentheses in the matching rule. +The length of array must be at least yynmatch * 2 (ideally YYMAXNMATCH * 2). +Used only with -P --posix-captures option.
+
YYRESTORE ()
+
Restore input position (used only with --input custom option).
+
YYRESTORECTX ()
+
Restore input position from the value of trailing context (used only with --input custom option).
+
YYRESTORETAG (t)
+
Restore input position from the value of s-tag t (used only with --input custom option).
+
YYSETCONDITION (condition)
+
Set current condition identifier to condition (used only with -c --conditions option).
+
YYSETSTATE (state)
+
Set current lexer state to state (used only with -f --storable-state option). +Parameter state is of signed integral type.
+
YYSKIP ()
+
Advance input position to the next character (used only with generic API).
+
YYSTAGP (t)
+
Save current input position to s-tag t (used only with -T --tags and --input custom option).
+
YYSTAGN (t)
+
Save default value to s-tag t (used only with -T --tags and --input custom options).
+
+
+

Default API¶

+

By default re2c operates on input using pointer-like primitives +YYCURSOR, YYMARKER, YYCTXMARKER, and YYLIMIT. +Normally pointer-like primitives are defined as variables of type YYCTYPE*, +but it is possible to use STL iterators or any other abstraction as long as it syntactically fits into the following use cases:

+
    +
  • ++YYCURSOR;
  • +
  • yych = *YYCURSOR;
  • +
  • yych = *++YYCURSOR;
  • +
  • yych = *(YYMARKER = YYCURSOR);
  • +
  • yych = *(YYMARKER = ++YCURSOR);
  • +
  • YYMARKER = YYCURSOR;
  • +
  • YYMARKER = ++YYCURSOR;
  • +
  • YYCURSOR = YYMARKER;
  • +
  • YYCTXMARKER = YYCURSOR + 1;
  • +
  • YYCURSOR = YYCTXMARKER;
  • +
  • if (YYLIMIT <= YYCURSOR) ...
  • +
  • if ((YYLIMIT - YYCURSOR) < n) ...
  • +
  • YYDEBUG (label, *YYCURSOR);
  • +
+
+
+

Generic API¶

+

If the default input model is too restrictive, then it is possible to use generic input API enabled with --input custom option. +In this mode all input operations are expressed in terms of the primitives below. +These primitives can be defined in any suitable way; one doesn’t have to stick to the pointer semantics. +For example, it is possible to read input directly from file without any buffering, +or to disable YYFILL mechanism and perform end-of-input checking on each input character from inside of YYPEEK or YYSKIP.

+
    +
  • YYPEEK ()
  • +
  • YYSKIP ()
  • +
  • YYBACKUP ()
  • +
  • YYBACKUPCTX ()
  • +
  • YYSTAGP (t)
  • +
  • YYSTAGN (t)
  • +
  • YYMTAGP (t)
  • +
  • YYMTAGN (t)
  • +
  • YYRESTORE ()
  • +
  • YYRESTORECTX ()
  • +
  • YYRESTORETAG (t)
  • +
  • YYLESSTHAN (n)
  • +
+

Default input model can be expressed in terms of generic API as follows +(except for YMTAGP and YYMTAGN, which have no default implementation):

+
#define  YYPEEK ()         *YYCURSOR
+#define  YYSKIP ()         ++YYCURSOR
+#define  YYBACKUP ()       YYMARKER = YYCURSOR
+#define  YYBACKUPCTX ()    YYCTXMARKER = YYCURSOR
+#define  YYRESTORE ()      YYCURSOR = YYMARKER
+#define  YYRESTORECTX ()   YYCURSOR = YYCTXMARKER
+#define  YYRESTORERAG (t)  YYCURSOR = t
+#define  YYLESSTHAN (n)    YYLIMIT - YYCURSOR < n
+#define  YYSTAGP (t)       t = YYCURSOR
+#define  YYSTAGN (t)       t = NULL
+
+
+
+
+
+

Directives¶

+

Below is the list of all directives provided by re2c (in no particular order). +More information on each directive can be found in the related sections.

+
+
/*!re2c ... */
+
A standard re2c block.
+
%{ ... %}
+
A standard re2c block in -F --flex-support mode.
+
/*!rules:re2c ... */
+
A reusable re2c block (requires -r --reuse option).
+
/*!use:re2c ... */
+
A block that reuses previous rules-block specified with +/*!rules:re2c ... */ (requires -r --reuse option).
+
/*!ignore:re2c ... */
+
A block which contents are ignored and cut off from the output file.
+
/*!max:re2c*/
+
This directive is substituted with the macro-definition of YYMAXFILL.
+
/*!maxnmatch:re2c*/
+
This directive is substituted with the macro-definition of YYMAXNMATCH +(requires -P --posix-captures option).
+
/*!getstate:re2c*/
+
This directive is substituted with conditional dispatch on lexer state +(requires -f --storable-state option).
+
/*!types:re2c ... */
+
This directive is substituted with the definition of condition enum +(requires -c --conditions option).
+
/*!stags:re2c ... */, /*!mtags:re2c ... */
+
These directives allow one to specify a template piece of code that is expanded +for each s-tag/m-tag variable generated by re2c. This block has two optional +configurations: format = "@@"; (specifies the template where @@ is +substituted with the name of each tag variable), and separator = ""; +(specifies the piece of code used to join the generated pieces for different +tag variables).
+
/*!include:re2c FILE */
+
This directive allows one to include FILE (in the same sense as #include +directive in C/C++).
+
/*!header:re2c:on*/
+
This directive marks the start of header file. Everything after it and up to +the following /*!header:re2c:off*/ directive is processed by re2c and +written to the header file specified with -t --type-header option.
+
/*!header:re2c:off*/
+
This directive marks the end of header file started with +/*!header:re2c:on*/.
+
+
+
+

Options¶

+
+
-? -h --help
+
Show help message.
+
-1 --single-pass
+
Deprecated. Does nothing (single pass is the default now).
+
-8 --utf-8
+
Generate a lexer that reads input in UTF-8 encoding. +re2c assumes that character range is 0 – 0x10FFFF and character size is +1 byte.
+
-b --bit-vectors
+
Optimize conditional jumps using bit masks. Implies -s.
+
-c --conditions --start-conditions
+
Enable support of Flex-like “conditions”: multiple interrelated lexers +within one block. Option --start-conditions is a legacy alias; use +--conditions instead.
+
--case-insensitive
+
Treat single-quoted and double-quoted strings as case-insensitive.
+
--case-inverted
+
Invert the meaning of single-quoted and double-quoted strings: +treat single-quoted strings as case-sensitive and double-quoted strings +as case-insensitive.
+
-D --emit-dot
+
Instead of normal output generate lexer graph in .dot format. +The output can be converted to an image with the help of Graphviz +(e.g. something like dot -Tpng -odfa.png dfa.dot).
+
-d --debug-output
+
Emit YYDEBUG in the generated code. +YYDEBUG should be defined by the user in the form of a void function +with two parameters: state (lexer state or -1) and symbol (current +input symbol of type YYCTYPE).
+
--dfa-minimization <moore | table>
+
The internal algorithm used by re2c to minimize the DFA: moore (the +default) is Moore algorithm, and table is the “table filling” algorithm. +Both algorithms should produce the same DFA up to states relabeling; table +filling is simpler and much slower and serves as a reference implementation.
+
--dump-adfa
+
Debug option: output DFA after tunneling (in .dot format).
+
--dump-cfg
+
Debug option: output control flow graph of tag variables (in .dot format).
+
--dump-closure-stats
+
Debug option: output statistics on the number of states in closure.
+
--dump-dfa-det
+
Debug option: output DFA immediately after determinization (in .dot format).
+
--dump-dfa-min
+
Debug option: output DFA after minimization (in .dot format).
+
--dump-dfa-tagopt
+
Debug option: output DFA after tag optimizations (in .dot format).
+
--dump-dfa-raw
+
Debug option: output DFA under construction with expanded state-sets +(in .dot format).
+
--dump-interf
+
Debug option: output interference table produced by liveness analysis of tag +variables.
+
--dump-nfa
+
Debug option: output NFA (in .dot format).
+
-e --ecb
+
Generate a lexer that reads input in EBCDIC encoding. +re2c assumes that character range is 0 – 0xFF an character size is 1 byte.
+
--eager-skip
+
Make the generated lexer advance the input position “eagerly”: +immediately after reading input symbol. +By default this happens after transition to the next state. +Implied by --no-lookahead.
+
--empty-class <match-empty | match-none | error>
+
Define the way re2c treats empty character classes. With match-empty +(the default) empty class matches empty input (which is illogical, but +backwards-compatible). With``match-none`` empty class always fails to match. +With error empty class raises a compilation error.
+
--encoding-policy <fail | substitute | ignore>
+
Define the way re2c treats Unicode surrogates. +With fail re2c aborts with an error when a surrogate is encountered. +With substitute re2c silently replaces surrogates with the error code +point 0xFFFD. With ignore (the default) re2c treats surrogates as +normal code points. The Unicode standard says that standalone surrogates +are invalid, but real-world libraries and programs behave in different ways.
+
-f --storable-state
+
Generate a lexer which can store its inner state. +This is useful in push-model lexers which are stopped by an outer program +when there is not enough input, and then resumed when more input becomes +available. In this mode users should additionally define YYGETSTATE() +and YYSETSTATE(state) macros and variables yych, yyaccept +and state as part of the lexer state.
+
-F --flex-syntax
+
Partial support for Flex syntax: in this mode named definitions don’t need +the equal sign and the terminating semicolon, and when used they must be +surrounded by curly braces. Names without curly braces are treated as +double-quoted strings.
+
-g --computed-gotos
+
Optimize conditional jumps using non-standard “computed goto” extension +(which must be supported by the C/C++ compiler). re2c generates jump tables +only in complex cases with a lot of conditional branches. Complexity +threshold can be configured with cgoto:threshold configuration. This +option implies -b.
+
-I PATH
+
Add PATH to the list of locations which are used when searching for +include files. This option is useful in combination with +/*!include:re2c ... */ directive. Re2c looks for FILE in the +directory of including file and in the list of include paths specified by +-I option.
+
-i --no-debug-info
+
Do not output #line information. This is useful when the generated code +is tracked by some version control system or IDE.
+
--input <default | custom>
+
Specify re2c input API. +Option default is the default API composed of pointer-like primitives +YYCURSOR, YYMARKER, YYLIMIT etc. +Option custom is the generic API composed of function-like primitives +YYPEEK(), YYSKIP(), YYBACKUP(), YYRESTORE() etc.
+
--input-encoding <ascii | utf8>
+
Specify the way re2c parses regular expressions. +With ascii (the default) re2c handles input as ASCII-encoded: any +sequence of code units is a sequence of standalone 1-byte characters. +With utf8 re2c handles input as UTF8-encoded and recognizes multibyte +characters.
+
--location-format <gnu | msvc>
+
Specify location format in messages. +With gnu locations are printed as ‘filename:line:column: …’. +With msvc locations are printed as ‘filename(line,column) …’. +Default is gnu.
+
--no-generation-date
+
Suppress date output in the generated file.
+
--no-lookahead
+
Use TDFA(0) instead of TDFA(1). +This option has effect only with --tags or --posix-captures options.
+
--no-optimize-tags
+
Suppress optimization of tag variables (useful for debugging).
+
--no-version
+
Suppress version output in the generated file.
+
-o OUTPUT --output=OUTPUT
+
Specify the OUTPUT file.
+
-P --posix-captures
+
Enable submatch extraction with POSIX-style capturing groups.
+
--posix-closure <gor1 | gtop>
+
Specify shortest-path algorithm used for construction of epsilon-closure +with POSIX disambiguation semantics: gor1 (the default) stands for +Goldberg-Radzik algorithm, and gtop stands for “global topological +order” algorithm.
+
-r --reusable
+
Allows reuse of re2c rules with /*!rules:re2c */ and /*!use:re2c */ +blocks. Exactly one rules-block must be present. The rules are saved and +used by every use-block that follows, which may add its own rules and +configurations.
+
-S --skeleton
+
Ignore user-defined interface code and generate a self-contained “skeleton” +program. Additionally, generate input files with strings derived from the +regular grammar and compressed match results that are used to verify +“skeleton” behavior on all inputs. This option is useful for finding bugs +in optimizations and code generation.
+
-s --nested-ifs
+
Use nested if statements instead of switch statements in conditional +jumps. This usually results in more efficient code with non-optimizing C/C++ +compilers.
+
-T --tags
+
Enable submatch extraction with tags.
+
-t HEADER --type-header=HEADER
+
Generate a HEADER file that contains enum with condition names. +Requires -c option.
+
-u --unicode
+
Generate a lexer that reads UTF32-encoded input. Re2c assumes that character +range is 0 – 0x10FFFF and character size is 4 bytes. This option implies +-s.
+
-V --vernum
+
Show version information in MMmmpp format (major, minor, patch).
+
--verbose
+
Output a short message in case of success.
+
-v --version
+
Show version information.
+
-w --wide-chars
+
Generate a lexer that reads UCS2-encoded input. Re2c assumes that character +range is 0 – 0xFFFF and character size is 2 bytes. This option implies +-s.
+
-x --utf-16
+
Generate a lexer that reads UTF16-encoded input. Re2c assumes that character +range is 0 – 0x10FFFF and character size is 2 bytes. This option implies +-s.
+
+
+
+

Configurations¶

+
+
re2c:cgoto:threshold = 9;
+
With -g --computed-gotos option this value specifies +the complexity threshold that triggers the generation of jump tables rather +than nested if statements and bit masks.
+
re2c:cond:divider = '/* *********************************** */';
+
Allows one to customize the divider for condition blocks. One can use @@ to insert condition name.
+
re2c:cond:divider@cond = @@;
+
Specifies the placeholder that will be replaced with condition name in re2c:cond:divider.
+
re2c:condenumprefix = yyc;
+
Specifies the prefix used for condition identifiers.
+
re2c:cond:goto@cond = @@;
+
Specifies the placeholder that will be replaced with condition label in re2c:cond:goto.
+
re2c:cond:goto = 'goto @@;';
+
Allows one to customize goto statements used with :=> style rules. +One can use @@ to insert the condition name.
+
re2c:condprefix = yyc;
+
Specifies the prefix used for condition labels.
+
re2c:define:YYBACKUPCTX = 'YYBACKUPCTX';
+
Replaces YYBACKUPCTX identifier with the specified string.
+
re2c:define:YYBACKUP = 'YYBACKUP';
+
Replaces YYBACKUP identifier with the specified string.
+
re2c:define:YYCONDTYPE = 'YYCONDTYPE';
+
Enumeration type used for condition identifiers.
+
re2c:define:YYCTXMARKER = 'YYCTXMARKER';
+
Replaces the YYCTXMARKER placeholder with the specified identifier.
+
re2c:define:YYCTYPE = 'YYCTYPE';
+
Replaces the YYCTYPE placeholder with the specified type.
+
re2c:define:YYCURSOR = 'YYCURSOR';
+
Replaces the YYCURSOR placeholder with the specified identifier.
+
re2c:define:YYDEBUG = 'YYDEBUG';
+
Replaces the YYDEBUG placeholder with the specified identifier.
+
re2c:define:YYFILL@len = '@@';
+
Any occurrence of this text inside of a YYFILL will be replaced with the actual argument.
+
re2c:define:YYFILL:naked = 0;
+
Allows to customize YYFILL invocation. +If the value is non-zero, re2c outputs the value of re2c:define:YYFILL +configuration (YYFILL by default) without any decoration: no parentheses +and no semicolon (or comparison against zero in the case of EOF rule). +Otherwise the semicolon (or the comparison) is generated, and parentheses +are controlled by the re2c:yyfill:parameter configuration.
+
re2c:define:YYFILL = 'YYFILL';
+
Define a substitution for YYFILL. +By default re2c generates an argument in parentheses and a semicolon after YYFILL. +If you need to make YYFILL an arbitrary statement rather than a call, +set re2c:define:YYFILL:naked to a non-zero value.
+
re2c:define:YYGETCONDITION:naked = 0;
+
Controls the parentheses after YYGETCONDITION. +If non-zero, the parentheses are omitted. If zero, they are generated.
+
re2c:define:YYGETCONDITION = 'YYGETCONDITION';
+
Substitution for YYGETCONDITION. +By default re2c generates parentheses after YYGETCONDITION. +Set re2c:define:YYGETCONDITION:naked to non-zero in order to omit the parentheses.
+
re2c:define:YYGETSTATE:naked = 0;
+
Controls the parentheses that follow YYGETSTATE. +If non-zero, the parentheses are omitted. If zero, they are generated.
+
re2c:define:YYGETSTATE = 'YYGETSTATE';
+
Substitution for YYGETSTATE. +By default re2c generates parentheses after YYGETSTATE. +Set re2c:define:YYGETSTATE:naked to non-zero to omit the parentheses.
+
re2c:define:YYLESSTHAN = 'YYLESSTHAN';
+
Replaces YYLESSTHAN identifier with the specified string.
+
re2c:define:YYLIMIT = 'YYLIMIT';
+
Replaces the YYLIMIT placeholder with the specified identifier.
+
re2c:define:YYMARKER = 'YYMARKER';
+
Replaces the YYMARKER placeholder with the specified identifier.
+
re2c:define:YYMTAGN = 'YYMTAGN';
+
Replaces YYMTAGN identifier with the specified string.
+
re2c:define:YYMTAGP = 'YYMTAGP';
+
Replaces YYMTAGP identifier with the specified string.
+
re2c:define:YYPEEK = 'YYPEEK';
+
Replaces YYPEEK identifier with the specified string.
+
re2c:define:YYRESTORECTX = 'YYRESTORECTX';
+
Replaces YYRESTORECTX identifier with the specified string.
+
re2c:define:YYRESTORE = 'YYRESTORE';
+
Replaces YYRESTORE identifier with the specified string.
+
re2c:define:YYRESTORETAG = 'YYRESTORETAG';
+
Replaces YYRESTORETAG identifier with the specified string.
+
re2c:define:YYSETCONDITION@cond = '@@';
+
Any occurrence of this +text inside of YYSETCONDITION will be replaced with the actual argument.
+
re2c:define:YYSETCONDITION:naked = 0;
+
Controls the argument in parentheses +and the semicolon after YYSETCONDITION. If non-zero, both the argument and +the semicolon are omitted. If zero, both the argument and the semicolon are +generated.
+
re2c:define:YYSETCONDITION = 'YYSETCONDITION';
+
Substitution for +YYSETCONDITION. By default re2c generates an argument in +parentheses followed by semicolon after YYSETCONDITION. If you need to make +YYSETCONDITION an arbitrary statement rather than a call, set +re2c:define:YYSETCONDITION:naked to non-zero.
+
re2c:define:YYSETSTATE:naked = 0;
+
Controls the argument in parentheses and the +semicolon after YYSETSTATE. If non-zero, both argument and the semicolon are +omitted. If zero, both the argument and the semicolon are generated.
+
re2c:define:YYSETSTATE@state = '@@';
+
Any occurrence of this text +inside of YYSETSTATE will be replaced with the actual argument.
+
re2c:define:YYSETSTATE = 'YYSETSTATE';
+
Substitution for +YYSETSTATE. By default re2c generates an argument in parentheses +followed by a semicolon after YYSETSTATE. If you need to make YYSETSTATE an +arbitrary statement rather than a call, set +re2c:define:YYSETSTATE:naked to non-zero.
+
re2c:define:YYSKIP = 'YYSKIP';
+
Replaces YYSKIP identifier with the specified string.
+
re2c:define:YYSTAGN = 'YYSTAGN';
+
Replaces YYSTAGN identifier with the specified string.
+
re2c:define:YYSTAGP = 'YYSTAGP';
+
Replaces YYSTAGP identifier with the specified string.
+
re2c:eof = -1;
+
Specifies the sentinel symbol used with EOF rule $ to check for the end +of input in the generated lexer. Default value is -1 (EOF rule is not +used). Other possible values include all valid code units. Only decimal +numbers are recognized.
+
re2c:sentinel = -1;
+
Specifies the sentinel symbol used with the sentinel method of checking for +the end of input in the generated lexer (the case when when bounds checking +is disabled with re2c:yyfill:enable = 0; and EOF rule $ is not +used). This configuration does not affect code generation. It is used by +re2c to verify that the sentinel symbol is not allowed in the middle of the +rule, and thus prevent possible reads past the end of buffer and crashes in +the generated lexer. Default value is -1: in this case re2c assumes that +the sentinel symbol is 0 (which is by far the most common case). Other +possible values include all valid code units. Only decimal numbers are +recognized.
+
re2c:flags:8 or re2c:flags:utf-8
+
Same as -8 --utf-8 command-line option.
+
re2c:flags:b or re2c:flags:bit-vectors
+
Same as -b --bit-vectors command-line option.
+
re2c:flags:case-insensitive = 0;
+
Same as --case-insensitive command-line option.
+
re2c:flags:case-inverted = 0;
+
Same as --case-inverted command-line option.
+
re2c:flags:d or re2c:flags:debug-output
+
Same as -d --debug-output command-line option.
+
re2c:flags:dfa-minimization = 'moore';
+
Same as --dfa-minimization command-line option.
+
re2c:flags:eager-skip = 0;
+
Same as --eager-skip command-line option.
+
re2c:flags:e or re2c:flags:ecb
+
Same as -e --ecb command-line option.
+
re2c:flags:empty-class = 'match-empty';
+
Same as --empty-class command-line option.
+
re2c:flags:encoding-policy = 'ignore';
+
Same as --encoding-policy command-line option.
+
re2c:flags:g or re2c:flags:computed-gotos
+
Same as -g --computed-gotos command-line option.
+
re2c:flags:i or re2c:flags:no-debug-info
+
Same as -i --no-debug-info command-line option.
+
re2c:flags:input = 'default';
+
Same as --input command-line option.
+
re2c:flags:lookahead = 1;
+
Same as inverted --no-lookahead command-line option.
+
re2c:flags:optimize-tags = 1;
+
Same as inverted --no-optimize-tags command-line option.
+
re2c:flags:P or re2c:flags:posix-captures
+
Same as -P --posix-captures command-line option.
+
re2c:flags:s or re2c:flags:nested-ifs
+
Same as -s --nested-ifs command-line option.
+
re2c:flags:T or re2c:flags:tags
+
Same as -T --tags command-line option.
+
re2c:flags:u or re2c:flags:unicode
+
Same as -u --unicode command-line option.
+
re2c:flags:w or re2c:flags:wide-chars
+
Same as -w --wide-chars command-line option.
+
re2c:flags:x or re2c:flags:utf-16
+
Same as -x --utf-16 command-line option.
+
re2c:indent:string = '\t';
+
Specifies the string to use for indentation. Requires a string that contains +only whitespace (unless you need something else for external tools). The easiest +way to specify spaces is to enclose them in single or double quotes. +If you do not want any indentation at all, you can set this to ‘’.
+
re2c:indent:top = 0;
+
Specifies the minimum amount of indentation to +use. Requires a numeric value greater than or equal to zero.
+
re2c:labelprefix = 'yy';
+
Allows one to change the prefix of numbered +labels. The default is yy. Can be set any string that is valid in +a label name.
+
re2c:label:yyFillLabel = 'yyFillLabel';
+
Overrides the name of the yyFillLabel label.
+
re2c:label:yyNext = 'yyNext';
+
Overrides the name of the yyNext label.
+
re2c:startlabel = 0;
+
If set to a non zero integer, then the start +label of the next scanner block will be generated even if it isn’t used by +the scanner itself. Otherwise, the normal yy0-like start label is only +generated if needed. If set to a text value, then a label with that +text will be generated regardless of whether the normal start label is +used or not. This setting is reset to 0 after a start label has been generated.
+
re2c:state:abort = 0;
+
When not zero and the -f --storable-state switch is active, then +the YYGETSTATE block will contain a default case that aborts and a -1 +case will be used for initialization.
+
re2c:state:nextlabel = 0;
+
Used when -f --storable-state is active to control +whether the YYGETSTATE block is followed by a yyNext: label line. +Instead of using yyNext, you can usually also use configuration +startlabel to force a specific start label or default to yy0 as +a start label. Instead of using a dedicated label, it is often better to +separate the YYGETSTATE code from the actual scanner code by placing a +/*!getstate:re2c*/ comment.
+
re2c:tags:expression = '@@';
+
Allows one to customize the way re2c addresses tag variables: +by default it emits expressions of the form yyt<N>, +but this might be inconvenient if tag variables are defined as fields in a struct, +or for any other reason require special accessors. +For example, setting re2c:tags:expression = p->@@ will result in p->yyt<N>.
+
re2c:tags:prefix = 'yyt';
+
Allows one to override prefix of tag variables.
+
re2c:variable:yyaccept = yyaccept;
+
Overrides the name of the yyaccept variable.
+
re2c:variable:yybm = 'yybm';
+
Overrides the name of the yybm variable.
+
re2c:variable:yych = 'yych';
+
Overrides the name of the yych variable.
+
re2c:variable:yyctable = 'yyctable';
+
When both -c --conditions and -g --computed-gotos are active, +re2c will use this variable to generate a static jump table +for YYGETCONDITION.
+
re2c:variable:yystable = 'yystable';
+
Deprecated.
+
re2c:variable:yytarget = 'yytarget';
+
Overrides the name of the yytarget variable.
+
re2c:yybm:hex = 0;
+
If set to zero, a decimal table will be used. Otherwise, a hexadecimal table will be generated.
+
re2c:yych:conversion = 0;
+
When this setting is non zero, re2c automatically generates +conversion code whenever yych gets read. In this case, the type must be +defined using re2c:define:YYCTYPE.
+
re2c:yych:emit = 1;
+
Set this to zero to suppress the generation of yych.
+
re2c:yyfill:check = 1;
+
This can be set to 0 to suppress the generations of +YYCURSOR and YYLIMIT based precondition checks. This option is useful when +YYLIMIT + YYMAXFILL is always accessible.
+
re2c:yyfill:enable = 1;
+
Set this to zero to suppress the generation of YYFILL (n). When using this, be sure to verify that the generated +scanner does not read beyond the available input, as allowing such behavior might +introduce severe security issues to your programs.
+
re2c:yyfill:parameter = 1;
+
Controls the argument in the parentheses that follow YYFILL. If zero, the argument is omitted. +If non-zero, the argument is generated unless re2c:define:YYFILL:naked is set to non-zero.
+
+
+
+

EOF handling¶

+

Re2c provides a number of ways to handle end-of-input situation. Which way to +use depends on the complexity of regular expressions, performance +considerations, the need for input buffering and various other factors. EOF +handling is probably the most complex part of re2c user interface — it +definitely requires a bit of understanding of how the generated lexer works. +But in return is allows the user to customize lexer for a particular environment +and avoid the unnecessary overhead of generic methods when a simpler method is +sufficient. Roughly speaking, there are four main methods:

+
    +
  • using sentinel symbol (simple and efficient, but limited)
  • +
  • bounds checking with padding (generic, but complex)
  • +
  • EOF rule: a combination of sentinel symbol and bounds checking (generic and +simple, can be more or less efficient than bounds checking with padding +depending on the grammar)
  • +
  • using generic API (user-defined, so may be incorrect ;])
  • +
+
+

Using sentinel symbol¶

+

This is the simplest and the most efficient method. It is applicable in cases +when the input is small enough to fit into a continuous memory buffer and there +is a natural “sentinel” symbol — a code unit that is not allowed by any of the +regular expressions in grammar (except possibly as a terminating character). +Sentinel symbol never appears in well-formed input, therefore it can be appended +at the end of input and used as a stop signal by the lexer. A good example of +such input is a null-terminated C-string, provided that the grammar does not +allow NULL in the middle of lexemes. Sentinel method is very efficient, +because the lexer does not need to perform any additional checks for the end of +input — it comes naturally as a part of processing the next character. +It is very important that the sentinel symbol is not allowed in the middle of +the rule — otherwise on some inputs the lexer may read past the end of buffer +and crash or cause memory corruption. Re2c verifies this automatically. +Use re2c:sentinel configuration to specify which sentinel symbol is used.

+

Below is an example of using sentinel method. Configuration +re2c:yyfill:enable = 0; suppresses generation of end-of-input checks and +YYFILL calls.

+
#include <assert.h>
+
+static int lex(const char *YYCURSOR)
+{
+    int count = 0;
+loop:
+    /*!re2c
+    re2c:define:YYCTYPE = char;
+    re2c:yyfill:enable = 0;
+
+    *      { return -1; }
+    [\x00] { return count; }
+    [a-z]+ { ++count; goto loop; }
+    [ ]+   { goto loop; }
+
+    */
+}
+
+int main()
+{
+    assert(lex("") == 0);
+    assert(lex("one two three") == 3);
+    assert(lex("one two 123?") == -1);
+    return 0;
+}
+
+
+
+
+

Bounds checking with padding¶

+

Bounds checking is a generic method: it can be used with any input grammar. +The basic idea is simple: we need to check for the end of input before reading +the next input character. However, if implemented in a straightforward way, this +would be quite inefficient: checking on each input character would cause a major +slowdown. Re2c avoids slowdown by generating checks only in certain key states +of the lexer, and letting it run without checks in-between the key states. +More precisely, re2c computes strongly connected components (SCCs) of +the underlying DFA (which roughly correspond to loops), and generates only a few +checks per each SCC (usually just one, but in general enough to make the SCC +acyclic). The check is of the form (YYLIMIT - YYCURSOR) < n, where n +is the maximal length of a simple path in the corresponding SCC. If this +condiiton is true, the lexer calls YYFILL(n), which must either supply at +least n input characters, or do not return. When the lexer continues after +the check, it is certain that the next n characters can be read safely +without checks.

+

This approach reduces the number of checks significantly (and makes the lexer +much faster as a result), but it has a downside. Since the lexer checks for +multiple characters at once, it may end up in a situation when there are a few +remaining input characters (less than n) corresponding to a short path in +the SCC, but the lexer cannot proceed because of the check, and YYFILL +cannot supply more character because it is the end of input. To solve this +problem, re2c requires that additional padding consisting of fake characters is +appended at the end of input. The length of padding should be YYMAXFILL, +which equals to the maximum n parameter to YYFILL and must be generated +by re2c using /*!max:re2c*/ directive. The fake characters should not form a +valid lexeme suffix, otherwise the lexer may be fooled into matching a fake +lexeme. Usually it’s a good idea to use NULL characters for padding.

+

Below is an example of using bounds checking with padding. Note that the grammar +rule for single-quoted strings allows arbitrary symbols in the middle of lexeme, +so there is no natural sentinel in the grammar. Strings like "aha\0ha" are +perfectly valid, but ill-formed strings like "aha\0 are also possible and +shouldn’t crash the lexer. In this example we do not use buffer refilling, +therefore YYFILL definition simply returns an error. Note that YYFILL +will only be called after the lexer reaches padding, because only then will the +check condition be satisfied.

+
#include <assert.h>
+#include <stdlib.h>
+#include <string.h>
+
+/*!max:re2c*/
+
+static int lex(const char *str)
+{
+    const size_t len = strlen(str);
+    char *buf = malloc(len + YYMAXFILL);
+    memcpy(buf, str, len);
+    memset(buf + len, 0, YYMAXFILL);
+
+    const char *YYCURSOR = buf;
+    const char *YYLIMIT = buf + len + YYMAXFILL;
+    int count = 0;
+
+loop:
+    /*!re2c
+    re2c:define:YYCTYPE = char;
+    re2c:define:YYFILL:naked = 1;
+    re2c:define:YYFILL = "goto error;";
+
+    *                         { goto error; }
+    [\x00]                    { if (YYCURSOR == YYLIMIT) goto end; else goto error; }
+    [a-z]+                    { ++count; goto loop; }
+    ['] ([^'] | [\\]['])* ['] { ++count; goto loop; }
+    [ ]+                      { goto loop; }
+
+    */
+error:
+    count = -1;
+end:
+    free(buf);
+    return count;
+}
+
+int main()
+{
+    assert(lex("") == 0);
+    assert(lex("one two three") == 3);
+    assert(lex("one two 123?") == -1);
+    assert(lex("one 'two' 'th\\'ree' '123?' ''") == 5);
+    assert(lex("one 'two' 'three") == -1);
+    return 0;
+}
+
+
+
+
+

EOF rule¶

+

EOF rule $ was introduced in version 1.2. It is a hybrid approach that tries +to take the best of both worlds: simplicity and efficiency of the sentinel +method combined with the generality of bounds-checking method. The idea is to +appoint an arbitrary symbol to be the sentinel, and only perform further bounds +checking if the sentinel symbol matches (more precisely, if the symbol class that +contains it matches). The check is of the form YYLIMIT <= YYCURSOR. +If this condition is not satisfied, then the sentinel is just an ordinary input +character and the lexer continues. Otherwise this is a real sentinel, and the +lexer calls YYFILL(). If YYFILL returns zero, the lexer assumes that it +has more input and tries to re-match. Otherwise YYFILL returns non-zero and +the lexer knows that it has reached the end of input. At this point there are +three possibilities. First, it might have already matched a shorter lexeme — +in this case it just rolls back to the last accepting state. Second, it might +have consumed some characters, but failed to match — in this case it falls +back to default rule *. Finally, it might be in the initial state — in +this (and only this!) case it matches EOF rule $.

+

Below is an example of using EOF rule. Configuration re2c:yyfill:enable = 0; +suppresses generation of YYFILL calls (but not the bounds checks).

+
#include <assert.h>
+#include <string.h>
+
+static int lex(const char *str)
+{
+    const char *YYCURSOR = str;
+    const char *YYLIMIT = str + strlen(str);
+    int count = 0;
+
+loop:
+    /*!re2c
+    re2c:define:YYCTYPE = char;
+    re2c:yyfill:enable = 0;
+    re2c:eof = 0;
+
+    *                         { return -1; }
+    $                         { return count; }
+    [a-z]+                    { ++count; goto loop; }
+    ['] ([^'] | [\\]['])* ['] { ++count; goto loop; }
+    [ ]+                      { goto loop; }
+
+    */
+}
+
+int main()
+{
+    assert(lex("") == 0);
+    assert(lex("one two three") == 3);
+    assert(lex("one two 123?") == -1);
+    assert(lex("one 'two' 'th\\'ree' '123?' ''") == 5);
+    assert(lex("one 'two' 'three") == -1);
+    return 0;
+}
+
+
+
+
+

Using generic API¶

+

Generic API can be used with any of the above methods. It also allows one to use a +user-defined method by placing EOF checks in one of the basic primitives. +Usually this is either YYSKIP (the check is performed when advancing to the +next input character), or YYPEEK (the check is performed when reading the +next input character). The resulting methods are inefficient, as they check on +each input character. However, they can be useful in cases when the input cannot +be buffered or padded and does not contain a sentinel character at the end. One +should be cautious when using such ad-hoc methods, as it is easy to overlook +some corner cases and come up with a method that only partially works. Also it +should be noted that not everything can be expressed via generic API: for +example, it is impossible to reimplement the way EOF rule works (in particular, +it is impossible to re-match the character after successful YYFILL).

+

Below is an example of using YYSKIP to perform bounds checking without +padding. YYFILL generation is suppressed using re2c:yyfill:enable = 0; +configuration. Note that if the grammar was more complex, this method might not +work in case when two rules overlap and EOF check fails after a shorter lexeme +has already been matched (as it happens in our example, there are no overlapping +rules).

+
#include <assert.h>
+#include <string.h>
+
+#define YYPEEK() *cur
+#define YYSKIP() if (++cur > lim) return -1
+static int lex(const char *str)
+{
+    const char *cur = str;
+    const char *lim = str + strlen(str) + 1;
+    int count = 0;
+
+loop:
+    /*!re2c
+    re2c:define:YYCTYPE = char;
+    re2c:yyfill:enable = 0;
+    re2c:flags:input = custom;
+
+    *                         { return -1; }
+    [\x00]                    { return cur == lim ? count : -1; }
+    [a-z]+                    { ++count; goto loop; }
+    ['] ([^'] | [\\]['])* ['] { ++count; goto loop; }
+    [ ]+                      { goto loop; }
+
+    */
+}
+
+int main()
+{
+    assert(lex("") == 0);
+    assert(lex("one two three") == 3);
+    assert(lex("one two 123?") == -1);
+    assert(lex("one 'two' 'th\\'ree' '123?' ''") == 5);
+    assert(lex("one 'two' 'three") == -1);
+    return 0;
+}
+
+
+
+
+
+

Buffer refilling¶

+

The need for buffering arises when the input cannot be mapped in memory all at +once: either it is too large, or it comes in a streaming fashion (like reading +from a socket). The usual technique in such cases is to allocate a fixed-sized +memory buffer and process input in chunks that fit into the buffer. When the +current chunk is processed, it is moved out and new data is moved in. In +practice it is somewhat more complex, because lexer state consists not of a +single input position, but a set of interrelated posiitons:

+
    +
  • cursor: the next input character to be read (YYCURSOR in default API or +YYSKIP/YYPEEK in generic API)
  • +
  • limit: the position after the last available input character (YYLIMIT in +default API, implicitly handled by YYLESSTHAN in generic API)
  • +
  • marker: the position of the most recent match, if any (YYMARKER in default +API or YYBACKUP/YYRESTORE in generic API)
  • +
  • token: the start of the current lexeme (implicit in re2c API, as it is not +needed for the normal lexer operation and can be defined and updated by the +user)
  • +
  • context marker: the position of the trailing context (YYCTXMARKER in +default API or YYBACKUPCTX/YYRESTORECTX in generic API)
  • +
  • tag variables: submatch positions (defined with /*!stags:re2c*/ and +/*!mtags:re2c*/ directives and +YYSTAGP/YYSTAGN/YYMTAGP/YYMTAGN in generic API)
  • +
+

Not all these are used in every case, but if used, they must be updated by +YYFILL. All active positions are contained in the segment between token and +cursor, therefore everything between buffer start and token can be discarded, +the segment from token and up to limit should be moved to the beginning of +buffer, and the free space at the end of buffer should be filled with new data. +In order to avoid frequent YYFILL calls it is best to fill in as many input +characters as possible (even though fewer characters might suffice to resume the +lexer). The details of YYFILL implementation are slightly different +depending on which EOF handling method is used: the case of EOF rule is somewhat +simpler than the case of bounds-checking with padding. Also note that if +-f --storable-state option is used, YYFILL has slightly different +semantics (desrbed in the section about storable state).

+
+

YYFILL with EOF rule¶

+

If EOF rule is used, YYFILL is a function-like primitive that accepts +no arguments and returns a value which is checked against zero. YYFILL +invocation is triggered by condition YYLIMIT <= YYCURSOR in default API and +YYLESSTHAN() in generic API. A non-zero return value means that YYFILL +has failed. A successful YYFILL call must supply at least one character and +adjust input positions accordingly. Limit must always be set to one after the +last input position in buffer, and the character at the limit position must be +the sentinel symbol specified by re2c:eof configuration. The pictures below +show the relative locations of input positions in buffer before and after +YYFILL call (sentinel symbol is marked with #, and the second picture +shows the case when there is not enough input to fill the whole buffer).

+
               <-- shift -->
+             >-A------------B---------C-------------D#-----------E->
+             buffer       token    marker         limit,
+                                                  cursor
+>-A------------B---------C-------------D------------E#->
+             buffer,  marker        cursor        limit
+             token
+
+               <-- shift -->
+             >-A------------B---------C-------------D#--E (EOF)
+             buffer       token    marker         limit,
+                                                  cursor
+>-A------------B---------C-------------D---E#........
+             buffer,  marker       cursor limit
+             token
+
+
+

Here is an example of a program that reads input file input.txt in chunks of +4096 bytes and uses EOF rule.

+
#include <stdio.h>
+#include <string.h>
+
+#define SIZE 4096
+
+typedef struct {
+    FILE *file;
+    char buf[SIZE + 1], *lim, *cur, *tok;
+    int eof;
+} Input;
+
+static int fill(Input *in)
+{
+    if (in->eof) {
+        return 1;
+    }
+    const size_t free = in->tok - in->buf;
+    if (free < 1) {
+        return 2;
+    }
+    memmove(in->buf, in->tok, in->lim - in->tok);
+    in->lim -= free;
+    in->cur -= free;
+    in->tok -= free;
+    in->lim += fread(in->lim, 1, free, in->file);
+    in->lim[0] = 0;
+    in->eof |= in->lim < in->buf + SIZE;
+    return 0;
+}
+
+static void init(Input *in, FILE *file)
+{
+    in->file = file;
+    in->cur = in->tok = in->lim = in->buf + SIZE;
+    in->eof = 0;
+    fill(in);
+}
+
+#define YYFILL() fill(in)
+static int lex(Input *in)
+{
+    int count = 0;
+loop:
+    in->tok = in->cur;
+    /*!re2c
+    re2c:define:YYCTYPE = char;
+    re2c:define:YYCURSOR = in->cur;
+    re2c:define:YYLIMIT = in->lim;
+    re2c:eof = 0;
+
+    *                         { return -1; }
+    $                         { return count; }
+    [a-z]+                    { ++count; goto loop; }
+    ['] ([^'] | [\\]['])* ['] { ++count; goto loop; }
+    [ ]+                      { goto loop; }
+
+    */
+}
+
+int main()
+{
+    FILE *f = fopen("input.txt", "rb");
+    if (!f) return 1;
+
+    Input in;
+    init(&in, f);
+    printf("count: %d\n", lex(&in));
+
+    fclose(f);
+    return 0;
+}
+
+
+
+
+

YYFILL with padding¶

+

In the default case (when EOF rule is not used) YYFILL is a function-like +primitive that accepts a single argument and does not return any value. +YYFILL invocation is triggered by condition (YYLIMIT - YYCURSOR) < n in +default API and YYLESSTHAN(n) in generic API. The argument passed to +YYFILL is the minimal number of characters that must be supplied. If it +fails to do so, YYFILL must not return to the lexer (for that reason it is +best implemented as a macro that returns from the calling function on failure). +In case of a successful YYFILL invocation the limit position must be set +either to one after the last input position in buffer, or to the end of +YYMAXFILL padding (in case YYFILL has successfully read at least n +characters, but not enough to fill the entire buffer). The pictures below show +the relative locations of input positions in buffer before and after YYFILL +invocation (YYMAXFILL padding on the second picture is marked with # +symbols).

+
               <-- shift -->                 <-- need -->
+             >-A------------B---------C-----D-------E---F--------G->
+             buffer       token    marker cursor  limit
+
+>-A------------B---------C-----D-------E---F--------G->
+             buffer,  marker cursor               limit
+             token
+
+               <-- shift -->                 <-- need -->
+             >-A------------B---------C-----D-------E-F        (EOF)
+             buffer       token    marker cursor  limit
+
+>-A------------B---------C-----D-------E-F###############
+             buffer,  marker cursor                   limit
+             token                        <- YYMAXFILL ->
+
+
+

Here is an example of a program that reads input file input.txt in chunks of +4096 bytes and uses bounds-checking with padding.

+
#include <stdio.h>
+#include <string.h>
+
+/*!max:re2c*/
+#define SIZE 4096
+
+typedef struct {
+    FILE *file;
+    char buf[SIZE + YYMAXFILL], *lim, *cur, *tok;
+    int eof;
+} Input;
+
+static int fill(Input *in, size_t need)
+{
+    if (in->eof) {
+        return 1;
+    }
+    const size_t free = in->tok - in->buf;
+    if (free < need) {
+        return 2;
+    }
+    memmove(in->buf, in->tok, in->lim - in->tok);
+    in->lim -= free;
+    in->cur -= free;
+    in->tok -= free;
+    in->lim += fread(in->lim, 1, free, in->file);
+    if (in->lim < in->buf + SIZE) {
+        in->eof = 1;
+        memset(in->lim, 0, YYMAXFILL);
+        in->lim += YYMAXFILL;
+    }
+    return 0;
+}
+
+static void init(Input *in, FILE *file)
+{
+    in->file = file;
+    in->cur = in->tok = in->lim = in->buf + SIZE;
+    in->eof = 0;
+    fill(in, 1);
+}
+
+#define YYFILL(n) if (fill(in, n) != 0) return -1
+static int lex(Input *in)
+{
+    int count = 0;
+loop:
+    in->tok = in->cur;
+    /*!re2c
+    re2c:define:YYCTYPE = char;
+    re2c:define:YYCURSOR = in->cur;
+    re2c:define:YYLIMIT = in->lim;
+
+    *                         { return -1; }
+    [\x00]                    { return (YYMAXFILL == in->lim - in->tok) ? count : -1; }
+    [a-z]+                    { ++count; goto loop; }
+    ['] ([^'] | [\\]['])* ['] { ++count; goto loop; }
+    [ ]+                      { goto loop; }
+
+    */
+}
+
+int main()
+{
+    FILE *f = fopen("input.txt", "rb");
+    if (!f) return 1;
+
+    Input in;
+    init(&in, f);
+    printf("count: %d\n", lex(&in));
+
+    fclose(f);
+    return 0;
+}
+
+
+
+
+
+

Include files¶

+

Re2c allows one to include other files using directive /*!include:re2c FILE */, +where FILE is the name of file to be included. Re2c looks for included +files in the directory of the including file and in include locations, which +can be specified with -I option. +Re2c include directive works in the same way as C/C++ #include: the contents +of FILE are copy-pasted verbatim in place of the directive. Include files +may have further includes of their own. +Re2c provides some predefined include files that can be found in the +include/ subdirectory of the project. These files contain definitions that +can be useful to other projects (such as Unicode categories) and form something +like a standard library for re2c.

+

Here is an example of using include files:

+
// definitions.re
+/*!re2c
+    alpha = [a-zA-Z];
+    digit = [0-9];
+*/
+
+// main.re
+/*!include:re2c "definitions.re" */
+int lex(const char *YYCURSOR)
+{
+    const char *YYMARKER;
+    /*!re2c
+        alpha { return 1; }
+        digit { return 2; }
+        *     { return 0; }
+    */
+}
+
+
+
+
+

Header files¶

+

Re2c allows one to generate header file from the input .re file using option +-t --type-header (or the corresponding configurations) and directives +/*!header:re2c:on*/ and /*!header:re2c:off*/. The first directive +marks the beginning of header file, and the second directive marks the end of +it. Everything between these directives is processed by re2c, and the generated +code is written to the file specified by the -t --type-header option (or +stdout if this option was not used). Autogenerated header file may be needed +in cases when re2c is used to generate definitions of constants, variables and +structs that must be visible from other translation units.

+

Here is an example of generating a header that contains definitions of +YYMAXFILL and lexer state with tag variables. Note that YYMAXFILL and +tag variables depend on the grammar in the .re file and cannot be +hard-coded.

+
/*!header:re2c:on*/
+/*!max:re2c*/
+struct State {
+    char buffer[4096 + YYMAXFILL], *cursor, *marker, *limit;
+    /*!stags:re2c format = "char *@@; "; */
+};
+/*!header:re2c:off*/
+
+#include "lex.h"
+#define YYCTYPE   char
+#define YYCURSOR  state->cursor
+#define YYMARKER  state->marker
+#define YYLIMIT   state->limit
+#define YYFILL(n) return 2
+int lex(State *state)
+{
+    char *x, *y;
+    /*!re2c
+        re2c:tags:expression = state->@@;
+        re2c:flags:t         = lex.h;
+
+        "a"* @x "b"* @y "c"* { return 0; }
+        *                    { return 1; }
+    */
+}
+
+
+

The generated header looks like this:

+
#define YYMAXFILL 1
+
+struct State {
+    char buffer[4096 + YYMAXFILL], *cursor, *marker, *limit;
+    char *yyt1; char *yyt2;
+};
+
+
+
+
+

Submatch extraction¶

+

Submatch extraction in re2c is based on the lookahead-TDFA algorithm described +in the +Tagged Deterministic Finite Automata with Lookahead +paper. The algorithm uses the notion of “tags” — position markers that denote +positions in the regular expression for which the lexer must determine the +corresponding position in the input string. +Re2c provides two options for submatch extraction: the first one allows to use +raw tags, and the second one allows to use the more conventional parenthesized +capturing groups.

+

The first option is -T --tags. With this option one can use standalone tags +of the form @stag and #mtag, where stag and mtag are arbitrary +used-defined names. Tags can be used anywhere inside of a regular expression. +Tags of the form @stag are +called s-tags: they denote a single submatch value (the last input position +where this tag matched). Tags of the form #mtag are called m-tags: they +denote multiple submatch values (the whole history of repetitions of this tag). +All tags should be defined by the user as variables with the corresponding +names. With standalone tags re2c uses leftmost greedy disambiguation: submatch +positions correspond to the leftmost matching path through the regular +expression.

+

The second option is -P --posix-captures: it enables POSIX-compliant +capturing groups. In this mode parentheses in regular expressions denote the +beginning and the end of capturing groups; the whole regular expression is group +number zero. The number of groups for the matching rule is stored in a variable +yynmatch, and submatch results are stored in yypmatch array. Both +yynmatch and yypmatch should be defined by the user, and yypmatch +size must be at least [yynmatch * 2]. Re2c provides a directive +/*!maxnmatch:re2c*/ that defines YYMAXNMATCH: a constant equal to the +maximal value of yynmatch among all rules. Note that re2c implements +POSIX-compliant disambiguation: each subexpression matches as long as possible, +and subexpressions that start earlier in regular expression have priority over +those starting later. Capturing groups are translated into s-tags under the +hood.

+

The overhead on submatch extraction in the generated lexer grows with the +number of tags — if this number is moderate, the overhead is barely +noticeable. In the lexer tags are implemented using a number of tag variables +generated by re2c. There is no one-to-one correspondence between tag variables +and tags: a single variable may be reused for different tags, and one tag may +require multiple variables to hold all its ambiguous values. Eventually +ambiguity is resolved, and only one final variable per tag survives. When a rule +matches, all its tags are set to the values of the corresponding tag variables. +The exact number of tag variables is unknown to the user; this number is +determined by re2c. However, tag variables should be defined by the user as a +part of the lexer state and updated by YYFILL, therefore re2c provides +directives /*!stags:re2c*/ and /*!mtags:re2c*/ that can be used to +declare, initialize and manipulate tag variables. These directives have two +optional configurations: format = "@@"; (specifies the template where @@ +is substituted with the name of each tag variable), and separator = ""; +(specifies the piece of code used to join the generated pieces for different +tag variables).

+

S-tags support the following operations:

+
    +
  • save input position to an s-tag: t = YYCURSOR with default API or a +user-defined operation YYSTAGP(t) with generic API
  • +
  • save default value to an s-tag: t = NULL with default API or a +user-defined operation YYSTAGN(t) with generic API
  • +
  • copy one s-tag to another: t1 = t2
  • +
+

M-tags support the following operations:

+
    +
  • append input position to an m-tag: a user-defined operation YYMTAGP(t) +with both default and generic API
  • +
  • append default value to an m-tag: a user-defined operation YYMTAGN(t) +with both default and generic API
  • +
  • copy one m-tag to another: t1 = t2
  • +
+

S-tags can be implemented as scalar values (pointers or offsets). M-tags need a +more complex representation, as they need to store a sequence of tag values. The +most naive and inefficient representation of an m-tag is a list (array, vector) +of tag values; a more efficient representation is to store all m-tags in a +prefix-tree represented as array of nodes (v, p), where v is tag value +and p is a pointer to parent node.

+

Here is an example of using s-tags to parse an IPv4 address.

+
#include <assert.h>
+#include <stdint.h>
+
+static uint32_t num(const char *s, const char *e)
+{
+    uint32_t n = 0;
+    for (; s < e; ++s) n = n * 10 + (*s - '0');
+    return n;
+}
+
+static uint32_t lex(const char *YYCURSOR)
+{
+    const char *YYMARKER, *o1, *o2, *o3, *o4;
+    /*!stags:re2c format = 'const char *@@;'; */
+
+    /*!re2c
+    re2c:define:YYCTYPE = char;
+    re2c:yyfill:enable = 0;
+    re2c:flags:tags = 1;
+
+    oct = [0-9]{1,3};
+    dot = [.];
+
+    @o1 oct dot @o2 oct dot @o3 oct dot @o4 oct {
+        return num(o4, YYCURSOR)
+            + (num(o3, o4 - 1) << 8)
+            + (num(o2, o3 - 1) << 16)
+            + (num(o1, o2 - 1) << 24);
+    }
+    * { return 0; }
+
+    */
+}
+
+int main()
+{
+    assert(lex("1.2.3.4") == 0x01020304);
+    assert(lex("127.0.0.1") == 0x7f000001);
+    assert(lex("255.255.255.255") == 0xffffffff);
+    return 0;
+}
+
+
+

Here is an example of using POSIX capturing groups to parse an IPv4 address.

+
#include <assert.h>
+#include <stdint.h>
+
+static uint32_t num(const char *s, const char *e)
+{
+    uint32_t n = 0;
+    for (; s < e; ++s) n = n * 10 + (*s - '0');
+    return n;
+}
+
+/*!maxnmatch:re2c*/
+
+static uint32_t lex(const char *YYCURSOR)
+{
+    const char *YYMARKER;
+    const char *yypmatch[YYMAXNMATCH];
+    uint32_t yynmatch;
+    /*!stags:re2c format = 'const char *@@;'; */
+
+    /*!re2c
+    re2c:define:YYCTYPE = char;
+    re2c:yyfill:enable = 0;
+    re2c:flags:posix-captures = 1;
+
+    oct = [0-9]{1,3};
+    dot = [.];
+
+    (oct) dot (oct) dot (oct) dot (oct) {
+        return num(yypmatch[8], yypmatch[9])
+            + (num(yypmatch[6], yypmatch[7]) << 8)
+            + (num(yypmatch[4], yypmatch[5]) << 16)
+            + (num(yypmatch[2], yypmatch[3]) << 24);
+    }
+    * { return 0; }
+
+    */
+}
+
+int main()
+{
+    assert(lex("1.2.3.4") == 0x01020304);
+    assert(lex("127.0.0.1") == 0x7f000001);
+    assert(lex("255.255.255.255") == 0xffffffff);
+    return 0;
+}
+
+
+

Here is an example of using m-tags to parse a semicolon-separated sequence of +words (C++). Tag variables are stored in a tree that is packed in a vector.

+
#include <assert.h>
+#include <vector>
+#include <string>
+
+static const int ROOT = -1;
+
+struct Mtag {
+    int pred;
+    const char *tag;
+};
+
+typedef std::vector<Mtag> MtagTree;
+typedef std::vector<std::string> Words;
+
+static void mtag(int *pt, const char *t, MtagTree *tree)
+{
+    Mtag m = {*pt, t};
+    *pt = (int)tree->size();
+    tree->push_back(m);
+}
+
+static void unfold(const MtagTree &tree, int x, int y, Words &words)
+{
+    if (x == ROOT) return;
+    unfold(tree, tree[x].pred, tree[y].pred, words);
+    const char *px = tree[x].tag, *py = tree[y].tag;
+    words.push_back(std::string(px, py - px));
+}
+
+#define YYMTAGP(t) mtag(&t, YYCURSOR, &tree)
+#define YYMTAGN(t) mtag(&t, NULL,     &tree)
+static bool lex(const char *YYCURSOR, Words &words)
+{
+    const char *YYMARKER;
+    /*!mtags:re2c format = "int @@ = ROOT;"; */
+    MtagTree tree;
+    int x, y;
+
+    /*!re2c
+    re2c:define:YYCTYPE = char;
+    re2c:yyfill:enable = 0;
+    re2c:flags:tags = 1;
+
+    (#x [a-zA-Z0-9_]+ #y [;])+ {
+        words.clear();
+        unfold(tree, x, y, words);
+        return true;
+    }
+    * { return false; }
+
+    */
+}
+
+int main()
+{
+    Words w;
+    assert(lex("one;tw0;three;", w) && w == Words({"one", "tw0", "three"}));
+    return 0;
+}
+
+
+
+
+

Storable state¶

+

With -f --storable-state option re2c generates a lexer that can store +its current state, return to the caller, and later resume operations exactly +where it left off. The default mode of operation in re2c is a “pull” model, +in which the lexer “pulls” more input whenever it needs it. This may be +unacceptable in cases when the input becomes available piece by piece (for +example, if the lexer is invoked by the parser, or if the lexer program +communicates via a socket protocol with some other program that must wait for a +reply from the lexer before it transmits the next message). Storable state +feature is intended exactly for such cases: it allows one to generate lexers that +work in a “push” model. When the lexer needs more input, it stores its state and +returns to the caller. Later, when more input becomes available, the caller +resumes the lexer exactly where it stopped. There are a few changes necessary +compared to the “pull” model:

+
    +
  • Define YYSETSTATE() and YYGETSTATE(state) promitives.
  • +
  • Define yych, yyaccept and state variables as a part of persistent +lexer state. The state variable should be initialized to -1.
  • +
  • YYFILL should return to the outer program instead of trying to supply more +input. Return code should indicate that lexer needs more input.
  • +
  • The outer program should recognize situations when lexer needs more input and +respond appropriately.
  • +
  • Use /*!getstate:re2c*/ directive if it is necessary to execute any code +before entering the lexer.
  • +
  • Use configurations state:abort and state:nextlabel to further tweak +the generated code.
  • +
+

Here is an example of a “push”-model lexer that reads input from stdin and +expects a sequence of words separated by spaces and newlines. The lexer loops +forever, waiting for more input. It can be terminated by sending a special EOF +token — a word “stop”, in which case the lexer terminates successfully and +prints the number of words it has seen. Abnormal termination happens in case of +a syntax error, premature end of input (without the “stop” word) or in case the +buffer is too small to hold a lexeme (for example, if one of the words exceeds +buffer size). Premature end of input happens in case the lexer fails to read any +input while being in the initial state — this is the only case when EOF rule +matches. Note that the lexer may call YYFILL twice before terminating (and +thus require hitting Ctrl+D a few times). First time YYFILL is called +when the lexer expects continuation of the current greedy lexeme (either a word +or a whitespace sequence). If YYFILL fails, the lexer knows that it has +reached the end of the current lexeme and executes the corresponding semantic +action. The action jumps to the beginning of the loop, the lexer enters the +initial state and calls YYFILL once more. If it fails, the lexer matches EOF +rule. (Alternatively EOF rule can be used for termination instead of a special +EOF lexeme.)

+
#include <assert.h>
+#include <stdio.h>
+#include <string.h>
+
+#define SIZE 4096
+
+typedef struct {
+    char buf[SIZE + 1], *lim, *cur, *tok, yych;
+    unsigned yyaccept;
+    int state;
+} Input;
+
+static void init(Input *in)
+{
+    in->cur = in->tok = in->lim = in->buf + SIZE;
+    in->lim[0] = 0; // append sentinel symbol
+    in->yych = 0;
+    in->yyaccept = 0;
+    in->state = -1;
+}
+
+static int fill(Input *in)
+{
+    const size_t shift = in->tok - in->buf;
+    const size_t free = SIZE - (in->lim - in->tok);
+
+    if (free < 1) return 1; // not enough space in buffer
+
+    memmove(in->buf, in->tok, SIZE - shift);
+    in->lim -= shift;
+    in->cur -= shift;
+    in->tok -= shift;
+
+    const size_t read = fread(in->lim, 1, free, stdin);
+    in->lim += read;
+    in->lim[0] = 0; // append sentinel symbol
+
+    return 0;
+}
+
+typedef enum {OK, SYNTAX_ERROR, UNEXPECTED_EOF, NEED_MORE_INPUT} Status;
+
+#define YYGETSTATE()  in->state
+#define YYSETSTATE(s) in->state = s
+#define YYFILL()      return NEED_MORE_INPUT
+static Status lex(Input *in, unsigned *words)
+{
+    /*!getstate:re2c*/
+loop:
+    in->tok = in->cur;
+    /*!re2c
+        re2c:define:YYCTYPE = char;
+        re2c:define:YYCURSOR = in->cur;
+        re2c:define:YYLIMIT = in->lim;
+        re2c:variable:yych = in->yych;
+        re2c:eof = 0;
+
+        *         { return SYNTAX_ERROR; }
+        $         { return UNEXPECTED_EOF; }
+        "stop"    { return OK; }
+        [\n ]+    { goto loop; }
+        [a-zA-Z]+ { *words = *words + 1; goto loop; }
+    */
+}
+
+int main()
+{
+    unsigned words = 0;
+    Input in;
+    init(&in);
+
+    for (;;) {
+        const Status st = lex(&in, &words);
+        if (st == OK) {
+            printf("word count: %u\n", words);
+            break;
+        }
+        else if (st == SYNTAX_ERROR) {
+            printf("error: unexpected symbol\n");
+            return 1;
+        }
+        else if (st == UNEXPECTED_EOF) {
+            printf("error: unexpected end of input\n");
+            return 2;
+        }
+        else if (fill(&in) != 0) {
+            printf("error: not enough space in buffer\n");
+            return 3;
+        }
+    }
+
+    return 0;
+}
+
+
+
+
+

Reusable blocks¶

+

Reuse mode is enabled with the -r --reusable option. In this mode re2c +allows one to reuse definitions, configurations and rules specified by a +/*!rules:re2c*/ block in subsequent /*!use:re2c*/ blocks. As of +re2c-1.2 it is possible to mix such blocks with normal /*!re2c*/ blocks; +prior to that re2c expects a single rules-block followed by use-blocks (normal +blocks are disallowed). Use-blocks can have additional definitions, +configurations and rules: they are merged to those specified by the rules-block. +A very common use case for -r --reusable option is a lexer that supports +multiple input encodings: lexer rules are defined once and reused multiple times +with encoding-specific configurations, such as re2c:flags:utf-8.

+

Below is an example of a multi-encoding lexer: it reads a phrase with Unicode +math symbols and accepts input either in UTF8 or in UT32. Note that the +--input-encoding utf8 option allows us to write UTF8-encoded symbols in the +regular expressions; without this option re2c would parse them as a plain ASCII +byte sequnce (and we would have to use hexadecimal escape sequences).

+
#include <assert.h>
+#include <stdint.h>
+
+/*!rules:re2c
+    re2c:yyfill:enable = 0;
+
+    "∀x ∃y: p(x, y)" { return 0; }
+    *                { return 1; }
+*/
+
+static int lex_utf8(const uint8_t *YYCURSOR)
+{
+    const uint8_t *YYMARKER;
+    /*!use:re2c
+    re2c:define:YYCTYPE = uint8_t;
+    re2c:flags:8 = 1;
+    */
+}
+
+static int lex_utf32(const uint32_t *YYCURSOR)
+{
+    const uint32_t *YYMARKER;
+    /*!use:re2c
+    re2c:define:YYCTYPE = uint32_t;
+    re2c:flags:8 = 0;
+    re2c:flags:u = 1;
+    */
+}
+
+int main()
+{
+    static const uint8_t s8[] = // UTF-8
+        { 0xe2, 0x88, 0x80, 0x78, 0x20, 0xe2, 0x88, 0x83, 0x79
+        , 0x3a, 0x20, 0x70, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x29 };
+
+    static const uint32_t s32[] = // UTF32
+        { 0x00002200, 0x00000078, 0x00000020, 0x00002203
+        , 0x00000079, 0x0000003a, 0x00000020, 0x00000070
+        , 0x00000028, 0x00000078, 0x0000002c, 0x00000020
+        , 0x00000079, 0x00000029 };
+
+    assert(lex_utf8(s8) == 0);
+    assert(lex_utf32(s32) == 0);
+    return 0;
+}
+
+
+
+
+
+

Encoding support¶

+

re2c supports the following encodings: ASCII (default), EBCDIC (-e), +UCS-2 (-w), UTF-16 (-x), UTF-32 (-u) and UTF-8 (-8). +See also inplace configuration re2c:flags.

+

The following concepts should be clarified when talking about encodings. +A code point is an abstract number that represents a single symbol. +A code unit is the smallest unit of memory, which is used in the +encoded text (it corresponds to one character in the input stream). One +or more code units may be needed to represent a single code point, +depending on the encoding. In a fixed-length encoding, each code point +is represented with an equal number of code units. In variable-length +encodings, different code points can be represented with different number +of code units.

+
    +
  • ASCII is a fixed-length encoding. Its code space includes 0x100 +code points, from 0 to 0xFF. A code point is represented with exactly one +1-byte code unit, which has the same value as the code point. The size of +YYCTYPE must be 1 byte.
  • +
  • EBCDIC is a fixed-length encoding. Its code space includes 0x100 +code points, from 0 to 0xFF. A code point is represented with exactly +one 1-byte code unit, which has the same value as the code point. The size +of YYCTYPE must be 1 byte.
  • +
  • UCS-2 is a fixed-length encoding. Its code space includes 0x10000 +code points, from 0 to 0xFFFF. One code point is represented with +exactly one 2-byte code unit, which has the same value as the code +point. The size of YYCTYPE must be 2 bytes.
  • +
  • UTF-16 is a variable-length encoding. Its code space includes all +Unicode code points, from 0 to 0xD7FF and from 0xE000 to 0x10FFFF. One +code point is represented with one or two 2-byte code units. The size of +YYCTYPE must be 2 bytes.
  • +
  • UTF-32 is a fixed-length encoding. Its code space includes all +Unicode code points, from 0 to 0xD7FF and from 0xE000 to 0x10FFFF. One +code point is represented with exactly one 4-byte code unit. The size of +YYCTYPE must be 4 bytes.
  • +
  • UTF-8 is a variable-length encoding. Its code space includes all +Unicode code points, from 0 to 0xD7FF and from 0xE000 to 0x10FFFF. One +code point is represented with a sequence of one, two, three, or four +1-byte code units. The size of YYCTYPE must be 1 byte.
  • +
+

In Unicode, values from range 0xD800 to 0xDFFF (surrogates) are not +valid Unicode code points. Any encoded sequence of code units that +would map to Unicode code points in the range 0xD800-0xDFFF, is +ill-formed. The user can control how re2c treats such ill-formed +sequences with the --encoding-policy <policy> switch.

+

For some encodings, there are code units that never occur in a valid +encoded stream (e.g., 0xFF byte in UTF-8). If the generated scanner must +check for invalid input, the only correct way to do so is to use the default +rule (*). Note that the full range rule ([^]) won’t catch invalid code units when a variable-length encoding is used +([^] means “any valid code point”, whereas the default rule (*) means “any possible code unit”).

+
+
+

Start conditions¶

+

Conditions are enabled with -c --conditions. +This option allows one to encode multiple interrelated lexers within the same re2c block.

+

Each lexer corresponds to a single condition. +It starts with a label of the form yyc_name, +where name is condition name +and yyc prefix can be adjusted with configuration re2c:condprefix. +Different lexers are separated with a comment /* *********************************** */ +which can be adjusted with configuration re2c:cond:divider.

+

Furthermore, each condition has a unique identifier of the form yycname, +where name is condition name +and yyc prefix can be adjusted with configuration re2c:condenumprefix. +Identifiers have the type YYCONDTYPE and should be generated with /*!types:re2c*/ directive or -t --type-header option. +Users shouldn’t define these identifiers manually, as the order of conditions is not specified.

+

Before all conditions re2c generates entry code that checks the current condition identifier +and transfers control flow to the start label of the active condition. +After matching some rule of this condition, +lexer may either transfer control flow back to the entry code (after executing the associated action and optionally setting another condition with =>), +or use :=> shortcut and transition directly to the start label of another condition (skipping the action and the entry code). +Configuration re2c:cond:goto allows one to change the default behavior.

+

Syntactically each rule must be preceded with a list of comma-separated condition names or a wildcard * +enclosed in angle brackets < and >. +Wildcard means “any condition” and is semantically equivalent to listing all condition names. +Here regexp is a regular expression, default refers to the default rule *, +and action is a block of C/C++ code.

+
    +
  • <conditions-or-wildcard>  regexp-or-default                 action
  • +
  • <conditions-or-wildcard>  regexp-or-default  =>  condition  action
  • +
  • <conditions-or-wildcard>  regexp-or-default  :=> condition
  • +
+

Rules with an exclamation mark ! in front of condition list have a special meaning: +they have no regular expression, +and the associated action is merged as an entry code to actions of normal rules. +This might be a convenient place to peform a routine task that is common to all rules.

+
    +
  • <!conditions-or-wildcard>  action
  • +
+

Another special form of rules with an empty condition list <> and no regular expression +allows one to specify an “entry condition” that can be used to execute code before entering the lexer. +It is semantically equivalent to a condition with number zero, name 0 and an empty regular expression.

+
    +
  • <>                 action
  • +
  • <>  =>  condition  action
  • +
  • <>  :=> condition
  • +
+
+
+

Skeleton programs¶

+

With the -S, --skeleton option, re2c ignores all non-re2c code and generates +a self-contained C program that can be further compiled and executed. The +program consists of lexer code and input data. For each constructed DFA (block +or condition) re2c generates a standalone lexer and two files: an .input +file with strings derived from the DFA and a .keys file with expected match +results. The program runs each lexer on the corresponding .input file and +compares results with the expectations. +Skeleton programs are very useful for a number of reasons:

+
    +
  • They can check correctness of various re2c optimizations (the data is +generated early in the process, before any DFA transformations have taken +place).
  • +
  • Generating a set of input data with good coverage may be useful for both +testing and benchmarking.
  • +
  • Generating self-contained executable programs allows one to get minimized test +cases (the original code may be large or have a lot of dependencies).
  • +
+

The difficulty with generating input data is that for all but the most trivial +cases the number of possible input strings is too large (even if the string +length is limited). Re2c solves this difficulty by generating sufficiently +many strings to cover almost all DFA transitions. It uses the following +algorithm. First, it constructs a skeleton of the DFA. For encodings with 1-byte +code unit size (such as ASCII, UTF-8 and EBCDIC) skeleton is just an exact copy +of the original DFA. For encodings with multibyte code units skeleton is a copy +of DFA with certain transitions omitted: namely, re2c takes at most 256 code +units for each disjoint continuous range that corresponds to a DFA transition. +The chosen values are evenly distributed and include range bounds. Instead of +trying to cover all possible paths in the skeleton (which is infeasible) re2c +generates sufficiently many paths to cover all skeleton transitions, and thus +trigger the corresponding conditional jumps in the lexer. +The algorithm implementation is limited by ~1Gb of transitions and consumes +constant amount of memory (re2c writes data to file as soon as it is generated).

+

Here is an example of a very simple program +[example.re] +that tries to match two-digit hexadecimal numbers:

+
/*!re2c
+    *              {}
+    [0-9a-fA-F]{2} {}
+*/
+
+
+

We can see the generated DFA using `re2c -D example.re | dot -Grankdir=LR -Tpng -o example.png`:

+../_images/example.png +

Given this program, `re2c -S -o example.c example.re` generates three files: +example.c (main program), example.c.line4.input (input data) and example.c.line4.keys (expected match results). +First, let’s look at the generated strings +[example.c.line4.input]:

+
$ hexdump -v -e '"%08_ax " 24/1 "%02x "' -e '" |" 24/1 "%_p" "|\n"' example.c.line4.input
+00000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 |........................|
+00000018 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f |........ !"#$%&'()*+,-./|
+00000030 3a 3b 3c 3d 3e 3f 40 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 |:;<=>?@GHIJKLMNOPQRSTUVW|
+[ ... ]
+
+
+

Byte sequences correspond to the paths in DFA. +All strings are glued together, so it’s hard to tell where is the end of one string and the beginning of another. +For that re2c generates keys [example.c.line4.keys]:

+
$hexdump -v -e '"%08_ax " 36/1 "%02x " "\n"' example.c.line4.keys
+00000000 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+00000024 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+00000048 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+[ ... ]
+
+
+

A key is a triplet: string length, the length of matching prefix and the number of matching rule. +(If tags are used, there is an additional key per each tag variable). +Keys are packed into an array. +In our case each key fits into 1 byte, but in case of a larger DFA they might take 2 or 4 bytes. +The generated program [example.c] +contains two auxilary functions: read_file and action_line4. +read_file is used to map .input and .keys files into memory (this function is shared between all lexers). +action_line4 is a replacement for actions: it compares actual lexing results with the expected results. +This function is specific to each lexer. +Lexing is done by lex_line4: this function contains the generated DFA. +The skeleton program is self-contained, so we can compile and run it:

+
$ cc -o example example.c
+$ ./example
+$ echo $?
+0
+
+
+

When everything is fine (there are no errors) the program outputs nothing and +exits with zero. For the sake of example, let’s pretend that re2c has an error +that results in a missing case statement:

+
$ re2c -S -o example.c example.re
+$ sed -i -e "s/case '7'://" example.c
+$ cc -o example example.c
+$ ./example
+error: lex_line4: at position 248 (iteration 241):
+        expected: match length 2, rule 0
+        actual:   match length 1, rule 254
+
+
+

Viola! Now the lexer complains about discrepancy between expected and actual +match results.

+

One special case of failure detected by skeleton programs is undefined control +flow in the lexer. Use -Wundefined-control-flow warning to catch all such +cases in in your code (more details here).

+
+
+

Visualization and debug¶

+

With the -D, --emit-dot option, re2c does not generate C/C++ code. Instead, +it dumps the generated DFA in the +DOT format. +One can convert this dump to an image of the DFA using +graphviz or another library. +Note that this option shows the final DFA after it has gone through a number of +optimizations and transformations. Earlier stages can be dumped with various debug +options, such as --dump-nfa, --dump-dfa-raw etc. (see the full +list of options).

+

Below is an example of generating a picture of DFA that accepts any UTF-8 code point +(utf8_any.re):

+
/*!re2c
+    *   {}
+    [^] {}
+*/
+
+
+

Generate and render:

+
$ re2c -D -8 utf8_any.re | dot -Tpng -o utf8_any.png
+
+
+

Here is the picture:

+../_images/utf8_any.png +
+
+

Warnings¶

+
+
-W
+
Turn on all warnings.
+
-Werror
+
Turn warnings into errors. Note that this option alone +doesn’t turn on any warnings; it only affects those warnings that have +been turned on so far or will be turned on later.
+
-W<warning>
+
Turn on warning.
+
-Wno-<warning>
+
Turn off warning.
+
-Werror-<warning>
+
Turn on warning and treat it as an error (this implies -W<warning>).
+
-Wno-error-<warning>
+
Don’t treat this particular warning as an error. This doesn’t turn off +the warning itself.
+
+
+
-Wcondition-order
+
Warn if the generated program makes implicit +assumptions about condition numbering. One should use either the -t, --type-header option or +the /*!types:re2c*/ directive to generate a mapping of condition names to numbers and then use +the autogenerated condition names.
+
-Wempty-character-class
+
Warn if a regular expression contains an empty +character class. Trying to match an empty character class makes no sense: it should always fail. +However, for backwards compatibility reasons re2c allows empty character classes and +treats them as empty strings. Use the --empty-class option to change the default +behavior.
+
-Wmatch-empty-string
+
Warn if a rule is nullable (matches an empty string). +If the lexer runs in a loop and the empty match is unintentional, +the lexer may unexpectedly hang in an infinite loop.
+
-Wswapped-range
+
Warn if the lower bound of a range is greater than its upper +bound. The default behavior is to silently swap the range bounds.
+
-Wundefined-control-flow
+
Warn if some input strings cause undefined +control flow in the lexer (the faulty patterns are reported). This is the +most dangerous and most common mistake. It can be easily fixed by adding +the default rule * which has the lowest priority, matches any code unit, and consumes +exactly one code unit.
+
-Wunreachable-rules
+
Warn about rules that are shadowed by other rules and will never match.
+
-Wuseless-escape
+
Warn if a symbol is escaped when it shouldn’t be. +By default, re2c silently ignores such escapes, but this may as well indicate a +typo or an error in the escape sequence.
+
-Wnondeterministic-tags
+
Warn if a tag has n-th degree of nondeterminism, where n is greater than 1.
+
-Wsentinel-in-midrule
+
Warn if the sentinel symbol occurs in the middle of a rule — this may +cause reads past the end of buffer, crashes or memory corruption in the +generated lexer. This warning is only applicable if the sentinel method of +checking for the end of input is used. +It is set to an error if re2c:sentinel configuration is used.
+
+
+

[-Wundefined-control-flow]¶

+
+
+

With -Wundefined-control-flow warning re2c checks that every path in the +generated DFA contains at least one accepting state. When the input matches +such a path, lexer will eventually stop and execute the corresponding semantic +action. However, if some path has no accepting state, then lexer behavior is +undefined: it may loop forever, or read past the end of buffer, or jump to some +other semantic action by accident. For example, consider this simple piece of +code (a.re) that is supposed to match letter a:

+
1
+2
+3
/*!re2c
+    "a" { return 'a'; }
+*/
+
+
+

The generated code looks like this:

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
{
+        YYCTYPE yych;
+        if (YYLIMIT <= YYCURSOR) YYFILL(1);
+        yych = *YYCURSOR;
+        switch (yych) {
+        case 'a':       goto yy3;
+        default:        goto yy2;
+        }
+yy2:
+yy3:
+        ++YYCURSOR;
+        { return 'a'; }
+}
+
+
+

Clearly this is not what we want: this code matches any letter, not just a! +This happens because we did not specify any handler for the remaining input symbols. +If we run re2c with -Wundefined-control-flow, we will see that it complains about undefined control flow and recommends using default rule *:

+
a.re:3:2: warning: control flow is undefined for strings that match '[\x0-\x60\x62-\xFF]', use the default '*' rule  [-Wundefined-control-flow]
+
+
+

Let’s follow the advice and change the code:

+
1
+2
+3
+4
/*!re2c
+    *   { return '*'; }
+    "a" { return 'a'; }
+*/
+
+
+

Now the generated code looks much better:

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
{
+        YYCTYPE yych;
+        if (YYLIMIT <= YYCURSOR) YYFILL(1);
+        yych = *YYCURSOR;
+        switch (yych) {
+        case 'a':       goto yy4;
+        default:        goto yy2;
+        }
+yy2:
+        ++YYCURSOR;
+        { return '*'; }
+yy4:
+        ++YYCURSOR;
+        { return 'a'; }
+}
+
+
+

Note that the default rule brings no overhead: it simply binds code to the +default label. It should always be used, unless you are absolutely sure that +your grammar covers all possible cases.

+
+

The old default rule¶

+

When the world was young and re2c didn’t have the default * rule (that is, +before re2c-0.13.7) everyone used [^] as the default rule, as in this +example (any.re):

+
1
+2
+3
+4
/*!re2c
+    // ... normal rules ...
+    [^] { return "any"; }
+*/
+
+
+

[^] is just an ordinary rule: it matches any character and has normal +priority (so it should be the last rule). If other rules didn’t match, [^] +will match and consume one character.

+

But exactly what is a character? First, an abstract number that is assigned +some sacred meaning within the current encoding — a code point. Second, a +minimal piece of information (say, combination of bits) that can represent a +unit of encoded text — a code unit. Rules are defined in terms of code points. +Input is measured in code units. In fixed-width encodings (such as ASCII, +EBCDIC, UCS-2, UTF-32, etc.), there is a one-to-one correspondence between code +points and code units. In variable-width encodings (such as UTF-8, UTF-16, +etc.), code points map to code unit sequences of different lengths.

+

The [^] rule matches any code point. In fixed-width encodings, it covers all +code units and consumes exactly one of them. In variable-width encodings, it +consumes variable number of code units and may not match some of them. The +example above compiles without warnings with any fixed-width encoding (ASCII by +default). However, with the UTF-8 encoding +`re2c -i8 -Wundefined-control-flow any.re` complains:

+
any.re:4:2: warning: control flow is undefined for strings that match
+        '[\x80-\xC1\xF5-\xFF]'
+        '\xF0 [\x0-\x8F\xC0-\xFF]'
+        '[\xE1-\xEF] [\x0-\x7F\xC0-\xFF]'
+        '\xF4 [\x0-\x7F\x90-\xFF]'
+        '\xE0 [\x0-\x9F\xC0-\xFF]'
+        '[\xF1-\xF3] [\x0-\x7F\xC0-\xFF]'
+        '[\xC2-\xDF] [\x0-\x7F\xC0-\xFF]'
+        '\xE0 [\xA0-\xBF] [\x0-\x7F\xC0-\xFF]'
+ ... and 7 more, use default rule '*' [-Wundefined-control-flow]
+
+
+

It shows us the patterns that must never appear in valid UTF-8 encoded text. If +the input is not valid UTF-8, lexer behavior is undefined. One would expect that +with UTF-16 (another variable-width encoding), re2c would also report a warning, +but it doesn’t. This is because by default, re2c treats Unicode surrogates as +normal code points (for backwards compatibility reasons). If we tell re2c to +exclude surrogates +(`re2c -ix --encoding-policy fail -Wundefined-control-flow`), then we will +get a warning:

+
any.re:4:2: warning: control flow is undefined for strings that match
+        '[\xDC00-\xDFFF]'
+        '[\xD800-\xDBFF] [\x0-\xDBFF\xE000-\xFFFF]'
+, use default rule '*' [-Wundefined-control-flow]
+
+
+

As you see, it can get quite subtle. A good advice is, always use default rule +*: it matches any code unit regardless of encoding, consumes a single code +unit no matter what and always has the lowest priority. Note that * is a +built-in hack: it cannot be expressed through ordinary rules.

+
+
+
+

[-Wunreachable-rules]¶

+

Sometimes the input grammar contains rules that will never match. This can +happen for two reasons. First, some rules may be shadowed by other rules that +match the same input, but have higher priority. Second, the rule itself may be +infinitely greedy: it may consume as many input characters as it can get and +never stop, and as a result never match. Both cases indicate a problem with +the grammar, and -Wunreachable-rules detects and reports such rules.

+

Let’s see an example of the first kind: shadowed rules (shadowed.re).

+
1
+2
+3
+4
+5
+6
+7
+8
/*!re2c
+    ""          { return ""; }
+    *           { return "*"; }
+    "a" | "b"   { return "a | b"; }
+    "a"         { return "a"; }
+    [\x00-\xFF] { return "[0 - 0xFF]"; }
+    [^]         { return "[^]"; }
+*/
+
+
+

In this example the empty rule "" never matches, because any single code +unit is matched by other rules, which take precedence due to the longerst match. +Rule "a" is shadowed by rule "a" | "b", which also matches a, but +takes precedence because it comes first. Similarly, rule [^] is shadowed by +rule [\x00-\xFF]. Default rule * is also shadowed, but it’s an exception +that is not reported (default case should always be handled). Shadowed rules +normally do not appear in the generated code: re2c removes them during its dead +code elimination pass.

+
$ re2c -Wunreachable-rules shadowed.re -o shadowed.c
+shadowed.re:2:16: warning: unreachable rule (shadowed by rules at lines 4, 6) [-Wunreachable-rules]
+shadowed.re:5:16: warning: unreachable rule (shadowed by rule at line 4) [-Wunreachable-rules]
+shadowed.re:7:16: warning: unreachable rule (shadowed by rules at lines 4, 6) [-Wunreachable-rules]
+
+
+

Now let’s see an example of second kind: infinitely greedy rule (greedy.re).

+
1
+2
+3
/*!re2c
+    [^]* { return "greeedy"; }
+*/
+
+
+

This rule will continue eating input characters until YYFILL fails, or until +it reads past the end of buffer and causes memory access violation.

+
$ re2c -Wunreachable-rules greedy.re -o greedy.c
+greedy.re:2:9: warning: unreachable rule  [-Wunreachable-rules]
+
+
+
+
+

[-Wcondition-order]¶

+

Some older re2c programs that use -c --conditions option rely on a fixed +condition order instead of using /*!types:re2c*/ directive or the +-t --type-header option. This is incorrect and dangerous, as demonstrated by +the following example [fixorder.re]. In this example +the lexer has two conditions: a and b. It starts in condition a, +which expects a sequence of letters a followed by a comma. The comma causes +transition to condition b, which expects a sequence of letters b +followed by an exclamation mark. Anything other input is an error. Nothing +special, except that condition numbers are hardcoded manually (the mapping of +conditions to numbers is toggled by REVERSED_CONDITION_ORDER define).

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
#include <stdio.h>
+
+#ifdef REVERSED_CONDITION_ORDER
+#    define yyca 1
+#    define yycb 0
+#else
+#    define yyca 0
+#    define yycb 1
+#endif
+
+int main()
+{
+    const char * YYCURSOR = "aaaa,bbb!";
+    int c = yyca;
+    for (;;) {
+    /*!re2c
+        re2c:define:YYCTYPE = char;
+        re2c:yyfill:enable = 0;
+        re2c:define:YYSETCONDITION = "c = @@;";
+        re2c:define:YYSETCONDITION:naked = 1;
+        re2c:define:YYGETCONDITION = c;
+        re2c:define:YYGETCONDITION:naked = 1;
+
+        <*> * { printf ("error\n"); break; }
+
+        <a> "a"      { printf ("a"); continue; }
+        <a> "," => b { printf (","); continue; }
+
+        <b> "!" { printf ("!\n"); break; }
+        <b> "b" { printf ("b"); continue; }
+    */
+    }
+    return 0;
+}
+
+
+

Let’s compile and run it. +Everything works fine: we get aaaa,bbb! in both cases.

+
$ re2c -c -o fixorder.c -Wcondition-order fixorder.re
+$
+$ c++ -o fixorder fixorder.c && ./fixorder
+aaaa,bbb!
+$
+$ c++ -o fixorder fixorder.c -DREVERSED_CONDITION_ORDER && ./fixorder
+aaaa,bbb!
+
+
+

However, if we use the -s re2c option, the lexer becomes sensitive to condition order:

+
$ re2c -cs -o fixorder.c -Wcondition-order fixorder.re
+fixorder.re:31:6: warning: looks like you use hardcoded numbers instead of autogenerated condition names:
+better add '/*!types:re2c*/' directive or '-t, --type-header' option and don't rely on fixed condition order. [-Wcondition-order]
+$
+$ c++ -o fixorder fixorder.c && ./fixorder
+aaaa,bbb!
+$
+$ c++ -o fixorder fixorder.c -DREVERSED_CONDITION_ORDER && ./fixorder
+error
+
+
+

And we get a warning from re2c. The same behavior remains if we use -g or +-b option. Why is that? A look at the generated code explains everything. +By default the initial dispatch on conditions is a switch statement:

+
switch (c) {
+case yyca: goto yyc_a;
+case yycb: goto yyc_b;
+}
+
+
+

Dispatch uses explicit condition names and works no matter what numbers are assigned to them. +However, with the -s option, re2c generates an if statement instead of a switch:

+
if (c < 1) {
+        goto yyc_a;
+} else {
+        goto yyc_b;
+}
+
+
+

And with the -g option, it uses a jump table (computed goto):

+
static void *yyctable[2] = {
+        &&yyc_a,
+        &&yyc_b,
+};
+goto *yyctable[c];
+
+
+

The last two cases are sensitive to condition order. The fix is easy: as the +warning suggests, use the /*!types:re2c*/ directive or the +-t, --type-header option.

+
+
+

[-Wuseless-escape]¶

+

Sometimes people escape characters that don’t need to be escaped — either +because they (mistakenly) think that the character is special and must be +escaped in the given context, or because they think that this escape sequence +means something (when it actually doesn’t), or just by pure accident. With +-Wuseless-escape option re2c warns about ignored escapes. Consider this +example (escapes.re):

+
1
+2
+3
+4
+5
+6
/*!re2c
+    *                        {}
+    "\a\A\"\'\[\]\-\x5d\377" {}
+    '\a\A\"\'\[\]\-\x5d\377' {}
+    [\a\A\"\'\[\]\-\x5d\377] {}
+*/
+
+
+

Re2c reports a bunch of warnings:

+
$ re2c -Wuseless-escape escapes.re -o escapes.c
+escapes.re:3:7: warning: escape has no effect: '\A' [-Wuseless-escape]
+escapes.re:3:11: warning: escape has no effect: '\'' [-Wuseless-escape]
+escapes.re:3:13: warning: escape has no effect: '\[' [-Wuseless-escape]
+escapes.re:3:15: warning: escape has no effect: '\]' [-Wuseless-escape]
+escapes.re:3:17: warning: escape has no effect: '\-' [-Wuseless-escape]
+escapes.re:4:7: warning: escape has no effect: '\A' [-Wuseless-escape]
+escapes.re:4:9: warning: escape has no effect: '\"' [-Wuseless-escape]
+escapes.re:4:13: warning: escape has no effect: '\[' [-Wuseless-escape]
+escapes.re:4:15: warning: escape has no effect: '\]' [-Wuseless-escape]
+escapes.re:4:17: warning: escape has no effect: '\-' [-Wuseless-escape]
+escapes.re:5:7: warning: escape has no effect: '\A' [-Wuseless-escape]
+escapes.re:5:9: warning: escape has no effect: '\"' [-Wuseless-escape]
+escapes.re:5:11: warning: escape has no effect: '\'' [-Wuseless-escape]
+escapes.re:5:13: warning: escape has no effect: '\[' [-Wuseless-escape]
+
+
+

This is because the \A and \[ escapes are meaningless in all rules, +\- makes sense only in a character class, +and each type of closing quotes (", ' and ]) should only be escaped inside of a string delimited with the same quotes. +Useless escapes are ignored: the escaped symbol is treated as not escaped (\A becomes A, etc.). +The above example should be fixed as follows:

+
1
+2
+3
+4
+5
+6
/*!re2c
+    *                    {}
+    "\aA\"'[]-\x5d\377"  {}
+    '\aA"\'[]-\x5d\377'  {}
+    [\aA"'[\]\-\x5d\377] {}
+*/
+
+
+

More generally, re2c recognizes escapes in the following lexemes:

+
    +
  • double-quoted strings " ... "
  • +
  • single-quoted strings ' ... '
  • +
  • character classes [ ... ] and [^ ... ]
  • +
+

The following escapes are recognized:

+
    +
  • Closing quotes (\" for double-quoted strings, \' for single-quoted strings, and \] for character classes).
  • +
  • Dash \- in character classes.
  • +
  • Octal escapes: \ooo, where o is in range [0 - 7] +(the largest octal escape is \377, which equals 0xFF).
  • +
  • Hexadecimal escapes: \xhh, \Xhhhh, \uhhhh, and \Uhhhhhhhh, +where h is in range [0 - 9], [a - f], or [A - F].
  • +
  • Miscellaneous escapes: \a, \b, \f, \n, \r, \t, \v, \\.
  • +
+

Ill-formed octal and hexadecimal escapes are treated as errors. +An escape followed by a newline is also an error: multiline strings and character classes are not allowed. +Any other ill-formed escapes are ignored.

+
+
+

[-Wswapped-range]¶

+

-Wswapped-range warning is reported in cases when a character class contains +a range which lower bound is greater than the upper bound. For some strange +reason older versions of re2c did not consider this an error and silently +swapped range bounds. Consider the following example (swapped.re):

+
1
+2
+3
+4
/*!re2c
+    *     { return "*"; }
+    [a-Z] { return "is it what you wanted?"; }
+*/
+
+
+

Re2c interprets this code as [Z-a], but generates a warning:

+
$ re2c -Wswapped-range swapped.re -o swapped.c
+swapped.re:3:5: warning: range lower bound (0x61) is greater than upper bound (0x5A), swapping [-Wswapped-range]
+
+
+

Use [-Werror-swapped-range] to make it an error.

+
+
+

[-Wempty-character-class]¶

+

This warning is complementary to the +--empty-class <match-empty | match-none | error> option. +For bakward compatibility reasons the default is match-empty: empty +character class [] matches empty string (that is, it always matches without +consuming any input). This behaviour doesn’t make much sense, therefore re2c +provides a warning -Wempty-character-class. +Note that empty character class can be constructed in many ways, for example as +a result of range negation or the difference operator. The code below (empty.re) +demonstrates some of the possibilities:

+
1
+2
+3
+4
+5
+6
+7
/*!re2c
+    []                        { return 0; }
+    [^\x00-\xFF]              { return 1; }
+    [^] \ [^]                 { return 2; }
+    [abc] \ ("a" | "b" | "c") { return 3; }
+    "a" \ [a-z]               { return 4; }
+*/
+
+
+

Re2c gives the following warnings:

+
$ re2c -Wempty-character-class empty.re -o empty.c
+empty.re:2:4: warning: empty character class [-Wempty-character-class]
+empty.re:3:4: warning: empty character class [-Wempty-character-class]
+empty.re:4:4: warning: empty character class [-Wempty-character-class]
+empty.re:5:4: warning: empty character class [-Wempty-character-class]
+empty.re:6:4: warning: empty character class [-Wempty-character-class]
+
+
+
+
+

[-Wmatch-empty-string]¶

+

[-Wmatch-empty-string] warns when a rule is nullable (matches an empty +string). It was intended to prevent infinite looping in cases like the +[hang.re] +example below. The program loops over its arguments (the outer for loop) +and tries to lex each argument (the inner for loop). The lexer stops when +all input has been consumed and it sees the terminating NULL. Arguments must +consist of lowercase letters only.

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
#include <stdio.h>
+
+int main(int argc, char **argv)
+{
+    for (int i = 1; i < argc; ++i) {
+        for (char *YYCURSOR = argv[i];;) {
+        /*!re2c
+            re2c:define:YYCTYPE = char;
+            re2c:yyfill:enable = 0;
+            "\x00" { break; }
+            [a-z]* { continue; }
+        */
+        }
+        printf("argv[%d]: %s\n", i, argv[i]);
+    }
+    return 0;
+}
+
+
+

On well-formed input the program runs as expected. However, if one of the +arguments contains a symbol diffrerent from lowercase letter, the program hangs +forever:

+
$ re2c -Wmatch-empty-string hang.re -o hang.c
+hang.re:11:19: warning: rule matches empty string [-Wmatch-empty-string]
+$ c++ -o hang hang.c
+$
+$ ./hang only lowercase letters
+argv[1]: only
+argv[2]: lowercase
+argv[3]: letters
+$
+$ ./hang right ?
+argv[1]: right
+^C
+
+
+

Note that if we add default rule *, the lexer won’t hang anymore: it will +match the default rule instead of the nullable rule. The fix is easy: make the +rule non-nullable (say, [a-z]+) and add default rule *.

+

In some cases matching an empty string makes perfect sense: for example, it +might be used as a non-consuming default rule, or it might be used to lex an +optional lexeme (if the corresponding rule doesn’t match, the lexer jumps to +another block and resumes lexing at the same input position). All these cases +are valid, so if [-Wmatch-empty-string] becomes annoying, it can be silenced +with [-Wno-match-empty-string].

+
+
+

[-Wsentinel-in-midrule]¶

+

When using sentinel method of checking for the end of input, it is easy to +forget that the sentinel symbol must not be allowed in the middle of the rule. +For example, the following code tries to match single-quoted strings. It allows +any character except the single quote to occur in the string, including +terminating NULL. As a result, the generated lexer works as expected on +well-formed input like 'aaa'\0, but things go wrong on ill-formed input like +'aaa\0 (where the closing single quote is missing). Lexer reaches the +terminating NULL and assumes it is a part of the single-quoted string, so +it continues reading bytes from memory. Eventually the lexer terminates due to +memory access violation, or worse — it accidentally hits a single quote and +assumes this to be the end of the string.

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
#include <assert.h>
+
+int lex(const char *YYCURSOR)
+{
+    /*!re2c
+    re2c:define:YYCTYPE = char;
+    re2c:yyfill:enable = 0;
+    ['] [^']* ['] { return 0; }
+    *             { return 1; }
+    */
+}
+
+int main()
+{
+    assert(lex("'good'") == 0);
+    assert(lex("'bad") == 1);
+    return 0;
+}
+
+
+

On this code re2c reports a warning. It cannot be certain that NULL is the sentinel +symbol, but this is by far the most common case.

+
$ re2c -Wsentinel-in-midrule example.re -oexample.c
+example.re:9:18: warning: sentinel symbol 0 occurs in the middle of the rule
+    (note: if a different sentinel symbol is used, specify it with 're2c:sentinel' configuration) [-Wsentinel-in-midrule]
+
+
+

However, re2c suggests us to define the sentinel symbol using re2c:sentinel +configuration. Let’s do it.

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
#include <assert.h>
+
+int lex(const char *YYCURSOR)
+{
+    /*!re2c
+    re2c:define:YYCTYPE = char;
+    re2c:yyfill:enable = 0;
+    re2c:sentinel = 0;
+    ['] [^']* ['] { return 0; }
+    *             { return 1; }
+    */
+}
+
+int main()
+{
+    assert(lex("'good'") == 0);
+    assert(lex("'bad") == 1);
+    return 0;
+}
+
+
+

The warning has turned into an error, as re2c is now certain that the code +contains an error.

+
$ re2c -Wsentinel-in-midrule example.re -oexample.c
+example.re:10:18: error: sentinel symbol 0 occurs in the middle of the rule [-Werror-sentinel-in-midrule]
+
+
+

The code can be fixed by excluding NULL from the set of symbols allowed in +the middle of the string: ['] [^'\x00]* [']. If it is necessary to allow +all symbols, a more powerful EOF handling method should be used.

+
+
+ +
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/manual/skeleton/skeleton_example.html b/manual/skeleton/skeleton_example.html new file mode 100644 index 00000000..681edfac --- /dev/null +++ b/manual/skeleton/skeleton_example.html @@ -0,0 +1,122 @@ + + + + + + + + <no title> — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +

Here is an example of a very simple program +[example.re] +that tries to match two-digit hexadecimal numbers:

+
/*!re2c
+    *              {}
+    [0-9a-fA-F]{2} {}
+*/
+
+
+

We can see the generated DFA using `re2c -D example.re | dot -Grankdir=LR -Tpng -o example.png`:

+../../_images/example.png +

Given this program, `re2c -S -o example.c example.re` generates three files: +example.c (main program), example.c.line4.input (input data) and example.c.line4.keys (expected match results). +First, let’s look at the generated strings +[example.c.line4.input]:

+
$ hexdump -v -e '"%08_ax " 24/1 "%02x "' -e '" |" 24/1 "%_p" "|\n"' example.c.line4.input
+00000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 |........................|
+00000018 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f |........ !"#$%&'()*+,-./|
+00000030 3a 3b 3c 3d 3e 3f 40 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 |:;<=>?@GHIJKLMNOPQRSTUVW|
+[ ... ]
+
+
+

Byte sequences correspond to the paths in DFA. +All strings are glued together, so it’s hard to tell where is the end of one string and the beginning of another. +For that re2c generates keys [example.c.line4.keys]:

+
$hexdump -v -e '"%08_ax " 36/1 "%02x " "\n"' example.c.line4.keys
+00000000 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+00000024 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+00000048 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+[ ... ]
+
+
+

A key is a triplet: string length, the length of matching prefix and the number of matching rule. +(If tags are used, there is an additional key per each tag variable). +Keys are packed into an array. +In our case each key fits into 1 byte, but in case of a larger DFA they might take 2 or 4 bytes. +The generated program [example.c] +contains two auxilary functions: read_file and action_line4. +read_file is used to map .input and .keys files into memory (this function is shared between all lexers). +action_line4 is a replacement for actions: it compares actual lexing results with the expected results. +This function is specific to each lexer. +Lexing is done by lex_line4: this function contains the generated DFA. +The skeleton program is self-contained, so we can compile and run it:

+
$ cc -o example example.c
+$ ./example
+$ echo $?
+0
+
+
+

When everything is fine (there are no errors) the program outputs nothing and +exits with zero. For the sake of example, let’s pretend that re2c has an error +that results in a missing case statement:

+
$ re2c -S -o example.c example.re
+$ sed -i -e "s/case '7'://" example.c
+$ cc -o example example.c
+$ ./example
+error: lex_line4: at position 248 (iteration 241):
+        expected: match length 2, rule 0
+        actual:   match length 1, rule 254
+
+
+

Viola! Now the lexer complains about discrepancy between expected and actual +match results.

+

One special case of failure detected by skeleton programs is undefined control +flow in the lexer. Use -Wundefined-control-flow warning to catch all such +cases in in your code (more details here).

+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/manual/syntax/example.html b/manual/syntax/example.html new file mode 100644 index 00000000..1ccd55cf --- /dev/null +++ b/manual/syntax/example.html @@ -0,0 +1,164 @@ + + + + + + + + A basic example — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

A basic example¶

+

Here is an example program [syntax.re] +that shows various aspects of re2c syntax:

+
/*!re2c re2c:flags:i = 1; */         // re2c block with configuration that turns off #line directives
+                                     //
+#include <stdio.h>                   //    C/C++ code
+                                     //
+/*!max:re2c*/                        // directive that defines YYMAXFILL (unused)
+/*!re2c                              // start of re2c block
+    digit  = [0-9];                  //   named definition of 'digit'
+    number = digit+;                 //   named definition of 'number'
+*/                                   // end of re2c block
+                                     //
+static int lex(const char *YYCURSOR) // YYCURSOR is defined as a function parameter
+{                                    //
+    const char *YYMARKER;            // YYMARKER is defined as a local variable
+    /*!re2c                          // start of re2c block
+    re2c:define:YYCTYPE = char;      //   configuration that defines YYCTYPE
+    re2c:yyfill:enable  = 0;         //   configuration that turns off YYFILL
+                                     //
+    * { return 1; }                  //   default rule with its semantic action
+                                     //
+    number {                         //   a normal rule with its semantic action
+        printf("number\n");          //     ... semantic action (continued)
+        return 0;                    //     ... semantic action (continued)
+    }                                //   end of semantic action
+                                     //
+    */                               // end of re2c block
+}                                    //
+                                     //
+int main()                           //
+{                                    //
+    lex("1024");                     //    C/C++ code
+    lex(";]");                       //
+    return 0;                        //
+}                                    //
+
+
+

Run re2c as re2c -W syntax.re -o syntax.c (option -W enables warnings). +The generated code [syntax.c] +looks like this:

+
                                     // re2c block with configuration that turns off #line directives
+                                     //
+#include <stdio.h>                   //    C/C++ code
+                                     //
+#define YYMAXFILL 1                  // directive that defines YYMAXFILL (unused)
+                                     // end of re2c block
+                                     //
+static int lex(const char *YYCURSOR) // YYCURSOR is defined as a function parameter
+{                                    //
+    const char *YYMARKER;            // YYMARKER is defined as a local variable
+    
+{
+    char yych;
+    yych = *YYCURSOR;
+    switch (yych) {
+    case '0':
+    case '1':
+    case '2':
+    case '3':
+    case '4':
+    case '5':
+    case '6':
+    case '7':
+    case '8':
+    case '9':   goto yy4;
+    default:    goto yy2;
+    }
+yy2:
+    ++YYCURSOR;
+    { return 1; }
+yy4:
+    yych = *++YYCURSOR;
+    switch (yych) {
+    case '0':
+    case '1':
+    case '2':
+    case '3':
+    case '4':
+    case '5':
+    case '6':
+    case '7':
+    case '8':
+    case '9':   goto yy4;
+    default:    goto yy6;
+    }
+yy6:
+    {                                //   a normal rule with its semantic action
+        printf("number\n");          //     ... semantic action (continued)
+        return 0;                    //     ... semantic action (continued)
+    }
+}
+                                     // end of re2c block
+}                                    //
+                                     //
+int main()                           //
+{                                    //
+    lex("1024");                     //    C/C++ code
+    lex(";]");                       //
+    return 0;                        //
+}                                    //
+
+
+

The lines without comments correspond to the code generated by re2c. Not all +comments are present in the output — only those which are in C/C++ code, and +not inside of re2c blocks.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/manual/warnings/condition_order/wcondition_order.html b/manual/warnings/condition_order/wcondition_order.html new file mode 100644 index 00000000..c24e29f4 --- /dev/null +++ b/manual/warnings/condition_order/wcondition_order.html @@ -0,0 +1,190 @@ + + + + + + + + [-Wcondition-order] — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

[-Wcondition-order]¶

+

Some older re2c programs that use -c --conditions option rely on a fixed +condition order instead of using /*!types:re2c*/ directive or the +-t --type-header option. This is incorrect and dangerous, as demonstrated by +the following example [fixorder.re]. In this example +the lexer has two conditions: a and b. It starts in condition a, +which expects a sequence of letters a followed by a comma. The comma causes +transition to condition b, which expects a sequence of letters b +followed by an exclamation mark. Anything other input is an error. Nothing +special, except that condition numbers are hardcoded manually (the mapping of +conditions to numbers is toggled by REVERSED_CONDITION_ORDER define).

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
#include <stdio.h>
+
+#ifdef REVERSED_CONDITION_ORDER
+#    define yyca 1
+#    define yycb 0
+#else
+#    define yyca 0
+#    define yycb 1
+#endif
+
+int main()
+{
+    const char * YYCURSOR = "aaaa,bbb!";
+    int c = yyca;
+    for (;;) {
+    /*!re2c
+        re2c:define:YYCTYPE = char;
+        re2c:yyfill:enable = 0;
+        re2c:define:YYSETCONDITION = "c = @@;";
+        re2c:define:YYSETCONDITION:naked = 1;
+        re2c:define:YYGETCONDITION = c;
+        re2c:define:YYGETCONDITION:naked = 1;
+
+        <*> * { printf ("error\n"); break; }
+
+        <a> "a"      { printf ("a"); continue; }
+        <a> "," => b { printf (","); continue; }
+
+        <b> "!" { printf ("!\n"); break; }
+        <b> "b" { printf ("b"); continue; }
+    */
+    }
+    return 0;
+}
+
+
+

Let’s compile and run it. +Everything works fine: we get aaaa,bbb! in both cases.

+
$ re2c -c -o fixorder.c -Wcondition-order fixorder.re
+$
+$ c++ -o fixorder fixorder.c && ./fixorder
+aaaa,bbb!
+$
+$ c++ -o fixorder fixorder.c -DREVERSED_CONDITION_ORDER && ./fixorder
+aaaa,bbb!
+
+
+

However, if we use the -s re2c option, the lexer becomes sensitive to condition order:

+
$ re2c -cs -o fixorder.c -Wcondition-order fixorder.re
+fixorder.re:31:6: warning: looks like you use hardcoded numbers instead of autogenerated condition names:
+better add '/*!types:re2c*/' directive or '-t, --type-header' option and don't rely on fixed condition order. [-Wcondition-order]
+$
+$ c++ -o fixorder fixorder.c && ./fixorder
+aaaa,bbb!
+$
+$ c++ -o fixorder fixorder.c -DREVERSED_CONDITION_ORDER && ./fixorder
+error
+
+
+

And we get a warning from re2c. The same behavior remains if we use -g or +-b option. Why is that? A look at the generated code explains everything. +By default the initial dispatch on conditions is a switch statement:

+
switch (c) {
+case yyca: goto yyc_a;
+case yycb: goto yyc_b;
+}
+
+
+

Dispatch uses explicit condition names and works no matter what numbers are assigned to them. +However, with the -s option, re2c generates an if statement instead of a switch:

+
if (c < 1) {
+        goto yyc_a;
+} else {
+        goto yyc_b;
+}
+
+
+

And with the -g option, it uses a jump table (computed goto):

+
static void *yyctable[2] = {
+        &&yyc_a,
+        &&yyc_b,
+};
+goto *yyctable[c];
+
+
+

The last two cases are sensitive to condition order. The fix is easy: as the +warning suggests, use the /*!types:re2c*/ directive or the +-t, --type-header option.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/manual/warnings/empty_character_class/wempty_character_class.html b/manual/warnings/empty_character_class/wempty_character_class.html new file mode 100644 index 00000000..1d405a55 --- /dev/null +++ b/manual/warnings/empty_character_class/wempty_character_class.html @@ -0,0 +1,92 @@ + + + + + + + + [-Wempty-character-class] — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

[-Wempty-character-class]¶

+

This warning is complementary to the +--empty-class <match-empty | match-none | error> option. +For bakward compatibility reasons the default is match-empty: empty +character class [] matches empty string (that is, it always matches without +consuming any input). This behaviour doesn’t make much sense, therefore re2c +provides a warning -Wempty-character-class. +Note that empty character class can be constructed in many ways, for example as +a result of range negation or the difference operator. The code below (empty.re) +demonstrates some of the possibilities:

+
1
+2
+3
+4
+5
+6
+7
/*!re2c
+    []                        { return 0; }
+    [^\x00-\xFF]              { return 1; }
+    [^] \ [^]                 { return 2; }
+    [abc] \ ("a" | "b" | "c") { return 3; }
+    "a" \ [a-z]               { return 4; }
+*/
+
+
+

Re2c gives the following warnings:

+
$ re2c -Wempty-character-class empty.re -o empty.c
+empty.re:2:4: warning: empty character class [-Wempty-character-class]
+empty.re:3:4: warning: empty character class [-Wempty-character-class]
+empty.re:4:4: warning: empty character class [-Wempty-character-class]
+empty.re:5:4: warning: empty character class [-Wempty-character-class]
+empty.re:6:4: warning: empty character class [-Wempty-character-class]
+
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/manual/warnings/match_empty_string/wmatch_empty_string.html b/manual/warnings/match_empty_string/wmatch_empty_string.html new file mode 100644 index 00000000..32bc0b1c --- /dev/null +++ b/manual/warnings/match_empty_string/wmatch_empty_string.html @@ -0,0 +1,127 @@ + + + + + + + + [-Wmatch-empty-string] — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

[-Wmatch-empty-string]¶

+

[-Wmatch-empty-string] warns when a rule is nullable (matches an empty +string). It was intended to prevent infinite looping in cases like the +[hang.re] +example below. The program loops over its arguments (the outer for loop) +and tries to lex each argument (the inner for loop). The lexer stops when +all input has been consumed and it sees the terminating NULL. Arguments must +consist of lowercase letters only.

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
#include <stdio.h>
+
+int main(int argc, char **argv)
+{
+    for (int i = 1; i < argc; ++i) {
+        for (char *YYCURSOR = argv[i];;) {
+        /*!re2c
+            re2c:define:YYCTYPE = char;
+            re2c:yyfill:enable = 0;
+            "\x00" { break; }
+            [a-z]* { continue; }
+        */
+        }
+        printf("argv[%d]: %s\n", i, argv[i]);
+    }
+    return 0;
+}
+
+
+

On well-formed input the program runs as expected. However, if one of the +arguments contains a symbol diffrerent from lowercase letter, the program hangs +forever:

+
$ re2c -Wmatch-empty-string hang.re -o hang.c
+hang.re:11:19: warning: rule matches empty string [-Wmatch-empty-string]
+$ c++ -o hang hang.c
+$
+$ ./hang only lowercase letters
+argv[1]: only
+argv[2]: lowercase
+argv[3]: letters
+$
+$ ./hang right ?
+argv[1]: right
+^C
+
+
+

Note that if we add default rule *, the lexer won’t hang anymore: it will +match the default rule instead of the nullable rule. The fix is easy: make the +rule non-nullable (say, [a-z]+) and add default rule *.

+

In some cases matching an empty string makes perfect sense: for example, it +might be used as a non-consuming default rule, or it might be used to lex an +optional lexeme (if the corresponding rule doesn’t match, the lexer jumps to +another block and resumes lexing at the same input position). All these cases +are valid, so if [-Wmatch-empty-string] becomes annoying, it can be silenced +with [-Wno-match-empty-string].

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/manual/warnings/sentinel_in_midrule/wsentinel_in_midrule.html b/manual/warnings/sentinel_in_midrule/wsentinel_in_midrule.html new file mode 100644 index 00000000..94d746e3 --- /dev/null +++ b/manual/warnings/sentinel_in_midrule/wsentinel_in_midrule.html @@ -0,0 +1,164 @@ + + + + + + + + [-Wsentinel-in-midrule] — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

[-Wsentinel-in-midrule]¶

+

When using sentinel method of checking for the end of input, it is easy to +forget that the sentinel symbol must not be allowed in the middle of the rule. +For example, the following code tries to match single-quoted strings. It allows +any character except the single quote to occur in the string, including +terminating NULL. As a result, the generated lexer works as expected on +well-formed input like 'aaa'\0, but things go wrong on ill-formed input like +'aaa\0 (where the closing single quote is missing). Lexer reaches the +terminating NULL and assumes it is a part of the single-quoted string, so +it continues reading bytes from memory. Eventually the lexer terminates due to +memory access violation, or worse — it accidentally hits a single quote and +assumes this to be the end of the string.

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
#include <assert.h>
+
+int lex(const char *YYCURSOR)
+{
+    /*!re2c
+    re2c:define:YYCTYPE = char;
+    re2c:yyfill:enable = 0;
+    ['] [^']* ['] { return 0; }
+    *             { return 1; }
+    */
+}
+
+int main()
+{
+    assert(lex("'good'") == 0);
+    assert(lex("'bad") == 1);
+    return 0;
+}
+
+
+

On this code re2c reports a warning. It cannot be certain that NULL is the sentinel +symbol, but this is by far the most common case.

+
$ re2c -Wsentinel-in-midrule example.re -oexample.c
+example.re:9:18: warning: sentinel symbol 0 occurs in the middle of the rule
+    (note: if a different sentinel symbol is used, specify it with 're2c:sentinel' configuration) [-Wsentinel-in-midrule]
+
+
+

However, re2c suggests us to define the sentinel symbol using re2c:sentinel +configuration. Let’s do it.

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
#include <assert.h>
+
+int lex(const char *YYCURSOR)
+{
+    /*!re2c
+    re2c:define:YYCTYPE = char;
+    re2c:yyfill:enable = 0;
+    re2c:sentinel = 0;
+    ['] [^']* ['] { return 0; }
+    *             { return 1; }
+    */
+}
+
+int main()
+{
+    assert(lex("'good'") == 0);
+    assert(lex("'bad") == 1);
+    return 0;
+}
+
+
+

The warning has turned into an error, as re2c is now certain that the code +contains an error.

+
$ re2c -Wsentinel-in-midrule example.re -oexample.c
+example.re:10:18: error: sentinel symbol 0 occurs in the middle of the rule [-Werror-sentinel-in-midrule]
+
+
+

The code can be fixed by excluding NULL from the set of symbols allowed in +the middle of the string: ['] [^'\x00]* [']. If it is necessary to allow +all symbols, a more powerful EOF handling method should be used.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/manual/warnings/swapped_range/wswapped_range.html b/manual/warnings/swapped_range/wswapped_range.html new file mode 100644 index 00000000..e24f945a --- /dev/null +++ b/manual/warnings/swapped_range/wswapped_range.html @@ -0,0 +1,78 @@ + + + + + + + + [-Wswapped-range] — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

[-Wswapped-range]¶

+

-Wswapped-range warning is reported in cases when a character class contains +a range which lower bound is greater than the upper bound. For some strange +reason older versions of re2c did not consider this an error and silently +swapped range bounds. Consider the following example (swapped.re):

+
1
+2
+3
+4
/*!re2c
+    *     { return "*"; }
+    [a-Z] { return "is it what you wanted?"; }
+*/
+
+
+

Re2c interprets this code as [Z-a], but generates a warning:

+
$ re2c -Wswapped-range swapped.re -o swapped.c
+swapped.re:3:5: warning: range lower bound (0x61) is greater than upper bound (0x5A), swapping [-Wswapped-range]
+
+
+

Use [-Werror-swapped-range] to make it an error.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/manual/warnings/undefined_control_flow/wundefined_control_flow.html b/manual/warnings/undefined_control_flow/wundefined_control_flow.html new file mode 100644 index 00000000..d5015de6 --- /dev/null +++ b/manual/warnings/undefined_control_flow/wundefined_control_flow.html @@ -0,0 +1,226 @@ + + + + + + + + [-Wundefined-control-flow] — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

[-Wundefined-control-flow]¶

+
+
+

With -Wundefined-control-flow warning re2c checks that every path in the +generated DFA contains at least one accepting state. When the input matches +such a path, lexer will eventually stop and execute the corresponding semantic +action. However, if some path has no accepting state, then lexer behavior is +undefined: it may loop forever, or read past the end of buffer, or jump to some +other semantic action by accident. For example, consider this simple piece of +code (a.re) that is supposed to match letter a:

+
1
+2
+3
/*!re2c
+    "a" { return 'a'; }
+*/
+
+
+

The generated code looks like this:

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
{
+        YYCTYPE yych;
+        if (YYLIMIT <= YYCURSOR) YYFILL(1);
+        yych = *YYCURSOR;
+        switch (yych) {
+        case 'a':       goto yy3;
+        default:        goto yy2;
+        }
+yy2:
+yy3:
+        ++YYCURSOR;
+        { return 'a'; }
+}
+
+
+

Clearly this is not what we want: this code matches any letter, not just a! +This happens because we did not specify any handler for the remaining input symbols. +If we run re2c with -Wundefined-control-flow, we will see that it complains about undefined control flow and recommends using default rule *:

+
a.re:3:2: warning: control flow is undefined for strings that match '[\x0-\x60\x62-\xFF]', use the default '*' rule  [-Wundefined-control-flow]
+
+
+

Let’s follow the advice and change the code:

+
1
+2
+3
+4
/*!re2c
+    *   { return '*'; }
+    "a" { return 'a'; }
+*/
+
+
+

Now the generated code looks much better:

+
 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
{
+        YYCTYPE yych;
+        if (YYLIMIT <= YYCURSOR) YYFILL(1);
+        yych = *YYCURSOR;
+        switch (yych) {
+        case 'a':       goto yy4;
+        default:        goto yy2;
+        }
+yy2:
+        ++YYCURSOR;
+        { return '*'; }
+yy4:
+        ++YYCURSOR;
+        { return 'a'; }
+}
+
+
+

Note that the default rule brings no overhead: it simply binds code to the +default label. It should always be used, unless you are absolutely sure that +your grammar covers all possible cases.

+
+

The old default rule¶

+

When the world was young and re2c didn’t have the default * rule (that is, +before re2c-0.13.7) everyone used [^] as the default rule, as in this +example (any.re):

+
1
+2
+3
+4
/*!re2c
+    // ... normal rules ...
+    [^] { return "any"; }
+*/
+
+
+

[^] is just an ordinary rule: it matches any character and has normal +priority (so it should be the last rule). If other rules didn’t match, [^] +will match and consume one character.

+

But exactly what is a character? First, an abstract number that is assigned +some sacred meaning within the current encoding — a code point. Second, a +minimal piece of information (say, combination of bits) that can represent a +unit of encoded text — a code unit. Rules are defined in terms of code points. +Input is measured in code units. In fixed-width encodings (such as ASCII, +EBCDIC, UCS-2, UTF-32, etc.), there is a one-to-one correspondence between code +points and code units. In variable-width encodings (such as UTF-8, UTF-16, +etc.), code points map to code unit sequences of different lengths.

+

The [^] rule matches any code point. In fixed-width encodings, it covers all +code units and consumes exactly one of them. In variable-width encodings, it +consumes variable number of code units and may not match some of them. The +example above compiles without warnings with any fixed-width encoding (ASCII by +default). However, with the UTF-8 encoding +`re2c -i8 -Wundefined-control-flow any.re` complains:

+
any.re:4:2: warning: control flow is undefined for strings that match
+        '[\x80-\xC1\xF5-\xFF]'
+        '\xF0 [\x0-\x8F\xC0-\xFF]'
+        '[\xE1-\xEF] [\x0-\x7F\xC0-\xFF]'
+        '\xF4 [\x0-\x7F\x90-\xFF]'
+        '\xE0 [\x0-\x9F\xC0-\xFF]'
+        '[\xF1-\xF3] [\x0-\x7F\xC0-\xFF]'
+        '[\xC2-\xDF] [\x0-\x7F\xC0-\xFF]'
+        '\xE0 [\xA0-\xBF] [\x0-\x7F\xC0-\xFF]'
+ ... and 7 more, use default rule '*' [-Wundefined-control-flow]
+
+
+

It shows us the patterns that must never appear in valid UTF-8 encoded text. If +the input is not valid UTF-8, lexer behavior is undefined. One would expect that +with UTF-16 (another variable-width encoding), re2c would also report a warning, +but it doesn’t. This is because by default, re2c treats Unicode surrogates as +normal code points (for backwards compatibility reasons). If we tell re2c to +exclude surrogates +(`re2c -ix --encoding-policy fail -Wundefined-control-flow`), then we will +get a warning:

+
any.re:4:2: warning: control flow is undefined for strings that match
+        '[\xDC00-\xDFFF]'
+        '[\xD800-\xDBFF] [\x0-\xDBFF\xE000-\xFFFF]'
+, use default rule '*' [-Wundefined-control-flow]
+
+
+

As you see, it can get quite subtle. A good advice is, always use default rule +*: it matches any code unit regardless of encoding, consumes a single code +unit no matter what and always has the lowest priority. Note that * is a +built-in hack: it cannot be expressed through ordinary rules.

+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/manual/warnings/unreachable_rules/wunreachable_rules.html b/manual/warnings/unreachable_rules/wunreachable_rules.html new file mode 100644 index 00000000..6c8cbdd1 --- /dev/null +++ b/manual/warnings/unreachable_rules/wunreachable_rules.html @@ -0,0 +1,111 @@ + + + + + + + + [-Wunreachable-rules] — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

[-Wunreachable-rules]¶

+

Sometimes the input grammar contains rules that will never match. This can +happen for two reasons. First, some rules may be shadowed by other rules that +match the same input, but have higher priority. Second, the rule itself may be +infinitely greedy: it may consume as many input characters as it can get and +never stop, and as a result never match. Both cases indicate a problem with +the grammar, and -Wunreachable-rules detects and reports such rules.

+

Let’s see an example of the first kind: shadowed rules (shadowed.re).

+
1
+2
+3
+4
+5
+6
+7
+8
/*!re2c
+    ""          { return ""; }
+    *           { return "*"; }
+    "a" | "b"   { return "a | b"; }
+    "a"         { return "a"; }
+    [\x00-\xFF] { return "[0 - 0xFF]"; }
+    [^]         { return "[^]"; }
+*/
+
+
+

In this example the empty rule "" never matches, because any single code +unit is matched by other rules, which take precedence due to the longerst match. +Rule "a" is shadowed by rule "a" | "b", which also matches a, but +takes precedence because it comes first. Similarly, rule [^] is shadowed by +rule [\x00-\xFF]. Default rule * is also shadowed, but it’s an exception +that is not reported (default case should always be handled). Shadowed rules +normally do not appear in the generated code: re2c removes them during its dead +code elimination pass.

+
$ re2c -Wunreachable-rules shadowed.re -o shadowed.c
+shadowed.re:2:16: warning: unreachable rule (shadowed by rules at lines 4, 6) [-Wunreachable-rules]
+shadowed.re:5:16: warning: unreachable rule (shadowed by rule at line 4) [-Wunreachable-rules]
+shadowed.re:7:16: warning: unreachable rule (shadowed by rules at lines 4, 6) [-Wunreachable-rules]
+
+
+

Now let’s see an example of second kind: infinitely greedy rule (greedy.re).

+
1
+2
+3
/*!re2c
+    [^]* { return "greeedy"; }
+*/
+
+
+

This rule will continue eating input characters until YYFILL fails, or until +it reads past the end of buffer and causes memory access violation.

+
$ re2c -Wunreachable-rules greedy.re -o greedy.c
+greedy.re:2:9: warning: unreachable rule  [-Wunreachable-rules]
+
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/manual/warnings/useless_escape/wuseless_escape.html b/manual/warnings/useless_escape/wuseless_escape.html new file mode 100644 index 00000000..8401f487 --- /dev/null +++ b/manual/warnings/useless_escape/wuseless_escape.html @@ -0,0 +1,133 @@ + + + + + + + + [-Wuseless-escape] — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

[-Wuseless-escape]¶

+

Sometimes people escape characters that don’t need to be escaped — either +because they (mistakenly) think that the character is special and must be +escaped in the given context, or because they think that this escape sequence +means something (when it actually doesn’t), or just by pure accident. With +-Wuseless-escape option re2c warns about ignored escapes. Consider this +example (escapes.re):

+
1
+2
+3
+4
+5
+6
/*!re2c
+    *                        {}
+    "\a\A\"\'\[\]\-\x5d\377" {}
+    '\a\A\"\'\[\]\-\x5d\377' {}
+    [\a\A\"\'\[\]\-\x5d\377] {}
+*/
+
+
+

Re2c reports a bunch of warnings:

+
$ re2c -Wuseless-escape escapes.re -o escapes.c
+escapes.re:3:7: warning: escape has no effect: '\A' [-Wuseless-escape]
+escapes.re:3:11: warning: escape has no effect: '\'' [-Wuseless-escape]
+escapes.re:3:13: warning: escape has no effect: '\[' [-Wuseless-escape]
+escapes.re:3:15: warning: escape has no effect: '\]' [-Wuseless-escape]
+escapes.re:3:17: warning: escape has no effect: '\-' [-Wuseless-escape]
+escapes.re:4:7: warning: escape has no effect: '\A' [-Wuseless-escape]
+escapes.re:4:9: warning: escape has no effect: '\"' [-Wuseless-escape]
+escapes.re:4:13: warning: escape has no effect: '\[' [-Wuseless-escape]
+escapes.re:4:15: warning: escape has no effect: '\]' [-Wuseless-escape]
+escapes.re:4:17: warning: escape has no effect: '\-' [-Wuseless-escape]
+escapes.re:5:7: warning: escape has no effect: '\A' [-Wuseless-escape]
+escapes.re:5:9: warning: escape has no effect: '\"' [-Wuseless-escape]
+escapes.re:5:11: warning: escape has no effect: '\'' [-Wuseless-escape]
+escapes.re:5:13: warning: escape has no effect: '\[' [-Wuseless-escape]
+
+
+

This is because the \A and \[ escapes are meaningless in all rules, +\- makes sense only in a character class, +and each type of closing quotes (", ' and ]) should only be escaped inside of a string delimited with the same quotes. +Useless escapes are ignored: the escaped symbol is treated as not escaped (\A becomes A, etc.). +The above example should be fixed as follows:

+
1
+2
+3
+4
+5
+6
/*!re2c
+    *                    {}
+    "\aA\"'[]-\x5d\377"  {}
+    '\aA"\'[]-\x5d\377'  {}
+    [\aA"'[\]\-\x5d\377] {}
+*/
+
+
+

More generally, re2c recognizes escapes in the following lexemes:

+
    +
  • double-quoted strings " ... "
  • +
  • single-quoted strings ' ... '
  • +
  • character classes [ ... ] and [^ ... ]
  • +
+

The following escapes are recognized:

+
    +
  • Closing quotes (\" for double-quoted strings, \' for single-quoted strings, and \] for character classes).
  • +
  • Dash \- in character classes.
  • +
  • Octal escapes: \ooo, where o is in range [0 - 7] +(the largest octal escape is \377, which equals 0xFF).
  • +
  • Hexadecimal escapes: \xhh, \Xhhhh, \uhhhh, and \Uhhhhhhhh, +where h is in range [0 - 9], [a - f], or [A - F].
  • +
  • Miscellaneous escapes: \a, \b, \f, \n, \r, \t, \v, \\.
  • +
+

Ill-formed octal and hexadecimal escapes are treated as errors. +An escape followed by a newline is also an error: multiline strings and character classes are not allowed. +Any other ill-formed escapes are ignored.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/objects.inv b/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..2fb695661130d00a2cc508a55c9f96995e54880a GIT binary patch literal 3328 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 + + + + + + Fast submatch extraction — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Fast submatch extraction¶

+

by Ulya Trofimovich

+

This article is an informal description +of the novel algorithm +used in re2c-1.0 +to implement submatch extraction. +It tries to explain what is it so complex about this seemingly simple problem, +why re2c has such a strange interface, +and how tags are related to the familiar capturing groups used by other regular expression engines.

+
+

Introduction¶

+

Regular expressions is a syntactic notation for describing sets. +Usually it is assumed that these sets contain strings — sequences of characters over some fixed alphabet. +This is known as the language interpretation of regular expressions. +For example, a^*b^* denotes language L that contains all strings +composed by a sequence of a followed by a sequence of b. +Special symbol \epsilon means “empty string”:

+
+

L(a^*b^*) = \{\epsilon, a, b, aa, ab, bb, ...\}

+

Regular expressions is one possible way of describing regular languages — +the class of languages generated by Type 3 grammars in the Chomsky hierarchy. +For every regular expression there is an equivalent Type 3 grammar that generates the same language and vice versa. +For example, the above language L can be generated by the grammar G = (V_T, V_N, R, S):

+
+

\text{alphabet of terminals:} &\quad     V_T = \{ a, b \} \\
+\text{alphabet of non-terminals:} &\quad V_N = \{ A, B \} \\
+\text{production rules:} &\quad          R = \{
+A \rightarrow aA | bB | a | b | \epsilon,
+B \rightarrow bB | b
+\} \\
+\text{start symbol:} &\quad S = A

+

It is often said that regular expressions are used for matching strings. +But what exactly is matching? +In the narrow sense of the word it means recognition: +deciding if the given string belongs to the language denoted by the regular expression. +For example, aaabb \in L, but aba \not\in L. +In the broad sense of the word matching means parsing: +besides solving the membership problem +it is also necessary to find the derivation — the sequence of grammar rules that transform start symbol into the input string. +Derivation gives more information than a simple membership test +because it reconstructs the structure of the input string. +For example, aaabb is derived as follows in the grammar G:

+
+

A
+\rightarrow aA
+\rightarrow aaA
+\rightarrow aaaA
+\rightarrow aaabB
+\rightarrow aaabb

+

There is no exact analogue of “derivation” in terms of regular expressions, +as their primary application is recognition, not parsing. +Yet sometimes it is convenient to know which part of the input string +corresponds to a particular part of the regular expression — +the problem known as submatch extraction. +In our example one might want to know the substrings corresponding to a^* and b^*; +this is usually denoted with the help of capturing parentheses: (a^*)(b^*). +Submatch extraction is similar to parsing: +in order to find submatch boundaries we need to know a bit of the input structure. +However, unlike parsing, there is no need to reconstruct the full structure down to each character.

+
+

\underbrace{aaa}_{a^*} \underbrace{bb}_{b^*}

+

Recognition problem can be solved by converting the regular expression to a nondeterministic finite automaton (NFA) +or an equivalent deterministic finite automaton (DFA). +Parsing and submatch extraction are inherently more complex than recognition, +and they require a more complex type of automata: nondeterministic finite state transducers (NFST). +Unlike NFA, NFST are strictly more powerful than their deterministic analogues (DFST): +it is possible to perform determinization, but the resulting automaton is of a more sophisticated type than DFST.

+
+
+

Recognition¶

+../../_images/nfa_simple.png +

aaaa

+../../_images/nfa.png +

aaaa

+../../_images/dfa_raw.png +

aaaaa

+../../_images/dfa.png +

aaaa

+../../_images/dfa_min.png +

Recognition problem can be solved by converting the regular expression to a nondeterministic finite automaton (NFA) +and simulating NFA moves on the input string. +Simulation takes linear time, but since the automaton is nondeterministic, +it is necessary to track many possible paths simultaneously. +Alternatively, one can convert NFA to an equivalent deterministic finite automaton (DFA), +which also runs in linear time, but is much faster then NFA — there is only one possible path to track. +The determinization procedure is quite complex; +in the worst case it may take exponential time and generate a very large DFA. +Therefore determinization is only worthwile +if it can be performed ahead of time (in lexer generators like re2c), +or if the same regular expression is used multiple times. +Some engines try to get the best of both worlds by using lazy determinization: +NFA simulation with memoization of all intermediate states.

+

In terms of NFA “derivation” means “path”, +and parsing means finding this path — a chain of transitions from initial state to final state which spells the input string. +This cannot be done by the means of traditional NFA, +as the only output they produce is a yes/no answer: +simulation either ends in a final state or not. +In order to remember the path automaton must be able to record its moves. +Such automata are known as nondeterministic finite state transducers (NFST): +they are like ordinary NFA extended with an output tape +and transitions that not only read symbols from the input string, but also write symbols on the output tape. +Unlike NFA, NFST cannot be always converted to DFST: nondeterminisitc transducers are strictly more powerful. +However, it is possible to turn NFST into a more complex type of determinisitc automata. +Devising and constructing such automata is the main challenge of parsing and submatch extraction.

+
+
+

The difficulty with DFA¶

+
+
+

Dangerous trailing contexts¶

+

The challenge of implementing submatch extraction in lexer generators like re2c is not immediately obvious.

+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/changelog/changelog.html b/releases/changelog/changelog.html new file mode 100644 index 00000000..9268dacb --- /dev/null +++ b/releases/changelog/changelog.html @@ -0,0 +1,1299 @@ + + + + + + + + Changelog — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Changelog¶

+
+

1.2x¶

+
+

1.2.1 (2019-08-11)¶

+
    +
  • Fixed bug #253: +re2c should install unicode_categories.re somewhere.
  • +
  • Fixed bug #254: +Turn off re2c:eof = 0.
  • +
+
+
+

1.2 (2019-08-02)¶

+
    +
  • Added EOF rule $ and configuration re2c:eof.
  • +
  • Added /*!include:re2c ... */ directive and -I option.
  • +
  • Added /*!header:re2c:on*/ and /*!header:re2c:off*/ directives.
  • +
  • Added --input-encoding <ascii | utf8> option.
      +
    • #237: +Handle non-ASCII encoded characters in regular expressions
    • +
    • #250 +UTF8 enoding
    • +
    +
  • +
  • Added include file with a list of definitions for Unicode character classes.
      +
    • #235: +Unicode character classes
    • +
    +
  • +
  • Added --location-format <gnu | msvc> option.
      +
    • #195: +Please consider using Gnu format for error messages
    • +
    +
  • +
  • Added --verbose option that prints “success” message if re2c exits +without errors.
  • +
  • Added configurations for options:
      +
    • -o --output (specify output file)
    • +
    • -t --type-header (specify header file)
    • +
    +
  • +
  • Removed configurations for internal/debug options.
  • +
  • Extended -r option: allow to mix multiple /*!rules:re2c*/, +/*!use:re2c*/ and /*!re2c*/ blocks.
      +
    • #55: +allow standard re2c blocks in reuse mode
    • +
    +
  • +
  • Fixed -F --flex-support option: parsing and operator precedence.
      +
    • #229: +re2c option -F (flex syntax) broken
    • +
    • #242: +Operator precedence with –flex-syntax is broken
    • +
    +
  • +
  • Changed difference operator / to apply before encoding expansion of +operands.
      +
    • #236: +Support range difference with variable-length encodings
    • +
    +
  • +
  • Changed output generation of output file to be atomic.
      +
    • #245: +re2c output is not atomic
    • +
    +
  • +
  • Authored research paper “Efficient POSIX Submatch Extraction on NFA” +together with Dr Angelo Borsotti.
  • +
  • Added experimental libre2c library (--enable-libs configure option) with +the following algorithms:
      +
    • TDFA with leftmost-greedy disambiguation
    • +
    • TDFA with POSIX disambiguation (Okui-Suzuki algorithm)
    • +
    • TNFA with leftmost-greedy disambiguation
    • +
    • TNFA with POSIX disambiguation (Okui-Suzuki algorithm)
    • +
    • TNFA with lazy POSIX disambiguation (Okui-Suzuki algorithm)
    • +
    • TNFA with POSIX disambiguation (Kuklewicz algorithm)
    • +
    • TNFA with POSIX disambiguation (Cox algorithm)
    • +
    +
  • +
  • Added debug subsystem (--enable-debug configure option) and new debug +options:
      +
    • -dump-cfg (dump control flow graph of tag variables)
    • +
    • -dump-interf (dump interference table of tag variables)
    • +
    • -dump-closure-stats (dump epsilon-closure statistics)
    • +
    +
  • +
  • Added internal options:
      +
    • --posix-closure <gor1 | gtop> (switch between shortest-path algorithms +used for the construction of POSIX closure)
    • +
    +
  • +
  • Fixed a number of crashes found by American Fuzzy Lop fuzzer: +
  • +
  • Fixed handling of newlines:
      +
    • correctly parse multi-character newlines CR LF in #line directives
    • +
    • consistently convert all newlines in the generated file to Unix-style LF
    • +
    +
  • +
  • Changed default tarball format from .gz to .xz.
      +
    • #221: +big source tarball
    • +
    +
  • +
  • Fixed a number of other bugs and resolved issues:
      +
    • #2: abort
    • +
    • #6: segfault
    • +
    • #10: +lessons/002_upn_calculator/calc_002 doesn’t produce a useful example program
    • +
    • #44: +Access violation when translating the attached file
    • +
    • #49: +wildcard state 000 rules makes lexer behave weard
    • +
    • #98: +Transparent handling of #line directives in input files
    • +
    • #104: +Improve const-correctness
    • +
    • #105: +Conversion of pointer parameters into references
    • +
    • #114: +Possibility of fixing bug 2535084
    • +
    • #120: +condition consisting of default rule only is ignored
    • +
    • #167: +Add word boundary support
    • +
    • #168: +Wikipedia’s article on re2c
    • +
    • #180: +Comment syntax?
    • +
    • #182: +yych being set by YYPEEK () and then not used
    • +
    • #196: +Implicit type conversion warnings
    • +
    • #198: +no match for ‘operator!=’ in ‘i != std::vector<_Tp, _Alloc>::rend() [with _Tp = re2c::bitmap_t, _Alloc = std::allocator<re2c::bitmap_t>]()’
    • +
    • #210: +How to build re2c in windows?
    • +
    • #215: +A memory read overrun issue in s_to_n32_unsafe.cc
    • +
    • #220: +src/dfa/dfa.h: simplify constructor to avoid g++-3.4 bug
    • +
    • #223: +Fix typo
    • +
    • #224: +src/dfa/closure_posix.cc: pack() tweaks
    • +
    • #225: +Documentation link is broken in libre2c/README
    • +
    • #230: +Changes for upcoming Travis’ infra migration
    • +
    • #239: +Push model example has wrong re2c invocation, breaks guide
    • +
    • #241: +Guidance on how to use re2c for full-duplex command & response protocol
    • +
    • #243: +A code generated for period (.) requires 4 bytes
    • +
    • #246: +Please add a license to this repo
    • +
    • #247: +Build failure on current Cygwin, probably caused by force-fed c++98 mode
    • +
    • #248: +distcheck still looks for README
    • +
    • #251: +Including what you use is find, but not without inclusion guards
    • +
    +
  • +
  • Updated documentation and website.
  • +
+
+
+
+

1.1x¶

+
+

1.1.1 (2018-08-30)¶

+
    +
  • Fixed bug #211: +re2c -V throws std::out_of_range (version to vernum conversion).
  • +
+
+
+

1.1 (2018-08-27)¶

+
    +
  • Replaced Kuklewicz POSIX disambiguation algorithm with Okui algorithm.
  • +
  • Optimized GOR1 algorithm (computation of tagged epsilon-closure).
  • +
  • Added option --conditions (an alias for -c --start-conditions).
  • +
  • Fixed bug #201: +Bugs with option: re2c:flags:no-debug-info.
  • +
  • Reworked first part of TDFA paper.
  • +
+
+
+
+

1.0x¶

+
+

1.0.3 (2017-11-08)¶

+
    +
  • Fixed bug #198: +build error on MacOS with GCC-4.2.1
  • +
+
+
+

1.0.2 (2017-08-26)¶

+
    +
  • Fixed bug #194: +Build with --enable-docs
  • +
  • Updated documentation.
  • +
+
+
+

1.0.1 (2017-08-11)¶

+
    +
  • Fixed bug #193: +1.0 build failure on macOS: error: calling a private constructor of class +‘re2c::Rule’
  • +
  • Added paper “Tagged Deterministic Finite Automata with Lookahead” to the +distribution files.
  • +
+
+
+

1.0 (2017-08-11)¶

+
    +
  • Added options:
      +
    • -P --posix-captures (POSIX-compliant capturing groups)
    • +
    • -T --tags (standalone tags with leftmost greedy disambiguation)
    • +
    • --no-lookahead
    • +
    • --no-optimize-tags
    • +
    • --eager-skip
    • +
    • --dump-nfa
    • +
    • --dump-dfa-raw
    • +
    • --dump-dfa-det
    • +
    • --dump-dfa-tagopt
    • +
    • --dump-dfa-min
    • +
    • --dump-adfa
    • +
    +
  • +
  • Added new syntax:
      +
    • @<stag>
    • +
    • #<mtag>
    • +
    +
  • +
  • Added new directives:
      +
    • /*!stags:re2c ... */
    • +
    • /*!mtags:re2c ... */
    • +
    • /*!maxnmatch:re2c ... */
    • +
    +
  • +
  • Added new API:
      +
    • YYSTAGN (t)
    • +
    • YYSTAGP (t)
    • +
    • YYMTAGN (t)
    • +
    • YYMTAGP (t)
    • +
    • YYRESTORETAG (t)
    • +
    • YYMAXNMATCH
    • +
    • yynmatch
    • +
    • yypmatch
    • +
    +
  • +
  • Added inplace confgurations:
      +
    • re2c:define:YYSTAGN
    • +
    • re2c:define:YYSTAGP
    • +
    • re2c:define:YYMTAGN
    • +
    • re2c:define:YYMTAGP
    • +
    • re2c:define:YYRESTORETAG
    • +
    • re2c:flags:8 or re2c:flags:utf-8``
    • +
    • re2c:flags:b or re2c:flags:bit-vectors
    • +
    • re2c:flags:case-insensitive
    • +
    • re2c:flags:case-inverted
    • +
    • re2c:flags:d or re2c:flags:debug-output
    • +
    • re2c:flags:dfa-minimization
    • +
    • re2c:flags:eager-skip
    • +
    • re2c:flags:e or re2c:flags:ecb
    • +
    • re2c:flags:empty-class
    • +
    • re2c:flags:encoding-policy
    • +
    • re2c:flags:g or re2c:flags:computed-gotos
    • +
    • re2c:flags:i or re2c:flags:no-debug-info
    • +
    • re2c:flags:input
    • +
    • re2c:flags:lookahead
    • +
    • re2c:flags:optimize-tags
    • +
    • re2c:flags:P or re2c:flags:posix-captures
    • +
    • re2c:flags:s or re2c:flags:nested-ifs
    • +
    • re2c:flags:T or re2c:flags:tags
    • +
    • re2c:flags:u or re2c:flags:unicode
    • +
    • re2c:flags:w or re2c:flags:wide-chars
    • +
    • re2c:flags:x or re2c:flags:utf-16
    • +
    • re2c:tags:expression
    • +
    • re2c:tags:prefix
    • +
    +
  • +
  • Added warning -Wnondeterministic-tags.
  • +
  • Added fuzz-testing scripts
  • +
  • Added paper “Tagged Deterministic Finite Automata with Lookahead”.
  • +
  • Fixed bugs:
      +
    • #121: +trailing contexts are fundamentally broken
    • +
    • #135: +In installation make check give syntax error
    • +
    • #137: +run_tests.sh fail when running configure script with absolute path
    • +
    • #138: +website improvement
    • +
    • #141: +Tests under Windows
    • +
    • #142: +segvault with null terminated input
    • +
    • #145: +Values for enum YYCONDTYPE are not generated when default rules with conditions are used
    • +
    • #147: +Please add symbol name to “can’t find symbol” error message
    • +
    • #152: +Line number in #line directive after enum YYCONDTYPE is 0-based
    • +
    • #156: +Build with Visual Studio 14 2015: symbol name conflict
    • +
    • #158: +Inconsistent forward declaration of struct/class vs definition
    • +
    • #160: +Open text files with “wb” causes issues on Windows
    • +
    • #162: +Reading files with “rb” causes issues in Windows
    • +
    • #165: +Trailing context consumed if initial expression matches it
    • +
    • #176: +re2c help message is too wide for most terminals
    • +
    • #184: +Small documentation issue
    • +
    • #186: +Difference operator sometimes doesn’t work with utf-8
    • +
    +
  • +
  • Merged pull requests:
      +
    • #131: +Use bash-specific [[ builtin
    • +
    • #136: +Added basic support for travis-ci.org integration
    • +
    • #171: +Typo fix
    • +
    • #172: +Grammar fixes in the docs
    • +
    • #173: +Grammar fixes in the manpage
    • +
    • #174: +more documentation fixes
    • +
    • #175: +more manpage fixes
    • +
    • #177: +sync –help output w/ manpage
    • +
    • #178: +Moves rts used in the manpage to master
    • +
    • #179: +compose manpage out of rsts from gh-pages-gen
    • +
    • #189: +Typo fix and small grammatical change
    • +
    • #191: +Makefile.am: create target directory before writing into it
    • +
    +
  • +
+
+
+
+

0.16x¶

+
+

0.16 (2016-01-21)¶

+
    +
  • Fixed bug #127: +code generation error with wide chars and bitmaps (omitted goto statement)
  • +
  • Added DFA minimization and option --dfa-minimization <table | moore>
  • +
  • Fixed bug #128: +very slow DFA construction (resulting in a very large DFA)
  • +
  • Fixed bug #132: +test failure on big endian archs with 0.15.3
  • +
+
+
+
+

0.15x¶

+
+

0.15.3 (2015-12-02)¶

+
    +
  • Fixed bugs and applied patches:
      +
    • #122: +clang does not compile re2c 0.15.x
    • +
    • #124: +Get rid of UINT32_MAX and friends
    • +
    • #125: +[OS X] git reports changes not staged for commit in newly cloned repository
    • +
    +
  • +
  • Added option --no-version that allows to omit version information.
  • +
  • Reduced memory and time consumed with -Wundefined-control-flow.
  • +
  • Improved coverage of input data generated with -S --skeleton.
  • +
+
+
+

0.15.2 (2015-11-23)¶

+ +
+
+

0.15.1 (2015-11-22)¶

+
    +
  • Fixed test failures caused by locale-sensitive ‘sort’.
  • +
+
+
+

0.15 (2015-11-22)¶

+
    +
  • Updated website http://re2c.org:
      +
    • added examples
    • +
    • updated docs
    • +
    • added news
    • +
    • added web feed (Atom 1.0)
    • +
    +
  • +
  • Added options:
      +
    • -S, --skeleton
    • +
    • --empty-class <match-empty | match-none | error>
    • +
    +
  • +
  • Added warnings:
      +
    • -W
    • +
    • -Werror
    • +
    • -W<warning>
    • +
    • -Wno-<warning>
    • +
    • -Werror-<warning>
    • +
    • -Wno-error-<warning>
    • +
    +
  • +
  • Added specific warnings:
      +
    • -Wundefined-control-flow
    • +
    • -Wunreachable-rules
    • +
    • -Wcondition-order
    • +
    • -Wuseless-escape
    • +
    • -Wempty-character-class
    • +
    • -Wswapped-range
    • +
    • -Wmatch-empty-string
    • +
    +
  • +
  • Fixed options:
      +
    • -- (interpret remaining arguments as non-options)
    • +
    +
  • +
  • Deprecated options:
      +
    • -1 --single-pass (single pass is the default now)
    • +
    +
  • +
  • Reduced size of the generated .dot files.
  • +
  • Fixed bugs:
      +
    • #27: +re2c crashes reading files containing %{ %} (patch by Rui)
    • +
    • #51: +default rule doesn’t work in reuse mode
    • +
    • #52: +eliminate multiple passes
    • +
    • #59: +bogus yyaccept in -c mode
    • +
    • #60: +redundant use of YYMARKER
    • +
    • #61: +empty character class [] matches empty string
    • +
    • #115: +flex-style named definitions cause ambiguity in re2c grammar
    • +
    • #119: +-f with -b/-g generates incorrect dispatch on fill labels
    • +
    • #116: +empty string with non-empty trailing context consumes code units
    • +
    +
  • +
  • Added test options:
      +
    • -j, -j <N> (run tests in N threads, defaults to the number of CPUs)
    • +
    • --wine (test windows builds using wine)
    • +
    • --skeleton (generate skeleton programs, compile and execute them)
    • +
    • --keep-tmp-files (don’t delete intermediate files for successful tests)
    • +
    +
  • +
  • Updated build system:
      +
    • support out of source builds
    • +
    • support `make distcheck`
    • +
    • added `make bootstrap` (rebuild re2c after building with precompiled +.re files)
    • +
    • added `make tests` (run tests with -j)
    • +
    • added `make vtests` (run tests with --valgrind -j)
    • +
    • added `make wtests` (run tests with --wine -j 1)
    • +
    • added Autoconf tests for CXXFLAGS. By default try the following options: +-W -Wall -Wextra -Weffc++ -pedantic -Wformat=2 -Wredundant-decls +-Wsuggest-attribute=format -Wconversion -Wsign-conversion -O2 -Weverything), +respect user-defined CXXFLAGS
    • +
    • support Mingw builds: `configure -host i686-w64-mingw32`
    • +
    • structured source files
    • +
    • removed old MSVC files
    • +
    +
  • +
  • Moved development to github (https://github.com/skvadrik/re2c), +keep a mirror on sourceforge.
  • +
+
+
+
+

0.14x¶

+
+

0.14.3 (2015-05-20)¶

+
    +
  • applied patch #27: +re2c crashes reading files containing %{ %}
  • +
  • dropped distfiles for MSVC (they are broken anyway)
  • +
+
+
+

0.14.2 (2015-03-25)¶

+
    +
  • fixed #57: +Wrong result only if another rule is present
  • +
+
+
+

0.14.1 (2015-02-27)¶

+
    +
  • fixed #55: +re2c-0.14: re2c -V outputs null byte
  • +
+
+
+

0.14 (2015-02-23)¶

+
    +
  • Added generic input API
      +
    • #21: +Support to configure how re2c code interfaced with the symbol buffer?”
    • +
    +
  • +
  • fixed #46: +re2c generates an infinite loop, depends on existence of previous parser
  • +
  • fixed #47: +Dot output label escaped characters
  • +
+
+
+
+

0.13x¶

+
+

0.13.7.5 (2014-08-22)¶

+ +
+
+

0.13.7.4 (2014-07-29)¶

+
    +
  • Enabled make docs only if configured with --enable-docs
  • +
  • Disallowed to use yacc/byacc instead of bison to build parser
  • +
  • Removed non-portable sed feature in script that runs tests
  • +
+
+
+

0.13.7.3 (2014-07-27)¶

+
    +
  • Fixed CXX warning
  • +
  • Got rid of asciidoc build-time dependency
  • +
+
+
+

0.13.7.2 (2014-07-27)¶

+
    +
  • Included man page into dist, respect users CXXFLAGS.
  • +
+
+
+

0.13.7.1 (2014-07-26)¶

+
    +
  • Added missing files to tarball
  • +
+
+
+

0.13.7 (2014-07-25)¶

+
    +
  • Added UTF-8 support
  • +
  • Added UTF-16 support
  • +
  • Added default rule
  • +
  • Added option to control ill-formed Unicode
  • +
+
+
+

0.13.6 (2013-07-04)¶

+
    +
  • Fixed #2535084 uint problem with Sun C 5.8
  • +
  • #3308400: allow Yacc-style %{ code brackets }%
  • +
  • #2506253: allow C++ // comments
  • +
  • Fixed inplace configuration in -e mode.
  • +
  • Applied #2482572 Typos in error messages.
  • +
  • Applied #2482561 Error in manual section on -r mode.
  • +
  • Fixed #2478216 Wrong start_label in -c mode.
  • +
  • Fixed #2186718 Unescaped backslash in file name of #line directive.
  • +
  • Fixed #2102138 Duplicate case labels on EBCDIC.
  • +
  • Fixed #2088583 Compile problem on AIX.
  • +
  • Fixed #2038610 Ebcdic problem.
  • +
  • improve dot support: make char intervals (e.g. [A-Z]) instead of one edge +per char
  • +
+
+
+

0.13.5 (2008-05-25)¶

+
    +
  • Fixed #1952896 Segfault in re2c::Scanner::scan.
  • +
  • Fixed #1952842 Regression.
  • +
+
+
+

0.13.4 (2008-04-05)¶

+
    +
  • Added transparent handling of #line directives in input files.
  • +
  • Added re2c:yyfill:check inplace configuration.
  • +
  • Added re2c:define:YYSETSTATE:naked inplace configuration.
  • +
  • Added re2c:flags:w and re2c:flags:u inplace configurations.
  • +
  • Added the ability to add rules in use:re2c blocks.
  • +
  • Changed -r flag to accept only rules:re2c and use:re2c blocks.
  • +
+
+
+

0.13.3 (2008-03-14)¶

+
    +
  • Added -r flag to allow reuse of scanner definitions.
  • +
  • Added -F flag to support flex syntax in rules.
  • +
  • Fixed SEGV in scanner that occurs with very large blocks.
  • +
  • Fixed issue with unused yybm.
  • +
  • Partial support for flex syntax.
  • +
  • Changed to allow /* comments with -c switch.
  • +
  • Added flag -D/--emit-dot.
  • +
+
+
+

0.13.2 (2008-02-14)¶

+
    +
  • Added flag --case-inverted.
  • +
  • Added flag --case-insensitive.
  • +
  • Added support for <!...> to enable rule setup.
  • +
  • Added support for => style rules.
  • +
  • Added support for := style rules.
  • +
  • Added support for :=> style rules.
  • +
  • Added re2c:cond:divider and re2c:cond:goto inplace configuration.
  • +
  • Fixed code generation to emit space after if.
  • +
+
+
+

0.13.1 (2007-08-24)¶

+
    +
  • Added custom build rules for Visual Studio 2005 (re2c.rules). +(William Swanson)
  • +
  • Fixed issue with some compilers.
  • +
  • Fixed #1776177 Build on AIX.
  • +
  • Fixed #1743180 fwrite with 0 length crashes on OS X.
  • +
+
+
+

0.13.0 (2007-06-24)¶

+
    +
  • Added -c and -t to generate scanners with (f)lex-like condition +support.
  • +
  • Fixed issue with short form of switches and parameter if not first switch.
  • +
  • Fixed #1708378 segfault in actions.cc.
  • +
+
+
+
+

0.12x¶

+
+

0.12.3 (2007-08-24)¶

+
    +
  • Fixed issue with some compilers.
  • +
  • Fixed #1776177 Build on AIX.
  • +
  • Fixed #1743180 fwrite with 0 length crashes on OS X.
  • +
+
+
+

0.12.2 (2007-06-26)¶

+
    +
  • Fixed #1743180 fwrite with 0 length crashes on OS X.
  • +
+
+
+

0.12.1 (2007-05-23)¶

+
    +
  • Fixed #1711240 problem with " and 7F on EBCDIC plattforms.
  • +
+
+
+

0.12.0 (2007-05-01)¶

+
    +
  • Re-release of 0.11.3 as new stable branch.
  • +
  • Fixed issue with short form of switches and parameter if not first switch.
  • +
  • Fixed #1708378 segfault in actions.cc.
  • +
  • re2c 0.12.0 has been tested with the following compilers:
      +
    • gcc version 4.1.2 (Gentoo 4.1.2)
    • +
    • gcc version 4.1.2 20070302 (prerelease) (4.1.2-1mdv2007.1)
    • +
    • gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
    • +
    • gcc version 4.1.1 20070105 (Red Hat 4.1.1-51)
    • +
    • gcc version 4.1.0 (SUSE Linux 10)
    • +
    • gcc version 4.0.3 (4.0.3-0.20060215.2mdk for Mandriva Linux release 2006.1)
    • +
    • gcc version 4.0.2 20050901 (prerelease) (SUSE Linux) (32 + 64 bit)
    • +
    • MacPPC, gcc version 4.0.1 (Apple Computer, Inc. build 5367)
    • +
    • MacIntel, gcc version 4.0.1 (Apple Computer, Inc. build 5250)
    • +
    • gcc version 3.4.4 [FreeBSD] 20050518 (32 + 64 bit)
    • +
    • gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
    • +
    • gcc version 3.4.2 [FreeBSD]
    • +
    • gcc version 3.3.5 20050117 (prerelease) (SUSE Linux)
    • +
    • gcc version 3.3.3 (PPC, 32 + 64 bit)
    • +
    • Microsoft (R) C/C++ Optimizing Compiler Version 14.00.50727.762 for x64 (64 bit)
    • +
    • Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86 (Microsoft Visual C++ 2005)
    • +
    • Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86 (Mictosoft Visual C++ 2003)
    • +
    • Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.00.9466 for 80x86 (Microsoft Visual C++ 2002)
    • +
    • Intel(R) C++ Compiler for 32-bit applications, Version 9.1 Build 20070322Z Package ID: W_CC_C_9.1.037
    • +
    • Intel(R) C++ Compiler for Intel(R) EM64T-based applications, Version 9.1 (64 bit)
    • +
    • icpcbin (ICC) 9.1 20070215
    • +
    • CC: Sun C++ 5.8 2005/10/13 (CXXFLAGS='-library=stlport4')
    • +
    • MIPSpro Compilers: Version 7.4.4m (32 + 64 bit)
    • +
    • aCC: HP C/aC++ B3910B A.06.15 [Mar 28 2007] (HP-UX IA64)
    • +
    +
  • +
+
+
+
+

0.11x¶

+
+

0.11.3 (2007-04-01)¶

+
    +
  • Added support for underscores in named definitions.
  • +
  • Added new option --no-generation-date.
  • +
  • Fixed issue with long form of switches.
  • +
+
+
+

0.11.2 (2007-03-01)¶

+
    +
  • Added inplace configuration re2c:yyfill:parameter.
  • +
  • Added inplace configuration re2c:yych:conversion.
  • +
  • Fixed -u switch code generation.
  • +
  • Added ability to avoid defines and overwrite generated variable names.
  • +
+
+
+

0.11.1 (2007-02-20)¶

+
    +
  • Applied #1647875 Add const to yybm vector.
  • +
+
+
+

0.11.0 (2007-01-01)¶

+
    +
  • Added -u switch to support unicode.
  • +
+
+
+
+

0.10x¶

+
+

0.10.8 (2007-04-01)¶

+
    +
  • Fixed issue with long form of switches.
  • +
+
+
+

0.10.7 (2007-02-20)¶

+
    +
  • Applied #1647875 Add const to yybm vector.
  • +
+
+
+

0.10.6 (2006-08-05)¶

+
    +
  • Fixed #1529351 Segv bug on unterminated code blocks.
  • +
  • Fixed #1528269 Invalid code generation.
  • +
+
+
+

0.10.5 (2006-06-11)¶

+
    +
  • Fixed long form of -1 switch to --single-pass as noted in man page +and help.
  • +
  • Added MSVC 2003 project files and renamed old 2002 ones.
  • +
+
+
+

0.10.4 (2006-06-01)¶

+
    +
  • Fix whitespace in generated code.
  • +
+
+
+

0.10.3 (2006-05-14)¶

+
    +
  • Fixed issue with -wb and -ws.
  • +
  • Added -g switch to support gcc’s computed goto’s.
  • +
  • Changed to use nested if’s instead of switch(yyaccept) in -s mode.
  • +
+
+
+

0.10.2 (2006-05-01)¶

+
    +
  • Changed to generate YYMARKER only when needed or in single pass mode.
  • +
  • Added -1 switch to force single pass generation and make two pass the +default.
  • +
  • Fixed -i switch.
  • +
  • Added configuration yyfill:enable to allow suppression of YYFILL() +blocks.
  • +
  • Added tutorial like lessons to re2c.
  • +
  • Added /*!ignore:re2c */ to support documenting of re2c source.
  • +
  • Fixed issue with multiline re2c comments (/*!max:re2c ... */ and alike).
  • +
  • Fixed generation of YYDEBUG() when using -d switch.
  • +
  • Added /*!getstate:re2c */ which triggers generation of the +YYGETSTATE() block.
  • +
  • Added configuration state:abort.
  • +
  • Changed to not generate yyNext unless configuration state:nextlabel is +used.
  • +
  • Changed to not generate yyaccept code unless needed.
  • +
  • Changed to use if instead of switch expression when yyaccpt has +only one case.
  • +
  • Added docu, examples and tests to .src.zip package (0.10.1 zip was +repackaged).
  • +
  • Fixed #1479044 incorrect code generated when using -b.
  • +
  • Fixed #1472770 re2c creates an infinite loop.
  • +
  • Fixed #1454253 Piece of code saving a backtracking point not generated.
  • +
  • Fixed #1463639 Missing forward declaration.
  • +
  • Implemented #1187127 savable state support for multiple re2c blocks.
  • +
  • re2c 0.10.2 has been tested with the following compilers:
      +
    • gcc (GCC) 4.1.0 (Gentoo 4.1.0)
    • +
    • gcc version 4.0.3 (4.0.3-0.20060215.2mdk for Mandriva Linux release 2006.1)
    • +
    • gcc version 4.0.2 20050901 (prerelease) (SUSE Linux)
    • +
    • gcc (GCC) 3.4.5 (Gentoo 3.4.5, ssp-3.4.5-1.0, pie-8.7.9)
    • +
    • gcc version 3.4.4 [FreeBSD] 20050518
    • +
    • gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
    • +
    • gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)
    • +
    • gcc-Version 3.3.5 (Debian 1:3.3.5-13)
    • +
    • gcc-Version 3.3.0 (mips-sgi-irix6.5/3.3.0/specs)
    • +
    • MIPSpro Compilers: Version 7.4.4m
    • +
    • Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for +80x86 (Microsoft Visual C++ 2005)
    • +
    • Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86 +(Mictosoft Visual C++ 2003)
    • +
    • Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.00.9466 for 80x86 +(Microsoft Visual C++ 2002)
    • +
    • Intel(R) C++ Compiler for Intel(R) EM64T-based applications, Version 9.0 +Build 20050430 Package ID: l_cc_p_9.0.021
    • +
    • CC: Sun C++ 5.8 2005/10/13 (CXXFLAGS='-library=stlport4')
    • +
    • bison 2.1, 1.875d, 1.875b, 1.875
    • +
    +
  • +
+
+
+

0.10.1 (2006-02-28)¶

+
    +
  • Added support for Solaris and native SUN compiler.
  • +
  • Applied #1438160 expose YYCTXMARKER.
  • +
  • re2c 0.10.1 has been tested with the following compilers:
      +
    • gcc version 4.0.3 (4.0.3-0.20060215.2mdk for Mandriva Linux release 2006.1)
    • +
    • gcc version 4.0.2 (4.0.2-1mdk for Mandriva Linux release 2006.1)
    • +
    • gcc version 4.0.2 20050901 (prerelease) (SUSE Linux)
    • +
    • gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
    • +
    • gcc-Version 3.3.5 (Debian 1:3.3.5-13)
    • +
    • gcc-Version 3.3.0 (mips-sgi-irix6.5/3.3.0/specs)
    • +
    • MIPSpro Compilers: Version 7.4.4m
    • +
    • Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for +80x86 (Microsoft Visual C 2005)
    • +
    • Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.00.9466 for 80x86 +(Microsoft Visual C 2002)
    • +
    • Intel(R) C++ Compiler for 32-bit applications, Version 9.0 Build 20051130Z +Package ID: W_CC_C_9.0.028
    • +
    • CC: Sun C++ 5.8 2005/10/13 (CXXFLAGS='-compat5 -library=stlport4')
    • +
    • bison 2.1, 1.875d, 1.875b, 1.875
    • +
    +
  • +
+
+
+

0.10.0 (2006-02-18)¶

+
    +
  • Added make target zip to create windows source packages as zip files.
  • +
  • Added re2c:startlabel configuration.
  • +
  • Fixed code generation to not generate unreachable code for initial state.
  • +
  • Added support for c/c++ compatible \u and \U unicode notation.
  • +
  • Added ability to control indendation.
  • +
  • Made scanner error out in case an ambiguous /* is found.
  • +
  • Fixed indendation of generated code.
  • +
  • Added support for DOS line endings.
  • +
  • Added experimental unicode support.
  • +
  • Added config_w32.h to build out of the box on windows (using msvc 2002+).
  • +
  • Added Microsoft Visual C .NET 2005 build files.
  • +
  • Applied #1411087 variable length trailing context.
  • +
  • Applied #1408326 do not generate goto next state.
  • +
  • Applied #1408282 CharSet initialization fix.
  • +
  • Applied #1408278 readsome with MSVC.
  • +
  • Applied #1307467 Unicode patch for 0.9.7.
  • +
+
+
+
+

0.9x¶

+
+

0.9.12 (2005-12-28)¶

+
    +
  • Fixed bug #1390174 re2c cannot accept {0,}.
  • +
+
+
+

0.9.11 (2005-12-18)¶

+
    +
  • Fixed #1313083 -e (EBCDIC cross compile) broken.
  • +
  • Fixed #1297658 underestimation of n in YYFILL(n).
  • +
  • Applied #1339483 Avoid rebuilds of re2c when running subtargets.
  • +
  • Implemented #1335305 symbol table reimplementation, just slightly modifed.
  • +
+
+
+

0.9.10 (2005-09-04)¶

+
    +
  • Add -i switch to avoid generating #line information.
  • +
  • Fixed bug #1251653 re2c generate some invalid #line on WIN32.
  • +
+
+
+

0.9.9 (2005-07-21)¶

+
    +
  • Implemented #1232777 negated char classes [^...] and the dot operator ..
  • +
  • Added hexadecimal character definitions.
  • +
  • Added consistency check for octal character definitions.
  • +
+
+
+

0.9.8 (2005-06-26)¶

+
    +
  • Fixed code generation for -b switch.
  • +
  • Added Microsoft Visual C .NET build files.
  • +
+
+
+

0.9.7 (2005-04-30)¶

+
    +
  • Applied #1181535 storable state patch.
  • +
  • Added -d flag which outputs a debugable parser.
  • +
  • Fixed generation of #line directives (according to ISO-C99).
  • +
  • Fixed bug #1187785 Re2c fails to generate valid code.
  • +
  • Fixed bug #1187452 unused variable yyaccept.
  • +
+
+
+

0.9.6 (2005-04-14)¶

+
    +
  • Fix build with gcc >= 3.4.
  • +
+
+
+

0.9.5 (2005-04-08)¶

+
    +
  • Added /*!max:re2c */ which emits #define YYMAXFILL <max> +line. This allows to define buffers of the minimum required length. +Occurence must follow /*re2c */ and cannot preceed it.
  • +
  • Changed re2c to two pass generation to output warning free code.
  • +
  • Fixed bug #1163046 re2c hangs when processing valid re-file.
  • +
  • Fixed bug #1022799 re2c scanner has buffering bug.
  • +
+
+
+

0.9.4 (2005-03-12)¶

+
    +
  • Added --vernum support.
  • +
  • Fixed bug #1054496 incorrect code generated with -b option.
  • +
  • Fixed bug #1012748 re2c does not emit last line if \n missing.
  • +
  • Fixed bug #999104 --output=output option does not work as documented.
  • +
  • Fixed bug #999103 Invalid options prefixed with two dashes cause program +crash.
  • +
+
+
+

0.9.3 (2004-05-26)¶

+
    +
  • Fixes one small possible bug in the generated output. ych instead of +yych is output in certain circumstances.
  • +
+
+
+

0.9.2 (2004-05-26)¶

+
    +
  • Added -o option to specify the output file which also will set the +#line directives to something useful.
  • +
  • Print version to cout instead of cerr.
  • +
  • Added -h and -- style options.
  • +
  • Moved development to http://sourceforge.net/projects/re2c
  • +
  • Fixed bug #960144 minor cosmetic problem.
  • +
  • Fixed bug #953181 cannot compile with.
  • +
  • Fixed bug #939277 Windows support.
  • +
  • Fixed bug #914462 automake build patch
  • +
  • Fixed bug #891940 braced quantifiers: {\d+(,|,\d+)?} style.
  • +
  • Fixed bug #869298 Add case insensitive string literals.
  • +
  • Fixed bug #869297 Input buffer overrun.
  • +
+
+
+

0.9.1 (2003-12-13)¶

+
    +
  • Removed rcs comments in source files.
  • +
+
+
+
+

re2c adopted (2003-12-09)¶

+
    +
  • Version 0.9.1 README:

    +
    Originally written by Peter Bumbulis (peter@csg.uwaterloo.ca)
    +Currently maintained by Brian Young (bayoung@acm.org)
    +
    +The re2c distribution can be found at:
    +http://www.tildeslash.org/re2c/index.html
    +
    +The source distribution is available from:
    +http://www.tildeslash.org/re2c/re2c-0.9.1.tar.gz
    +
    +This distribution is a cleaned up version of the 0.5 release
    +maintained by me (Brian Young). Several bugs were fixed as well
    +as code cleanup for warning free compilation. It has been
    +developed and tested with egcs 1.0.2 and gcc 2.7.2.3 on Linux x86.
    +Peter Bumbulis' original release can be found at:
    +ftp://csg.uwaterloo.ca/pub/peter/re2c.0.5.tar.gz
    +
    +re2c is a great tool for writing fast and flexible lexers.
    +It has served many people well for many years and it deserves
    +to be maintained more actively. re2c is on the order of 2-3
    +times faster than a flex based scanner, and its input model
    +is much more flexible.
    +
    +Patches and requests for features will be entertained. Areas
    +of particular interest to me are porting (a Solaris and an NT
    +version will be forthcoming) and wide character support. Note
    +that the code is already quite portable and should be buildable
    +on any platform with minor makefile changes.
    +
    +
    +
  • +
  • Version 0.5 Peter’s original ANNOUNCE and README:

    +
    re2c is a tool for generating C-based recognizers from regular
    +expressions. re2c-based scanners are efficient: for programming
    +languages, given similar specifications, an re2c-based scanner
    +is typically almost twice as fast as a flex-based scanner with
    +little or no increase in size (possibly a decrease on cisc
    +architectures). Indeed, re2c-based scanners are quite competitive
    +with hand-crafted ones.
    +
    +Unlike flex, re2c does not generate complete scanners: the user
    +must supply some interface code. While this code is not bulky
    +(about 50-100 lines for a flex-like scanner; see the man page
    +and examples in the distribution) careful coding is required for
    +efficiency (and correctness). One advantage of this arrangement
    +is that the generated code is not tied to any particular input
    +model. For example, re2c generated code can be used to scan
    +data from a null-byte terminated buffer as illustrated below.
    +
    +Given the following source:
    +
    +    #define NULL        ((char*) 0)
    +    char *scan(char *p) {
    +    char *q;
    +    #define YYCTYPE     char
    +    #define YYCURSOR    p
    +    #define YYLIMIT     p
    +    #define YYMARKER    q
    +    #define YYFILL(n)
    +    /*!re2c
    +        [0-9]+      {return YYCURSOR;}
    +        [\000-\377] {return NULL;}
    +    */
    +    }
    +
    +re2c will generate:
    +
    +    /* Generated by re2c on Sat Apr 16 11:40:58 1994 */
    +    #line 1 "simple.re"
    +    #define NULL        ((char*) 0)
    +    char *scan(char *p) {
    +    char *q;
    +    #define YYCTYPE     char
    +    #define YYCURSOR    p
    +    #define YYLIMIT     p
    +    #define YYMARKER    q
    +    #define YYFILL(n)
    +    {
    +            YYCTYPE yych;
    +            unsigned int yyaccept;
    +            goto yy0;
    +    yy1:    ++YYCURSOR;
    +    yy0:
    +            if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
    +            yych = *YYCURSOR;
    +            if(yych <= '/') goto yy4;
    +            if(yych >= ':') goto yy4;
    +    yy2:    yych = *++YYCURSOR;
    +            goto yy7;
    +    yy3:
    +    #line 10
    +            {return YYCURSOR;}
    +    yy4:    yych = *++YYCURSOR;
    +    yy5:
    +    #line 11
    +            {return NULL;}
    +    yy6:    ++YYCURSOR;
    +            if(YYLIMIT == YYCURSOR) YYFILL(1);
    +            yych = *YYCURSOR;
    +    yy7:    if(yych <= '/') goto yy3;
    +            if(yych <= '9') goto yy6;
    +            goto yy3;
    +    }
    +    #line 12
    +
    +    }
    +
    +Note that most compilers will perform dead-code elimination to
    +remove all YYCURSOR, YYLIMIT comparisions.
    +
    +re2c was developed for a particular project (constructing a fast
    +REXX scanner of all things!) and so while it has some rough edges,
    +it should be quite usable. More information about re2c can be
    +found in the (admittedly skimpy) man page; the algorithms and
    +heuristics used are described in an upcoming LOPLAS article
    +(included in the distribution). Probably the best way to find out
    +more about re2c is to try the supplied examples. re2c is written in
    +C++, and is currently being developed under Linux using gcc 2.5.8.
    +
    +Peter
    +
    +
    +
  • +
+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/release_notes.html b/releases/release_notes.html new file mode 100644 index 00000000..ba521f89 --- /dev/null +++ b/releases/release_notes.html @@ -0,0 +1,414 @@ + + + + + + + + Release notes — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Release notes¶

+
+
+
+

Release 1.2.1¶

+

This is a minor release that improves some of the features introduced in 1.2. +First, it is now possible to reset re2c:eof configuration to the +default value by setting it to -1. Second, re2c now installs standard +include files to $(datadir)/re2c/stdlib, where $(datadir) is +/usr/share by default (but can be configured otherwise). When looking for +include files, re2c automatically tries this directory — there is no need +to add it manually with -I. +Both issues have been reported by Wesley W. Terpstra. Thank you!

+

See the changelog 1.2.1 (2019-08-11) for details.

+
+
+

Release 1.2¶

+

This release adds a handful of useful features and finalizes two-year +research effort on POSIX disambiguation.

+

First and foremost, EOF rule has been added to +re2c. It is a new method of checking for the end of input, which aims at being +both generic and simple to use. Historically re2c has a +number of ways to handle EOF situation. The +simplest and the most efficient method is +using a sentinel symbol, but it +has limited applicability. The most widely used and generic method is +bounds checking with padding, +but it is rather complex and requires input buffering. +Finally, it is possible to define custom EOF handling methods +by using the generic API. However, such +methods are not necessarily correct and are likely to be slower than other +methods. The new method, EOF rule, tries to combine the simplicity and +efficiency of the sentinel symbol and the generality of bounds checking. +Essentially, all the user is required to do is to specify an arbitrary “fake” +sentinel using re2c:eof configuration (zero is usually a good choice), to +define a special EOF rule $, and to make sure that the fake sentinel is +always the last symbol in the input buffer. The lexer will then run without end +of input checks until it hits the branch corresponding to the fake sentinel, at +which point it will perform additional bounds checking. If indeed it is the end, +the lexer will try to get more input. If this attempt fails, the lexer will +either rollback to the last matched rule (or the default rule, if it has +consumed some input but did not match), or else it will go to EOF rule. +Depending on each particular case and the choice of sentinel, the performance of +EOF rule may be slightly better or worse than bounds checking with padding. +See the user manual for more details and examples.

+

Another important new feature is the possibility to include other files. Re2c provides a directive +/*!include:re2c "file.re" */, where file.re is the name of the included +file. +Re2c looks for included files in the directory of the including file and in the +include locations, which can be specified with -I option. Include files +may have further includes of their own. Re2c provides some predefined include +files that can be found in the include/ sub-directory of the project. These +files contain useful definitions and form something like a standard library +for re2c. Currently there is one available include, unicode_categories.re.

+

Re2c now allows to generate header file +from the input file using option -t --type-header or +re2c:flags:t and re2c:flags:type-header configurations and the newly +added directives /*!header:re2c:on*/ and /*!header:re2c:off*/. +Header files may be needed in cases when re2c is used to generate definitions +of constants, variables and structs that must be visible from other translation +units.

+

Re2c can now understand UTF8-encoded string literals and character classes in +regular expressions. By default, re2c parses regular expressions like +"∀x ∃y" as a sequence of 1-byte ASCII code points +e2 88 80 78 20 e2 88 83 79 (hexadecimal), and the users have to escape +Unicode symbols manually: "\u2200x \u2203y". This is not what most users +would expect, as demonstrated by multiple issues on the bugtracker. The new +option --input-encoding <ascii | utf8> allows to change the default +behavior and parse "∀x ∃y" as a sequence of 4-byte Unicode code points +2200 78 20 2203 79 (hexadecimal). Note that the new option affects only +parsing, and not the code generation.

+

Re2c now allows to mix reusable blocks +with normal blocks when -r --reuse option is used. This is very useful in +cases when the input file contains many re2c blocks, and only some of them need +to be reused (a good example is re2c own lexer, which has to use certain rules +twice in order to generate ASCII and UTF8 lexer variants for +--input-encoding <ascii | utf8> option).

+

It is now possible to specify location format in re2c-generated messages with +--location-format <gnu | msvc> option. As one might guess, possible +arguments are GNU location format filename:line:column: (the default) and +MSVC format filename(line,column). This option might help IDE users. +Another new option is --verbose — it prints a short “success” message in +case re2c exits successfully.

+

Flex compatibility mode (enabled with -F --flex-support option) has been +improved: parsing errors and incorrect operator precedence in some rare cases +have been fixed. Historically re2c allows to mix flex-style code with re2c-style +code, which creates certain difficulties for the parser. Such difficulties can +be resolved by passing parts of the parser context to the lexer.

+

The difference operator / is now applied to its operands before encoding +expansion. Re2c supports difference only for character classes, and encoding +expansion in case of a variable-length encoding may transform even a simple +character class into a complex graph (see +the graph for [^] in UTF8 for example). +Applying expansion after difference makes / applicable in more cases.

+

Re2c now generates the output file atomically: it first creates a temporary file +and writes the generated output into it, and then renames the temporary file to +the output file.

+

Documentation has been rearranged and updated, and the website has been +fixed to look somewhat better on mobile devices (hopefully).

+

From developers standpoint, re2c now has better debugging capabilities. Debug +code has been moved in a separate subsystem and is no longer built in release +binaries (debug builds are enabled with --enable-debug configure option). +New debug options and passes have been added.

+

This release has taken almost a year, mostly because of the time needed to +formalize the extended algorithm for POSIX disambiguation and write a formal +paper Efficient POSIX Submatch Extraction on NFA. +The algorithms described in the paper are implemented in an experimental +library libre2c. The library is intended as a playground for experiments +and research, not a replacement for existing libraries like RE2. Having re2c +as a library is convenient for benchmarking, testing and creating bindings to +other languages. +To build the library and benchmarks, configure re2c with --enable-libs option.

+

Many people have contributed to this release. +Angelo Borsotti co-authored the paper; his hard work has revealed multiple +shortcomings and deficiencies in the algorithms used in re2c. +Henri Salo helped with fuzz-testing re2c using the American Fuzzy Lop. +Denis Naumov helped with Windows portability issues. +Sergei Trofimovich fixed a number of bugs; +he and Serghei Iakovlev helped with the Travis CI infrastructure. +Wesley Terpstra used re2c in the open-source +wake build tool. +Many thanks to them and all the others who contributed to this release!

+

A lot of bugs have been fixed. +See the changelog 1.2 (2019-08-02) for details.

+
+
+

Release 1.1.1¶

+

This is a minor bug-fix release. +It fixes a crash with -V --vernum option. +The crash was reported and fixed by Mike Gilbert, +and later rediscovered by Daniel J. Luke and Perry E. Metzger. +Sergei Trofimovich made a unit test, as the -V --vernum option has already caused some troubles in the past. +See the changelog 1.1.1 (2018-08-30) for details. +Thanks everyone!

+
+
+

Release 1.1¶

+

This release doesn’t bring in any serious user-visible changes; +most of the work concentrated on the internal POSIX disambiguation algorithm +used for submatch extraction with --posix-captures option. +The old algorithm, introduced in release 1.0, was based on the work of Chris Kuklewicz +(outlined on this haskell wiki page +and formalized in the paper Tagged Deterministic Finite Automata with Lookahead). +Kuklewicz algorithm was replaced with a totally different algorithm +based on the work of Satoshi Okui and Taro Suzuki (described in the paper +“Disambiguation in Regular Expression Matching via Position Automata with Augmented Transitions”, year 2013). +The main effort in this release was in developing proper theoretical foundations for the new algorithm. +As usual, there has been a couple of bug fixes.

+

See the changelog 1.1 (2018-08-27) for details.

+
+
+

Release 1.0.3¶

+

Yet another minor bug-fix release. +It fixes a build failure on Mac OS X (thanks to Ryan Shmidt for the bug report). +See the changelog 1.0.3 (2017-11-08) for details.

+
+
+

Release 1.0.2¶

+

This is another minor bug-fix release. +It addresses some documentation issues (thanks to Ziris85 for the bug report). +See the changelog 1.0.2 (2017-08-26) for details.

+
+
+

Release 1.0.1¶

+

This is a minor bug-fix release. +It fixes a build failure on Mac OS X (thanks to ilovezf for the bug report). +See the changelog 1.0.1 (2017-08-11) for details.

+
+
+

Release 1.0¶

+

This release is an important milestone in the history of re2c: it adds submatch extraction. +It is a long-awaited feature; even as Peter Bumbulis released the first version of re2c back in 1993, +he mentioned submatch extraction in his paper together with Donald D. Cowan +“RE2C: a more versatile scanner generator” +as a useful feature that soon should be added to re2c. +It seemed back then that submatch extraction is relatively easy to implement; +like many other useful extensions, it was deemed to be no more than syntactic sugar on top of canonical regular expressions.

+

As it turned out, this is not so: +the problem of parsing with regular expressions is inherently more complex than recognition, +and submatch extraction cannot be implemented using traditional DFA-based approach. +Many authors studied this subject and developed algorithms suitable for their particular settings and problem domains. +Some of them used NFA-based approach, +others suggested algorithms based on multiple DFA or multiple passes over a single DFA. +For re2c most of these algorithms are too heavyweight: +they require complication of the underlying computational model and incur overhead even in simple cases.

+

However, one algorithm is outstanding in this respect: +it is the algorithm invented by Ville Laurikari in 2000 and described in his paper +“NFAs with Tagged Transitions, their Conversion to Deterministic Automata and Application to Regular Expressions”. +Laurikari algorithm is based on a single DFA extended with a fixed number of registers; it makes one pass over the input string, +works in linear time and the required space does not depend on the input length. +But what is most important, the added complexity depends on submatch detalization: +on submatch-free regular expressions Laurikari automaton reduces to a simple DFA.

+

When the work on submatch extraction feature started in early 2016, +at first it seemed that Laurikari algorithm was still overly complicated. +Re2c needed an algorithm that would support only partial submatch extraction, +but the supported cases would be handled very efficiently. +A lot of effort was spent on studying papers, +and finally this lead to the development of a new algorithm. +It soon became clear that the self-invented algorithm was in fact a special case of Laurikari algorithm, +with one significant performance improvement: the use of lookahead symbol. +Surprisingly, the original Laurikari algorithm has a strange deficiency: +when recording submatches, the automata totally ignore the lookahead symbol +and perform a lot of redundant operations that could be easily avoided. +It was only logical to fix Laurikari algorithm. +The new improved algorithm is described in the paper +“Tagged Deterministic Finite Automata with Lookahead”

+

Submatch extraction in re2c comes in two flavors: +POSIX-compliant capturing groups (with true POSIX semantics) +and standalone tags that use leftmost greedy disambiguation. +Both features require a number of new API primitives and configurations; +and they are barely documented yet (though I managed to add a section in the manual). +The paper cited above has some interesting benchmark results; +articles and examples will follow in the nearest future. +As usually, you may expect a number of small bug-fix releases in the 1.0.x series.

+

The following people contributed to this release:

+
    +
  • Petr Skocik tidied up re2c documentation: fixed ubiquitous spelling errors +and established synchronization system between the online documentation, +manpage and help message displayed by re2c with --help option.
  • +
  • Sergei Trofimovich wrote a fuzzer that generates random regular expressions +and checks them on input data generated with re2c --skeleton option. +This fuzzer is most helpful; it has already found tens of bugs in the early implementation of submatch extraction. +Sergei also helped me with testing re2c on numerous platforms and computer architectures.
  • +
  • Abs62, +asmwarrior, +Ben Smith, +CRCinAU, +Derick Rethans, +Dimitri John Ledkov, +Eldar Zakirov, +jcfp, +Jean-Claude Wippler, +Jeff Trull, +Jérôme Dumesnil, +Jesse Buesking, +Julian Andres Klode, +Paulo Custodio, +Perry E. Metzger, +philippschaefer, +Ross Burton, +Rui Maciel, +Ryan Mast, +Samuel006, +sirzooro, +Tim Kelly +— all these people contributed bug reports, patches and feedback. Thank you!
  • +
  • Many thanks to the early user of the new features João Paredes for his patience and encouraging comments on the subject.
  • +
+

See the changelog 1.0 (2017-08-11) for details.

+
+
+

Release 0.16¶

+

This release adds a very important step in the process of code generation: +minimization of the underlying DFA (deterministic finite automaton). +Simply speaking, this means that re2c now generates less code +(while the generated code behaves exactly the same).

+

DFA minimization is a very well-known technique +and one might expect that any self-respecting lexer generator would definitely use it. +So how could it be that re2c didn’t? +In fact, re2c did use a couple of self-invented tricks to compress the generated code +(one interesting technique is the construction of a tunnel automaton). +Some of these tricks were quite buggy (see this bug report for example). +Now that re2c does canonical DFA minimization, all this stuff is obsolete and has been dropped.

+

A lot of attention has been paid to the correctness of the DFA minimization. +Usually, re2c uses a very simple criterion to validate changes: +the generated code for all the tests in testsuite must remain the same. +However, in the case of DFA minimization the generated code changes dramatically. +It is impossible to verify the changes manually.

+

One possible verification tool is the skeleton feature. +Because skeleton is constructed prior to DFA minimization, it cannot be affected by any errors in its implementation.

+

Another way to verify DFA minimization is by implementing two different algorithms +and comparing the results. The minimization procedure has a very useful property: +the miminal DFA is unique (with respect to state relabeling). +We used the Moore and the so-called table filling algorithms: +The Moore algorithm is fast, while table filling is very simple to implement. +The --dfa-minimization <moore | table> option that allows choosing +the particular algorithm (defaults to moore), but it’s only useful for debugging +DFA minimization.

+

A good side effect of messing with re2c internals is a significant speedup +of code generation (see this issue for example). +The test suite now runs twice as fast (at least).

+

See the changelog 0.16 (2016-01-21) for details.

+
+
+

Release 0.15.3¶

+

This release fixes multiple build-time and run-time failures on OS X, FreeBSD, and Windows. +Most of the problems were reported and fixed by Oleksii Taran (on OS X) +and Sergei Trofimovich (on FreeBSD and Windows). +Thank you for your help!

+

Skeleton coverage has been improved.

+

See the changelog 0.15.3 (2015-12-02) for details.

+
+
+

Release 0.15.2¶

+

This release fixes a bug in the build system: +it adds a missing dependency of the lexer on the bison-generated header +(reported on Gentoo bugtracker). +See the changelog 0.15.2 (2015-11-23) for details.

+
+
+

Release 0.15.1¶

+

This release fixes an error in the testing script +(thanks to Sergei Trofimovich who reported the bug and suggested a quick fix). +See the changelog 0.15.1 (2015-11-22) for details.

+
+
+

Release 0.15¶

+

This release started out in the spring of 2015 as a relatively simple code cleanup.

+

It focused on the following problem: re2c used to repeat the whole generation process multiple times. +Some parts of the generated program depend on the overall input statistics; +they cannot be generated until the whole input has been processed. +The usual strategy is to make stubs for all such things and fix them later. +Instead, re2c used to process the whole input, gather statistics, +discard the generated output, and regenerate it from scratch. +Moreover, each generation pass further duplicated certain calculations (for similar reasons). +As a result, the code generation phase was repeated four times.

+

The problem here was not inefficiency: re2c is fast enough to allow the 4x overhead. +The real problem was the complexity of the code: the developer has to think of multiple execution layers all the time. +Some parts of code are only executed on certain layers and affect each other. +Simple reasoning gets really hard.

+

So the main purpose of this release was to simplify the code and make it easier to fix bugs and add new features. +Very soon it became clear that some of the changes in code generation are hard to verify by hand. +For example, even a minor rebalancing of if and switch statements +may change the generated code significantly. +It was clear that re2c needed an automatic verification tool, +which lead to the idea of generating skeleton programs.

+

Meanwhile some work was done on adding warnings, +updating the build system and fixing various bugs. +A heart-warming consequence of the code simplification is that re2c now uses re2c more extensively: +not only the main program, but also the command-line options, inplace configurations, +and all kinds of escaped strings are parsed with re2c. +Website has also been updated (feel free to suggest improvements).

+

See the changelog 0.15 (2015-11-22) for details.

+
+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/release_notes/0_15.html b/releases/release_notes/0_15.html new file mode 100644 index 00000000..4f31739c --- /dev/null +++ b/releases/release_notes/0_15.html @@ -0,0 +1,85 @@ + + + + + + + + Release 0.15 — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Release 0.15¶

+

This release started out in the spring of 2015 as a relatively simple code cleanup.

+

It focused on the following problem: re2c used to repeat the whole generation process multiple times. +Some parts of the generated program depend on the overall input statistics; +they cannot be generated until the whole input has been processed. +The usual strategy is to make stubs for all such things and fix them later. +Instead, re2c used to process the whole input, gather statistics, +discard the generated output, and regenerate it from scratch. +Moreover, each generation pass further duplicated certain calculations (for similar reasons). +As a result, the code generation phase was repeated four times.

+

The problem here was not inefficiency: re2c is fast enough to allow the 4x overhead. +The real problem was the complexity of the code: the developer has to think of multiple execution layers all the time. +Some parts of code are only executed on certain layers and affect each other. +Simple reasoning gets really hard.

+

So the main purpose of this release was to simplify the code and make it easier to fix bugs and add new features. +Very soon it became clear that some of the changes in code generation are hard to verify by hand. +For example, even a minor rebalancing of if and switch statements +may change the generated code significantly. +It was clear that re2c needed an automatic verification tool, +which lead to the idea of generating skeleton programs.

+

Meanwhile some work was done on adding warnings, +updating the build system and fixing various bugs. +A heart-warming consequence of the code simplification is that re2c now uses re2c more extensively: +not only the main program, but also the command-line options, inplace configurations, +and all kinds of escaped strings are parsed with re2c. +Website has also been updated (feel free to suggest improvements).

+

See the changelog 0.15 (2015-11-22) for details.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/release_notes/0_15_1.html b/releases/release_notes/0_15_1.html new file mode 100644 index 00000000..06880ec8 --- /dev/null +++ b/releases/release_notes/0_15_1.html @@ -0,0 +1,62 @@ + + + + + + + + Release 0.15.1 — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Release 0.15.1¶

+

This release fixes an error in the testing script +(thanks to Sergei Trofimovich who reported the bug and suggested a quick fix). +See the changelog 0.15.1 (2015-11-22) for details.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/release_notes/0_15_2.html b/releases/release_notes/0_15_2.html new file mode 100644 index 00000000..66022eaf --- /dev/null +++ b/releases/release_notes/0_15_2.html @@ -0,0 +1,63 @@ + + + + + + + + Release 0.15.2 — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Release 0.15.2¶

+

This release fixes a bug in the build system: +it adds a missing dependency of the lexer on the bison-generated header +(reported on Gentoo bugtracker). +See the changelog 0.15.2 (2015-11-23) for details.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/release_notes/0_15_3.html b/releases/release_notes/0_15_3.html new file mode 100644 index 00000000..5a22ae60 --- /dev/null +++ b/releases/release_notes/0_15_3.html @@ -0,0 +1,65 @@ + + + + + + + + Release 0.15.3 — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Release 0.15.3¶

+

This release fixes multiple build-time and run-time failures on OS X, FreeBSD, and Windows. +Most of the problems were reported and fixed by Oleksii Taran (on OS X) +and Sergei Trofimovich (on FreeBSD and Windows). +Thank you for your help!

+

Skeleton coverage has been improved.

+

See the changelog 0.15.3 (2015-12-02) for details.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/release_notes/0_16.html b/releases/release_notes/0_16.html new file mode 100644 index 00000000..fa4b0613 --- /dev/null +++ b/releases/release_notes/0_16.html @@ -0,0 +1,89 @@ + + + + + + + + Release 0.16 — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Release 0.16¶

+

This release adds a very important step in the process of code generation: +minimization of the underlying DFA (deterministic finite automaton). +Simply speaking, this means that re2c now generates less code +(while the generated code behaves exactly the same).

+

DFA minimization is a very well-known technique +and one might expect that any self-respecting lexer generator would definitely use it. +So how could it be that re2c didn’t? +In fact, re2c did use a couple of self-invented tricks to compress the generated code +(one interesting technique is the construction of a tunnel automaton). +Some of these tricks were quite buggy (see this bug report for example). +Now that re2c does canonical DFA minimization, all this stuff is obsolete and has been dropped.

+

A lot of attention has been paid to the correctness of the DFA minimization. +Usually, re2c uses a very simple criterion to validate changes: +the generated code for all the tests in testsuite must remain the same. +However, in the case of DFA minimization the generated code changes dramatically. +It is impossible to verify the changes manually.

+

One possible verification tool is the skeleton feature. +Because skeleton is constructed prior to DFA minimization, it cannot be affected by any errors in its implementation.

+

Another way to verify DFA minimization is by implementing two different algorithms +and comparing the results. The minimization procedure has a very useful property: +the miminal DFA is unique (with respect to state relabeling). +We used the Moore and the so-called table filling algorithms: +The Moore algorithm is fast, while table filling is very simple to implement. +The --dfa-minimization <moore | table> option that allows choosing +the particular algorithm (defaults to moore), but it’s only useful for debugging +DFA minimization.

+

A good side effect of messing with re2c internals is a significant speedup +of code generation (see this issue for example). +The test suite now runs twice as fast (at least).

+

See the changelog 0.16 (2016-01-21) for details.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/release_notes/1_0.html b/releases/release_notes/1_0.html new file mode 100644 index 00000000..6e2f66ff --- /dev/null +++ b/releases/release_notes/1_0.html @@ -0,0 +1,138 @@ + + + + + + + + Release 1.0 — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Release 1.0¶

+

This release is an important milestone in the history of re2c: it adds submatch extraction. +It is a long-awaited feature; even as Peter Bumbulis released the first version of re2c back in 1993, +he mentioned submatch extraction in his paper together with Donald D. Cowan +“RE2C: a more versatile scanner generator” +as a useful feature that soon should be added to re2c. +It seemed back then that submatch extraction is relatively easy to implement; +like many other useful extensions, it was deemed to be no more than syntactic sugar on top of canonical regular expressions.

+

As it turned out, this is not so: +the problem of parsing with regular expressions is inherently more complex than recognition, +and submatch extraction cannot be implemented using traditional DFA-based approach. +Many authors studied this subject and developed algorithms suitable for their particular settings and problem domains. +Some of them used NFA-based approach, +others suggested algorithms based on multiple DFA or multiple passes over a single DFA. +For re2c most of these algorithms are too heavyweight: +they require complication of the underlying computational model and incur overhead even in simple cases.

+

However, one algorithm is outstanding in this respect: +it is the algorithm invented by Ville Laurikari in 2000 and described in his paper +“NFAs with Tagged Transitions, their Conversion to Deterministic Automata and Application to Regular Expressions”. +Laurikari algorithm is based on a single DFA extended with a fixed number of registers; it makes one pass over the input string, +works in linear time and the required space does not depend on the input length. +But what is most important, the added complexity depends on submatch detalization: +on submatch-free regular expressions Laurikari automaton reduces to a simple DFA.

+

When the work on submatch extraction feature started in early 2016, +at first it seemed that Laurikari algorithm was still overly complicated. +Re2c needed an algorithm that would support only partial submatch extraction, +but the supported cases would be handled very efficiently. +A lot of effort was spent on studying papers, +and finally this lead to the development of a new algorithm. +It soon became clear that the self-invented algorithm was in fact a special case of Laurikari algorithm, +with one significant performance improvement: the use of lookahead symbol. +Surprisingly, the original Laurikari algorithm has a strange deficiency: +when recording submatches, the automata totally ignore the lookahead symbol +and perform a lot of redundant operations that could be easily avoided. +It was only logical to fix Laurikari algorithm. +The new improved algorithm is described in the paper +“Tagged Deterministic Finite Automata with Lookahead”

+

Submatch extraction in re2c comes in two flavors: +POSIX-compliant capturing groups (with true POSIX semantics) +and standalone tags that use leftmost greedy disambiguation. +Both features require a number of new API primitives and configurations; +and they are barely documented yet (though I managed to add a section in the manual). +The paper cited above has some interesting benchmark results; +articles and examples will follow in the nearest future. +As usually, you may expect a number of small bug-fix releases in the 1.0.x series.

+

The following people contributed to this release:

+
    +
  • Petr Skocik tidied up re2c documentation: fixed ubiquitous spelling errors +and established synchronization system between the online documentation, +manpage and help message displayed by re2c with --help option.
  • +
  • Sergei Trofimovich wrote a fuzzer that generates random regular expressions +and checks them on input data generated with re2c --skeleton option. +This fuzzer is most helpful; it has already found tens of bugs in the early implementation of submatch extraction. +Sergei also helped me with testing re2c on numerous platforms and computer architectures.
  • +
  • Abs62, +asmwarrior, +Ben Smith, +CRCinAU, +Derick Rethans, +Dimitri John Ledkov, +Eldar Zakirov, +jcfp, +Jean-Claude Wippler, +Jeff Trull, +Jérôme Dumesnil, +Jesse Buesking, +Julian Andres Klode, +Paulo Custodio, +Perry E. Metzger, +philippschaefer, +Ross Burton, +Rui Maciel, +Ryan Mast, +Samuel006, +sirzooro, +Tim Kelly +— all these people contributed bug reports, patches and feedback. Thank you!
  • +
  • Many thanks to the early user of the new features João Paredes for his patience and encouraging comments on the subject.
  • +
+

See the changelog 1.0 (2017-08-11) for details.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/release_notes/1_0_1.html b/releases/release_notes/1_0_1.html new file mode 100644 index 00000000..48a9efcb --- /dev/null +++ b/releases/release_notes/1_0_1.html @@ -0,0 +1,62 @@ + + + + + + + + Release 1.0.1 — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Release 1.0.1¶

+

This is a minor bug-fix release. +It fixes a build failure on Mac OS X (thanks to ilovezf for the bug report). +See the changelog 1.0.1 (2017-08-11) for details.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/release_notes/1_0_2.html b/releases/release_notes/1_0_2.html new file mode 100644 index 00000000..aaf6e4d9 --- /dev/null +++ b/releases/release_notes/1_0_2.html @@ -0,0 +1,62 @@ + + + + + + + + Release 1.0.2 — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Release 1.0.2¶

+

This is another minor bug-fix release. +It addresses some documentation issues (thanks to Ziris85 for the bug report). +See the changelog 1.0.2 (2017-08-26) for details.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/release_notes/1_0_3.html b/releases/release_notes/1_0_3.html new file mode 100644 index 00000000..33f526f4 --- /dev/null +++ b/releases/release_notes/1_0_3.html @@ -0,0 +1,62 @@ + + + + + + + + Release 1.0.3 — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Release 1.0.3¶

+

Yet another minor bug-fix release. +It fixes a build failure on Mac OS X (thanks to Ryan Shmidt for the bug report). +See the changelog 1.0.3 (2017-11-08) for details.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/release_notes/1_1.html b/releases/release_notes/1_1.html new file mode 100644 index 00000000..0fa28408 --- /dev/null +++ b/releases/release_notes/1_1.html @@ -0,0 +1,71 @@ + + + + + + + + Release 1.1 — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Release 1.1¶

+

This release doesn’t bring in any serious user-visible changes; +most of the work concentrated on the internal POSIX disambiguation algorithm +used for submatch extraction with --posix-captures option. +The old algorithm, introduced in release 1.0, was based on the work of Chris Kuklewicz +(outlined on this haskell wiki page +and formalized in the paper Tagged Deterministic Finite Automata with Lookahead). +Kuklewicz algorithm was replaced with a totally different algorithm +based on the work of Satoshi Okui and Taro Suzuki (described in the paper +“Disambiguation in Regular Expression Matching via Position Automata with Augmented Transitions”, year 2013). +The main effort in this release was in developing proper theoretical foundations for the new algorithm. +As usual, there has been a couple of bug fixes.

+

See the changelog 1.1 (2018-08-27) for details.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/release_notes/1_1_1.html b/releases/release_notes/1_1_1.html new file mode 100644 index 00000000..0ad42b65 --- /dev/null +++ b/releases/release_notes/1_1_1.html @@ -0,0 +1,66 @@ + + + + + + + + Release 1.1.1 — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Release 1.1.1¶

+

This is a minor bug-fix release. +It fixes a crash with -V --vernum option. +The crash was reported and fixed by Mike Gilbert, +and later rediscovered by Daniel J. Luke and Perry E. Metzger. +Sergei Trofimovich made a unit test, as the -V --vernum option has already caused some troubles in the past. +See the changelog 1.1.1 (2018-08-30) for details. +Thanks everyone!

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/release_notes/1_2.html b/releases/release_notes/1_2.html new file mode 100644 index 00000000..597455f5 --- /dev/null +++ b/releases/release_notes/1_2.html @@ -0,0 +1,166 @@ + + + + + + + + Release 1.2 — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Release 1.2¶

+

This release adds a handful of useful features and finalizes two-year +research effort on POSIX disambiguation.

+

First and foremost, EOF rule has been added to +re2c. It is a new method of checking for the end of input, which aims at being +both generic and simple to use. Historically re2c has a +number of ways to handle EOF situation. The +simplest and the most efficient method is +using a sentinel symbol, but it +has limited applicability. The most widely used and generic method is +bounds checking with padding, +but it is rather complex and requires input buffering. +Finally, it is possible to define custom EOF handling methods +by using the generic API. However, such +methods are not necessarily correct and are likely to be slower than other +methods. The new method, EOF rule, tries to combine the simplicity and +efficiency of the sentinel symbol and the generality of bounds checking. +Essentially, all the user is required to do is to specify an arbitrary “fake” +sentinel using re2c:eof configuration (zero is usually a good choice), to +define a special EOF rule $, and to make sure that the fake sentinel is +always the last symbol in the input buffer. The lexer will then run without end +of input checks until it hits the branch corresponding to the fake sentinel, at +which point it will perform additional bounds checking. If indeed it is the end, +the lexer will try to get more input. If this attempt fails, the lexer will +either rollback to the last matched rule (or the default rule, if it has +consumed some input but did not match), or else it will go to EOF rule. +Depending on each particular case and the choice of sentinel, the performance of +EOF rule may be slightly better or worse than bounds checking with padding. +See the user manual for more details and examples.

+

Another important new feature is the possibility to include other files. Re2c provides a directive +/*!include:re2c "file.re" */, where file.re is the name of the included +file. +Re2c looks for included files in the directory of the including file and in the +include locations, which can be specified with -I option. Include files +may have further includes of their own. Re2c provides some predefined include +files that can be found in the include/ sub-directory of the project. These +files contain useful definitions and form something like a standard library +for re2c. Currently there is one available include, unicode_categories.re.

+

Re2c now allows to generate header file +from the input file using option -t --type-header or +re2c:flags:t and re2c:flags:type-header configurations and the newly +added directives /*!header:re2c:on*/ and /*!header:re2c:off*/. +Header files may be needed in cases when re2c is used to generate definitions +of constants, variables and structs that must be visible from other translation +units.

+

Re2c can now understand UTF8-encoded string literals and character classes in +regular expressions. By default, re2c parses regular expressions like +"∀x ∃y" as a sequence of 1-byte ASCII code points +e2 88 80 78 20 e2 88 83 79 (hexadecimal), and the users have to escape +Unicode symbols manually: "\u2200x \u2203y". This is not what most users +would expect, as demonstrated by multiple issues on the bugtracker. The new +option --input-encoding <ascii | utf8> allows to change the default +behavior and parse "∀x ∃y" as a sequence of 4-byte Unicode code points +2200 78 20 2203 79 (hexadecimal). Note that the new option affects only +parsing, and not the code generation.

+

Re2c now allows to mix reusable blocks +with normal blocks when -r --reuse option is used. This is very useful in +cases when the input file contains many re2c blocks, and only some of them need +to be reused (a good example is re2c own lexer, which has to use certain rules +twice in order to generate ASCII and UTF8 lexer variants for +--input-encoding <ascii | utf8> option).

+

It is now possible to specify location format in re2c-generated messages with +--location-format <gnu | msvc> option. As one might guess, possible +arguments are GNU location format filename:line:column: (the default) and +MSVC format filename(line,column). This option might help IDE users. +Another new option is --verbose — it prints a short “success” message in +case re2c exits successfully.

+

Flex compatibility mode (enabled with -F --flex-support option) has been +improved: parsing errors and incorrect operator precedence in some rare cases +have been fixed. Historically re2c allows to mix flex-style code with re2c-style +code, which creates certain difficulties for the parser. Such difficulties can +be resolved by passing parts of the parser context to the lexer.

+

The difference operator / is now applied to its operands before encoding +expansion. Re2c supports difference only for character classes, and encoding +expansion in case of a variable-length encoding may transform even a simple +character class into a complex graph (see +the graph for [^] in UTF8 for example). +Applying expansion after difference makes / applicable in more cases.

+

Re2c now generates the output file atomically: it first creates a temporary file +and writes the generated output into it, and then renames the temporary file to +the output file.

+

Documentation has been rearranged and updated, and the website has been +fixed to look somewhat better on mobile devices (hopefully).

+

From developers standpoint, re2c now has better debugging capabilities. Debug +code has been moved in a separate subsystem and is no longer built in release +binaries (debug builds are enabled with --enable-debug configure option). +New debug options and passes have been added.

+

This release has taken almost a year, mostly because of the time needed to +formalize the extended algorithm for POSIX disambiguation and write a formal +paper Efficient POSIX Submatch Extraction on NFA. +The algorithms described in the paper are implemented in an experimental +library libre2c. The library is intended as a playground for experiments +and research, not a replacement for existing libraries like RE2. Having re2c +as a library is convenient for benchmarking, testing and creating bindings to +other languages. +To build the library and benchmarks, configure re2c with --enable-libs option.

+

Many people have contributed to this release. +Angelo Borsotti co-authored the paper; his hard work has revealed multiple +shortcomings and deficiencies in the algorithms used in re2c. +Henri Salo helped with fuzz-testing re2c using the American Fuzzy Lop. +Denis Naumov helped with Windows portability issues. +Sergei Trofimovich fixed a number of bugs; +he and Serghei Iakovlev helped with the Travis CI infrastructure. +Wesley Terpstra used re2c in the open-source +wake build tool. +Many thanks to them and all the others who contributed to this release!

+

A lot of bugs have been fixed. +See the changelog 1.2 (2019-08-02) for details.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/releases/release_notes/1_2_1.html b/releases/release_notes/1_2_1.html new file mode 100644 index 00000000..20f284d3 --- /dev/null +++ b/releases/release_notes/1_2_1.html @@ -0,0 +1,68 @@ + + + + + + + + Release 1.2.1 — re2c 1.2 documentation + + + + + + + + + + + + + +
+
+
+
+ +
+

Release 1.2.1¶

+

This is a minor release that improves some of the features introduced in 1.2. +First, it is now possible to reset re2c:eof configuration to the +default value by setting it to -1. Second, re2c now installs standard +include files to $(datadir)/re2c/stdlib, where $(datadir) is +/usr/share by default (but can be configured otherwise). When looking for +include files, re2c automatically tries this directory — there is no need +to add it manually with -I. +Both issues have been reported by Wesley W. Terpstra. Thank you!

+

See the changelog 1.2.1 (2019-08-11) for details.

+
+ + +
+
+
+
+
+ + + \ No newline at end of file diff --git a/search.html b/search.html new file mode 100644 index 00000000..3ec60069 --- /dev/null +++ b/search.html @@ -0,0 +1,72 @@ + + + + + + + + Search — re2c 1.2 documentation + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Search

+
+ +

+ Please activate JavaScript to enable the search + functionality. +

+
+

+ From here you can search these documents. Enter your search + words into the box below and click "search". Note that the search + function will automatically search for all of the words. Pages + containing fewer words won't appear in the result list. +

+
+ + + +
+ +
+ +
+ +
+
+
+
+
+ + + \ No newline at end of file diff --git a/searchindex.js b/searchindex.js new file mode 100644 index 00000000..3f7b6c02 --- /dev/null +++ b/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({docnames:["examples/example_04","examples/example_05","examples/example_06","examples/example_07","examples/example_09","examples/example_10","examples/example_11","examples/example_13","examples/example_14","examples/example_15","examples/example_16","examples/example_17","examples/examples","index","install/install","manual/dot/example","manual/manual","manual/skeleton/skeleton_example","manual/syntax/example","manual/warnings/condition_order/wcondition_order","manual/warnings/empty_character_class/wempty_character_class","manual/warnings/match_empty_string/wmatch_empty_string","manual/warnings/sentinel_in_midrule/wsentinel_in_midrule","manual/warnings/swapped_range/wswapped_range","manual/warnings/undefined_control_flow/wundefined_control_flow","manual/warnings/unreachable_rules/wunreachable_rules","manual/warnings/useless_escape/wuseless_escape","releases/articles/submatch_challenge","releases/changelog/changelog","releases/release_notes","releases/release_notes/0_15","releases/release_notes/0_15_1","releases/release_notes/0_15_2","releases/release_notes/0_15_3","releases/release_notes/0_16","releases/release_notes/1_0","releases/release_notes/1_0_1","releases/release_notes/1_0_2","releases/release_notes/1_0_3","releases/release_notes/1_1","releases/release_notes/1_1_1","releases/release_notes/1_2","releases/release_notes/1_2_1"],envversion:53,filenames:["examples/example_04.rst","examples/example_05.rst","examples/example_06.rst","examples/example_07.rst","examples/example_09.rst","examples/example_10.rst","examples/example_11.rst","examples/example_13.rst","examples/example_14.rst","examples/example_15.rst","examples/example_16.rst","examples/example_17.rst","examples/examples.rst","index.rst","install/install.rst","manual/dot/example.rst","manual/manual.rst","manual/skeleton/skeleton_example.rst","manual/syntax/example.rst","manual/warnings/condition_order/wcondition_order.rst","manual/warnings/empty_character_class/wempty_character_class.rst","manual/warnings/match_empty_string/wmatch_empty_string.rst","manual/warnings/sentinel_in_midrule/wsentinel_in_midrule.rst","manual/warnings/swapped_range/wswapped_range.rst","manual/warnings/undefined_control_flow/wundefined_control_flow.rst","manual/warnings/unreachable_rules/wunreachable_rules.rst","manual/warnings/useless_escape/wuseless_escape.rst","releases/articles/submatch_challenge.rst","releases/changelog/changelog.rst","releases/release_notes.rst","releases/release_notes/0_15.rst","releases/release_notes/0_15_1.rst","releases/release_notes/0_15_2.rst","releases/release_notes/0_15_3.rst","releases/release_notes/0_16.rst","releases/release_notes/1_0.rst","releases/release_notes/1_0_1.rst","releases/release_notes/1_0_2.rst","releases/release_notes/1_0_3.rst","releases/release_notes/1_1.rst","releases/release_notes/1_1_1.rst","releases/release_notes/1_2.rst","releases/release_notes/1_2_1.rst"],objects:{},objnames:{},objtypes:{},terms:{"002_upn_calcul":28,"02x":[16,17],"06_braill":2,"07_cxx98":3,"08_ax":[16,17],"0b0":[0,1],"0b110101010":[0,1],"0ha":16,"0x00":[0,1],"0x00000020":16,"0x00000028":16,"0x00000029":16,"0x0000002c":16,"0x0000003a":16,"0x00000070":16,"0x00000078":16,"0x00000079":16,"0x00002200":16,"0x00002203":16,"0x01020304":16,"0x100":16,"0x10000":16,"0x10ffff":16,"0x1ffffffffffffffff":[0,1],"0x20":16,"0x28":16,"0x2800":2,"0x28ff":2,"0x29":16,"0x2c":16,"0x30u":3,"0x3a":16,"0x41u":3,"0x5a":[16,23],"0x61":[16,23],"0x61u":3,"0x70":16,"0x78":16,"0x79":16,"0x7f000001":16,"0x80":16,"0x83":16,"0x88":16,"0xabcdef":[0,1],"0xd7ff":16,"0xd800":16,"0xdfff":16,"0xe000":16,"0xe2":16,"0xff":[16,25,26],"0xfffd":16,"0xffff":16,"0xffffffff":16,"0xffffffffffffffff":[0,1],"19th":8,"1gb":16,"1mdk":28,"1mdv2007":28,"20051130z":28,"20070322z":28,"2mdk":28,"80x86":28,"85a3":5,"875b":28,"875d":28,"8a2e":5,"abstract":[16,24],"boolean":[3,16],"break":[3,5,6,16,19,21,28],"byte":[16,17,22,28,29,41],"case":[3,5,6,9,10,16,17,18,19,21,22,23,24,25,27,28,29,34,35,41],"catch":[3,16,17],"char":[0,1,2,3,4,5,6,7,8,9,10,11,16,18,19,21,22,28],"class":[3,11,23,26,27,28,29,41],"const":[0,1,2,3,4,5,6,7,8,9,10,16,18,19,22,28],"default":[1,3,5,6,9,10,14,18,19,20,21,25,28,29,34,41,42],"enum":[3,16,28],"export":3,"final":[1,16,27,29,35,41],"float":3,"function":[0,1,16,17,18],"goto":[0,1,2,3,4,5,6,7,8,9,11,16,18,19,24,28],"import":[3,16,29,34,35,41],"int":[0,1,2,3,4,5,6,7,8,9,10,11,16,18,19,21,22,28],"j\u00e9r\u00f4me":[29,35],"jo\u00e3o":[29,35],"long":[0,1,3,5,6,16,28,29,35],"new":[2,3,10,13,16,28,29,30,35,39,41],"null":[2,6,7,9,10,16,21,22,28],"public":[3,13],"return":[0,1,2,3,4,5,6,7,8,9,10,11,16,18,19,20,21,22,23,24,25,28],"short":[2,3,16,28,29,41],"static":[0,1,2,3,4,5,6,7,8,9,10,11,16,18,19],"switch":[2,3,5,6,16,18,19,24,28,29,30],"throw":[3,28],"true":[0,1,2,3,8,16,29,35],"try":[3,16,27,28,29,41],"var":4,"void":[2,3,5,6,7,8,9,11,16,19],"while":[3,9,11,16,28,29,34],Added:28,And:[2,16,19],But:[16,24,27,29,35],DOS:28,FOR:3,For:[14,16,17,20,22,23,24,27,28,29,30,35],IDE:[16,29,41],Its:16,Not:[16,18],One:[16,17,24,28,29,34],Such:[27,29,41],The:[1,2,3,9,10,11,13,14,17,18,19,20,21,22,26,28,29,30,34,35,39,40,41],There:[14,16,27],These:[16,29,41],UCS:[2,16,24],USING:3,Use:[16,17,23,28],Used:16,With:[16,24,26],__alltest:14,__bss_start:9,__build_:14,__compar_fn_t:9,__cxx11:9,__data_start:9,__dso_handl:9,__gmon_start__:9,__gnu_cxx3divexx:9,__gnu_cxx:9,__gnu_eh_frame_hdr:9,__init_array_end:9,__init_array_start:9,__libc_csu_fini:9,__libc_csu_init:9,__libc_start_main:9,__off64_t:9,__off_t:9,__pad1:9,__pad2:9,__pad3:9,__pad4:9,__pad5:9,__tmc_end__:9,_alloc:28,_tp:28,aaa:[16,22],aaaa:[16,19,27],aaaaa:27,abc:[16,20],abil:[11,28],abl:27,abnorm:16,abort:[16,28],about:[2,16,17,24,26,27,28],abov:[16,24,26,27,29,35],abs62:[29,35],absolut:[16,24,28],absolute_uri:6,acc:28,accept:[6,15,16,24,28],access:[16,22,25,28],accessor:16,accid:[16,24,26],accident:[16,22],accord:28,accordingli:16,acknowledg:13,acm:[13,28],act:2,action:[1,16,17,18,24,28],action_line4:[16,17],activ:[16,28],actual:[10,16,17,26],acycl:16,add:[3,16,19,21,28,29,30,32,34,35,41,42],adddgt:[0,1,3],added:[28,29,35,41],adding:[16,29,30],addit:[3,16,17,29,41],addition:16,address:[16,29,37],addresssanit:14,adfa:[16,28],adjust:16,admittedli:28,advanc:[3,9,16],advantag:[11,28],advic:[16,24],affect:[0,16,29,30,34,41],after:[16,28,29,41],again:3,against:[14,16],agent:6,aha:16,ahead:27,aim:[13,29,41],aix:28,algorithm:[13,16,27,28,29,34,35,39,41],alia:[16,28],alik:28,aliv:6,all:[0,1,2,3,9,10,11,12,13,14,16,17,18,21,22,24,26,27,28,29,30,34,35,41],alloc:[16,28],allow:[1,2,9,11,13,16,22,26,28,29,30,34,41],almost:[13,16,28,29,41],alon:16,alpha:[5,6,7,16],alphabet:27,alreadi:[3,10,16,28,29,35,40],also:[3,10,14,16,24,25,26,27,28,29,30,35],altern:[16,27],alwai:[13,16,20,24,25,27,29,41],ambigu:[2,16,28],american:[28,29,41],among:16,amount:16,analogu:27,analysi:16,and_eq:3,andr:[29,35],angelo:[13,28,29,41],angl:16,ani:[13,15,16,20,22,24,25,26,28,29,34,39],annoi:[16,21],announc:28,anoth:[1,2,9,16,17,21,24,28,29,34,37,38,41],answer:[13,27],anymor:[16,21],anyth:[16,19],anywai:[9,28],anywher:16,apach:6,api:[9,10,12,28,29,35,41],apolog:13,appear:[2,10,16,24,25],append:16,appl:28,appli:[13,28,29,41],applic:[6,16,27,28,29,35,41],appoint:16,appreci:13,approach:[3,9,13,16,29,35],appropri:[2,16],apr:28,arbitrari:[9,10,16,29,41],arch:[7,28],architectur:[28,29,35],area:28,arg:8,argc:[0,1,3,4,5,6,7,8,9,10,11,16,21],argument:[12,16,21,28,29,41],argv:[0,1,3,4,5,6,7,8,9,10,11,16,21],aris:16,arrai:[16,17],arrang:28,articl:[27,28,29,35],artifact:14,arxiv:13,ascii:[16,24,28,29,41],asciidoc:28,asm:3,asmwarrior:[29,35],aspect:[13,14,16,18],assert:[16,22],assign:[16,19,24],associ:[0,16],assum:[13,16,22,27],assumpt:16,atom:[28,29,41],attach:28,attempt:[29,41],attent:[29,34],attribut:[7,28],augment:[29,39],author:[5,6,28,29,35,41],auto:3,autoconf:28,autogener:[16,19],automak:28,automat:[16,29,30,42],automata:[5,6,13,16,27,28,29,35,39],automaton:[9,11,27,29,34,35],autoreconf:14,autotool:14,auxilari:[16,17],auxiliari:3,avail:[13,16,28,29,41],avoid:[9,11,14,16,28,29,35],await:[29,35],b3910b:28,back:[16,29,35],backslash:28,backtrack:28,backup:[13,16],backward:[11,13,16,24],bad:[8,16,22],bad_arg:8,bakward:[16,20],bare:[16,29,35],base:[0,1,3,9,10,14,16,28,29,35,39],bash:[4,14,28],basic:28,bayoung:[13,28],bbb:[16,19],becam:[29,30,35],becaus:[16,24,25,26,27,29,34,41],becom:[16,19,21,26],been:[3,10,13,16,21,28,29,30,33,34,39,41,42],befor:[9,16,24,28,29,41],begin:[8,16,17],behav:[16,28,29,34],behavior:[16,19,24,29,41],behaviour:[16,20],being:[13,16,28,29,41],beings:2,belaru:7,belong:27,below:[7,8,9,11,15,16,20,21,28],ben:[29,35],benchmark:[5,6,16,29,35,41],besid:[3,27],best:[14,16,27,28],better:[3,16,19,24,29,41],between:[0,1,2,16,17,24,28,29,35],beyond:16,big:[3,28],bin:[0,1,4],binari:[11,12,13,16,29,41],bind:[13,16,24,29,41],binsym:9,bison:[14,28,29,32],bit:[16,24,27,28],bitand:3,bitmap:28,bitmap_t:28,bitor:3,bkmg:8,block:[1,2,12,18,21,28,29,41],boerger:13,bogu:28,bool:[0,1,2,3,8,16],bootstrap:[14,28],born:2,borsotti:[13,28,29,41],both:[3,6,7,13,16,19,25,27,29,35,41,42],bound:[3,23,29,41],boundari:[27,28],box:28,brace:[7,16,28],bracket:[16,28],braill:[12,16],branch:[16,28,29,41],brian:[13,28],bring:[16,24,29,39],brl:13,broad:27,broken:28,brotherhood:2,buesk:[29,35],buf:[3,5,6,16],buffer:[3,4,7,9,10,11,24,25,28,29,41],bug:[12,16,28,29,30,31,32,34,35,36,37,38,39,40,41],buggi:[29,34],bugtrack:[13,29,32,41],build:[28,29,30,32,33,36,38,41],build_dir:14,buildabl:28,built:[14,16,24,29,41],builtin:28,bulki:28,bumbuli:[13,28,29,35],bunch:[3,14,16,26],burton:[13,29,35],byacc:28,bynet:7,bypass:1,c99:28,c_str:8,cad:13,calc_002:28,calcul:[29,30],call:[3,16,28,29,34],caller:16,can:[0,1,2,3,9,10,13,14,16,17,20,21,22,24,25,27,28,29,41,42],cannot:[3,9,10,16,22,24,27,28,29,30,34,35],canon:[29,34,35],cap:2,capabl:[2,29,41],capit:2,captur:[16,27,28,29,35,39],care:28,carefulli:13,categori:16,caus:[16,19,25,28,29,40],cautiou:16,cerr:28,certain:[13,16,22,28,29,30,41],cfg:[16,28],cgi:28,cgoto:16,cha:3,chain:27,challeng:27,chang:[14,16,24,28,29,30,34,39,41],changelog:[29,30,31,32,33,34,35,36,37,38,39,40,41,42],channel:[7,13],char_t:2,charact:[3,9,10,11,12,22,23,24,25,26,27,28,29,41],charg:13,charset:[6,28],chech:[10,11],check:[3,9,10,11,14,22,24,28,29,35,41],choic:[29,41],choich:10,chomski:27,choos:[29,34],chosen:[9,16],chri:[29,39],chunk:16,circumst:28,cisc:28,cite:[29,35],clang:28,clarifi:16,claud:[29,35],clean:28,cleanup:[28,29,30],clear:[7,16,29,30,35],clearli:[16,24],clone:28,close:[7,16,22,26],closur:[16,28],closure_posix:28,cmd:4,code:[1,2,3,13,14,15,16,17,18,19,20,22,23,24,25,28,29,30,34,41],collect:8,column:[16,29,41],com:[6,13,28],combin:[16,24,29,41],come:[16,25,29,35],comma:[16,19],command:[2,4,8,16,28,29,30],comment:[16,18,28,29,35],commit:28,common:[16,22],commun:16,compar:[2,14,16,17,29,34],comparis:28,comparison:16,compat5:28,compat:[13,16,20,24,28,29,41],competit:28,compil:[0,1,2,3,4,5,6,7,8,9,10,11,14,16,17,19,24,28],compl:3,complain:[16,17,24],complementari:[16,20],complet:[13,28],complex:[0,2,16,27,29,30,35,41],compliant:[5,6,16,28,29,35],complic:[29,35],compon:[9,11,16],compos:[16,27,28],compress:[16,29,34],comput:[16,19,28,29,35],concaten:16,concentr:[29,39],concept:16,cond:[16,28],condenumprefix:16,condiiton:16,condit:[2,12,13,19,28],condprefix:16,confgur:28,config_w32:28,configur:[0,2,9,13,14,18,22,28,29,30,35,41,42],conflict:28,conform:3,connect:[1,6,9,11,16],conscienc:2,consequ:[13,14,29,30],consid:[16,23,24,26,28],consider:16,consist:[4,7,16,21,28],const_cast:3,const_iter:8,constant:[3,16,29,41],construct:[16,20,27,28,29,34],constructor:28,consum:[16,20,21,24,25,28,29,41],contain:[7,9,10,13,16,17,21,22,23,24,25,27,28,29,41],content:[6,16],context:[16,26,28,29,41],continu:[3,16,18,19,21,22,25],contract:2,contrast:3,contribut:[13,29,35,41],contributor:13,control:[17,28],conv:11,conveni:[16,27,29,41],convent:16,convers:[16,28,29,35],convert:[2,3,11,16,27,28],copi:[10,16],corner:16,correct:[16,28,29,34,41],correctli:28,correspond:[16,17,18,21,24,27,29,41],corrupt:16,cosmet:28,could:[29,34,35],count:[5,6,16],counterpart:13,countri:7,coupl:[2,3,14,29,34,39],cout:28,cover:[16,24],coverag:[16,28,29,33],cowan:[13,29,35],cox:28,coyot:6,cpu:28,cr8:2,craft:28,crash:[16,28,29,40],crcinau:[29,35],creat:[28,29,41],criterion:[29,34],crlf:6,cross:28,csg:[13,28],ctrl:16,ctype:2,cur:[3,5,6,9,10,16],curli:[7,16],current:[1,14,16,24,28,29,41],cursor:16,custodio:[13,29,35],custom:[9,10,11,16,28,29,41],cut:16,cxx98:3,cxx:28,cxxflag:[14,28],cygm:28,cygwin:[14,28],d08:8,dan:13,danger:[16,19],daniel:[29,40],dash:[16,26,28],dat:[5,6,7],data:[5,13,16,17,28,29,35],datadir:[29,42],date:[6,8,16,28],db8:5,dead:[16,25,28],deal:9,debian:28,debug:[13,14,28,29,34,41],dec:[0,1,3],dec_octet:[5,6],decid:[13,27],decim:[3,8,16],decl:28,declar:[16,28],decod:2,decor:16,decreas:28,dedic:16,deem:[3,29,35],defici:[29,35,41],defin:[0,1,2,3,4,5,6,7,8,9,10,11,16,18,19,21,22,24,28,29,41],definit:[0,2,13,16,18,28,29,34,41],degre:16,delet:[2,3,28],deliber:0,delimit:[16,26],demonstr:[0,1,16,19,20,29,41],deni:[29,41],denot:[16,27],depend:[16,28,29,30,32,35,41],deprec:[16,28],derick:[13,29,35],deriv:[16,27],describ:[3,7,13,16,27,28,29,35,39,41],descript:27,dese:[],deserv:28,desrb:16,det:[16,28],detail:[16,17,29,30,31,32,33,34,35,36,37,38,39,40,41,42],detal:[29,35],detect:[16,17,25],determin:[16,27],determinisitc:27,determinist:[5,6,13,16,27,28,29,34,35,39],dev:7,devel:13,develop:[13,14,28,29,30,35,39,41],devic:[29,41],devis:27,dfa:[1,15,16,17,24,28,29,34,35],dfst:27,did:[16,23,24,29,34,41],didn:[16,24,29,34],differ:[1,2,16,20,22,24,28,29,34,39,41],difficulti:[16,29,41],diffrer:[16,21],digit:[2,5,6,16,17,18],digniti:2,dimitri:[29,35],direct:[11,18,19,28,29,41],directli:[1,2,11,13,16],directori:[14,16,28,29,41,42],disabl:[9,10,11,16],disallow:[16,28],disambigu:[16,28,29,35,39,41],discard:[16,29,30],discrep:[16,17],disjoint:16,dispatch:[1,16,19,28],displai:[29,35],dist:[6,28],distcheck:[14,28],distfil:28,distribut:[13,14,16,28],distributor:13,divid:[16,28],dmd:28,doc:[14,28],docu:28,document:[13,14,28,29,35,37,41],doe:[13,16,28,29,34,35],doesn:[16,20,21,24,26,28,29,39],domain:[13,29,35],don:[0,3,16,19,26,28],donald:[13,29,35],done:[3,16,17,27,29,30],dot:[15,16,17,28],doubl:[3,8,9,16,26],down:27,downsid:16,dramat:[29,34],dreversed_condition_ord:[16,19],driven:13,drop:[28,29,34],due:[16,22,25],dumesnil:[29,35],dump:[14,16,28],duplex:28,duplic:[28,29,30],dure:[16,25],dynamic_cast:3,each:[0,1,2,7,8,9,11,13,16,17,21,26,27,29,30,41],eager:[16,28],eagerli:16,earli:[16,29,35],earlier:16,easi:[3,16,19,21,22,29,35],easier:[13,29,30],easiest:16,easili:[14,16,29,35],eat:[16,25],ebcdic:[16,24,28],ecb:[16,28],echo:[16,17],edg:28,effect:[16,26,29,34],effici:[9,10,13,16,28,29,35,41],effort:[3,29,35,39,41],egc:28,either:[1,2,13,16,26,27,29,41],eldar:[29,35],element:7,elimin:[16,25,28],els:[0,1,3,6,16,19,29,41],elsewher:0,em64t:28,email:13,emit:[16,28],emmanuel:13,empti:[20,25,27,28],emul:10,enabl:[0,1,2,3,4,7,8,9,10,11,14,16,18,19,21,22,28,29,41],enclos:16,encod:[1,2,12,13,24,28,29,41],encount:16,encourag:[29,35],end:[0,3,4,5,6,7,8,9,10,11,16,17,18,22,24,25,27,28,29,41],endian:28,endif:[16,19],endow:2,engin:27,english:2,enod:28,enough:[16,29,30],enter:16,entertain:28,entir:16,entri:16,enumer:[1,16],environ:[13,16],eof:[3,5,6,11,22,28,29,41,42],eol:[4,5,6,7],epsilon:[16,28],equal:[2,16,26],equival:[16,27],err:2,error:[0,1,2,3,4,5,6,7,8,10,13,14,16,17,19,20,22,23,26,28,29,31,34,35,41],escap:[28,29,30,41],essenti:[29,41],establish:[29,35],etc:[12,13,14,16,24,26],etc_passwd:4,even:[16,29,30,35,41],evenli:16,eventu:[16,22,24],everi:[10,13,16,24,27],everyon:[16,24,29,40],everyth:[16,17,19],exact:[16,27],exactli:[3,16,24,27,29,34],examp:9,exampl:[0,1,2,3,4,5,6,7,8,10,11,12,13,15,17,19,20,21,22,23,24,25,26,27,28,29,30,34,35,41],exce:[13,16],except:[1,2,3,16,19,22,25],exclam:[16,19],exclud:[16,22,24],execut:[16,24,28,29,30],exist:[28,29,41],exit:[16,17,28,29,41],exp:3,exp_sig:3,exp_sign:3,expand:16,expans:[28,29,41],expect:[2,16,17,19,21,22,24,29,34,35,41],experi:[29,41],experiment:[14,28,29,41],explain:[16,19,27],explicit:[3,16,19],explor:10,exponenti:27,expos:[0,28],express:[5,6,14,24,27,28,29,35,39,41],extend:[27,28,29,35,41],extens:[16,29,30,35],extern:[3,16],extract:[13,28,29,35,39,41],fact:[3,10,29,34,35],factor:16,fail:[11,16,24,25,28,29,41],failur:[16,17,28,29,33,36,38],fake:[9,12,16,29,41],fake_sentinel:10,fall:16,fals:[0,1,2,3,4,16],familiar:27,far:[16,22],fashion:16,fast:[13,28,29,30,34],faster:[13,16,27,28],faulti:16,fc3:28,fcl:3,fclose:[2,3,4,5,6,7,9,16],fcp:2,featur:[13,16,28,29,30,34,35,41,42],fed:28,fee:13,feed:28,feedback:[3,13,29,35],feel:[12,16,29,30],few:[2,14,16],fewer:16,ffll:3,field:[7,13,16],field_cont:6,field_nam:6,field_valu:6,field_vchar:6,file:[2,3,4,5,6,7,8,9,11,14,17,28,29,41,42],filenam:[3,16,29,41],fill:[3,5,6,16,28,29,34],find:[12,16,27,28],fine:[16,17,19],finit:[5,6,13,16,27,28,29,34,35,39],first:[8,9,10,14,16,17,24,25,28,29,35,41,42],fit:[0,16,17],fix:[13,16,19,21,22,24,26,27,28,29,30,31,32,33,35,36,37,38,39,40,41],fixord:[16,19],flag:[2,16,18,28,29,41],flavor:[29,35],flavour:14,flex:[16,28,29,41],flexibl:[13,28],flow:[17,28],flt:3,flt_max:3,fname:[5,6],fnl:2,focus:[29,30],fold:3,follow:[2,4,7,8,16,19,20,22,23,24,26,27,28,29,30,35],foo:16,fool:16,fopen:[2,3,4,5,6,7,9,16],forc:[16,28],foremost:[29,41],forev:[16,21,24],forget:[16,22],form:[3,4,8,10,13,16,21,22,26,28,29,41],formal:[13,29,39,41],format:[2,4,5,6,7,8,16,28,29,41],forthcom:28,forward:[11,28],found:[13,16,28,29,35,41],foundat:[29,39],four:[16,29,30],fprintf:[4,5,6,7,9],frag1:5,fragment:5,frc:3,fread:[2,3,4,5,6,7,9,16],free:[2,3,4,5,6,7,9,12,13,16,28,29,30,35],free_input:[5,6],freebsd:[28,29,33],freedom:13,freeli:13,freenod:[7,13],frequent:[9,11,16],freshli:14,friend:[3,28],from:[2,3,11,12,13,14,16,19,21,22,27,28,29,30,41],front:16,fseek:[2,4,7,9],fsize:[4,7,9],fsp:2,fstream:11,ftell:[2,4,7,9],ftp:28,full:[13,16,27,28],fulli:13,fundament:28,further:[3,16,29,30,41],furthermor:16,futur:[29,35],fuzz:[14,28,29,41],fuzzer:[28,29,35],fuzzi:[28,29,41],fwrite:28,gather:[29,30],gcc:28,gdc:28,gen:28,gener:[1,3,9,10,11,12,13,15,17,18,19,22,23,24,25,26,27,28,29,30,32,34,35,41],gentoo:[7,28,29,32],get:[1,2,6,13,16,19,24,25,27,28,29,30,41],getstat:[16,28],ghijklmnopqrstuvw:[16,17],gid:4,gilbert:[13,29,40],git:28,github:[13,28],give:[13,16,20,27,28],given:[9,16,17,26,27,28],glibcxx_debug:14,global:[0,16],glu:[16,17],gmail:13,gmt:6,gnu:[14,16,28,29,41],goal:13,goldberg:16,gone:16,good:[16,22,24,29,34,41],gor1:[16,28],got:28,grade:2,grammar:[0,13,16,24,25,27,28],grammat:28,grankdir:[16,17],graph:[16,28,29,41],graphviz:16,great:28,greater:[16,23],greedi:[16,25,28,29,35],greeedi:[16,25],group:[16,27,28,29,35],grow:16,gtop:[16,28],guarante:3,guard:[3,28],guess:[29,41],guid:28,guidanc:28,h16:[5,6],h4cker1970:7,hack:[3,16,24],hand:[3,13,28,29,30,41],handl:[8,22,25,28,29,35,41],handler:[16,24],hang:[16,21,28],happen:[9,11,16,24,25],happi:13,hard:[3,16,17,29,30,41],hardcod:[16,19],harder:2,hardest:[2,3],hartmut:13,has:[1,8,10,13,14,16,17,19,21,22,24,26,27,28,29,30,33,34,35,39,40,41],haskel:[7,14,29,39],hat:28,have:[0,2,3,14,16,24,25,29,41,42],head:6,header:[12,19,28,29,32,41],header_field:6,heart:[29,30],heavyweight:[29,35],helli:13,help:[13,16,27,28,29,33,35,41],helper:14,henri:[29,41],here:[2,15,16,17,18,29,30],heurist:28,hex:[0,1,3,16],hexadecim:[3,16,17,26,28,29,41],hexdigit:[5,6],hexdump:[16,17],hier_part:5,hierarchi:27,higher:[16,25],his:[29,35,41],histor:[29,41],histori:[16,29,35],hit:[16,22,29,41],hoc:16,hold:16,home:4,hood:16,hopefulli:[29,41],host:[5,6,13,14,28],how:[4,7,8,11,16,27,28,29,34],howev:[3,9,11,16,19,21,22,24,27,29,34,35,41],hs1:6,hs2:6,hs3:6,hs4:6,htab:6,html:[5,6,28],http:[5,12,13,16,28],http_name:6,http_rfc7230:6,http_version:6,human:2,hybrid:16,i686:[14,28],ia64:28,iakovlev:[13,29,41],icc:28,iconv:2,icpcbin:28,idea:[16,29,30],ideal:16,identifi:[1,3,16],ifdef:[16,19],ifs:[16,28],ifstream:[12,16],ignor:[11,16,26,28,29,35],ill:[3,8,16,22,26,28],illog:16,illustr:28,ilovezf:[29,36],imag:16,imaginari:[7,8],immedi:[16,27],implement:[2,3,16,27,28,29,34,35,41],impli:16,implicit:[16,28],implicitli:16,imposs:[16,29,34],improv:[28,29,30,33,35,41,42],inc:28,includ:[0,1,2,3,4,5,6,7,8,9,10,11,18,19,21,22,28,29,41,42],inclus:28,inconsist:28,inconveni:16,incorpor:13,incorrect:[16,19,28,29,41],increas:28,incur:[29,35],inde:[28,29,41],indend:28,indent:16,index:[6,28],indic:[2,16,25],individu:[1,8],ineffici:[3,16,29,30],infeas:16,infinit:[16,21,25,28],info:[4,16,28],inform:[16,24,27,28],infra:28,infrastructur:[29,41],inher:[27,29,35],init:[1,16],init_input:[5,6],initi:[1,16,19,27,28],inlin:3,inner:[1,16,21],inplac:[16,28,29,30],input:[2,3,4,7,9,10,11,13,16,17,19,20,21,22,24,25,27,28,29,30,35,41],input_t:[2,3,5,6],insensit:[16,28],insert:16,insid:[16,18,26],instal:[14,28,29,42],instead:[11,13,16,19,21,28,29,30],int_max:3,integ:[0,3,12,16],integr:[16,28],intel:28,intend:[16,21,29,41],interact:16,interconnect:1,interest:[28,29,34,35],interf:[16,28],interfac:[0,13,27,28],interfer:[16,28],intermedi:[27,28],intermix:16,intern:[16,28,29,34,39],interpret:[16,23,27,28],interrel:[0,12,16],interv:28,introduc:[16,29,39,42],invalid:[16,28],invent:[13,29,34,35],invert:[16,28],invoc:[16,28],invok:[9,16],ios:11,ip_liter:[5,6],ipv4:[5,16],ipv4address:[5,6],ipv6address:[5,6],ipvfutur:[5,6],irc:[7,13],irix6:28,isn:16,iso:[6,28],issu:[13,16,28,29,34,37,41,42],iter:[16,17],its:[8,13,16,18,21,25,27,28,29,34,41],itself:[13,16,25],iucs2_t:2,iutf16_t:2,iutf32_t:2,iutf8_t:2,jcfp:[13,29,35],jean:[29,35],jeff:[29,35],jess:[29,35],john:[29,35],join:16,jon:7,joscherl:13,jul:6,julian:[29,35],jump:[1,13,16,19,21,24],just:[3,16,24,26,28],kaiser:13,keep:[6,28],kei:[5,16,17],kelli:[13,29,35],kernel:5,key2:5,keyword:[3,9],kind:[9,16,25,29,30],klode:[29,35],know:[10,16,27],known:[8,27,29,34],kuklewicz:[28,29,39],l_cc_p_9:28,label:[1,16,24,28],labelprefix:16,languag:[2,3,6,13,16,27,28,29,41],larg:[16,27,28],larger:[13,16,17],largest:[16,26],last:[6,16,19,24,28,29,41],later:[16,29,30,40],latest:13,laurikari:[29,35],layer:[29,30],lazi:[27,28],lead:[29,30,35],least:[16,24,29,34],leav:13,ledkov:[29,35],left:[3,16],leftmost:[16,28,29,35],legaci:16,len:[2,16],length:[6,10,16,17,24,28,29,35,41],less:[9,10,16,29,34],lesson:28,let:[2,16,17,19,22,24,25],letter:[2,13,16,19,21,24],lex:[0,1,3,4,5,6,7,8,9,10,16,17,18,21,22,28],lex_dec:3,lex_flt:3,lex_hex:3,lex_line4:[16,17],lex_oct:3,lex_str:3,lex_ucs2:2,lex_utf16:2,lex_utf32:[2,16],lex_utf8:[2,16],lexem:[3,16,21,26],lexer:[1,10,12,13,16,17,19,21,22,24,27,28,29,32,34,41],lexic:0,lfdp:8,lib:[14,28,29,41],librari:[14,16,28,29,41],libre2c:[14,28,29,41],libtool:14,licens:28,lightweight:13,like:[2,16,18,19,21,22,24,27,28,29,35,41],lim:[3,5,6,9,10,16],limit:[0,1,3,8,16,29,41],line4:[16,17],line:[0,2,4,7,8,11,16,18,25,28,29,30,41],linear:[27,29,35],link:28,linux:[8,13,28],list:[1,7,13,16,28],liter:[3,5,16,28,29,41],littl:28,live:16,local:[16,18,28],locat:[14,16,28,29,41],logic:[29,35],long_max:3,longer:[16,29,41],longerst:[16,25],longest:16,look:[3,16,17,18,19,24,28,29,41,42],lookahead:[5,6,13,16,28,29,35,39],loop:[4,5,6,7,8,9,11,16,21,24,28],lop:[28,29,41],lope:13,lopla:[13,28],lot:[13,16,29,34,35,41],low:1,lower:[16,23],lowercas:[16,21],lowest:[16,24],ls32:[5,6],luke:[29,40],mac:[29,36,38],maciel:[29,35],macintel:28,maco:28,macppc:28,macro:[3,16],made:[28,29,40],mai:[0,2,3,8,13,16,24,25,27,29,30,35,41],mail:13,main:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,16,17,18,19,21,22,27,29,30,39],maintain:[13,28],major:16,make:[3,13,14,16,20,21,23,26,28,29,30,35,41],make_pair:8,makefil:28,malloc:[4,5,6,7,9,16],man:28,manag:[29,35],mandriva:28,mani:[3,13,16,20,25,27,28,29,35,41],manipul:16,manpag:[28,29,35],mant_frac:3,mant_int:3,manual:[5,13,19,28,29,34,35,41,42],map:[2,16,17,19,24],mar:[3,5,6,9,10,11,28],mark:[16,19],marker:16,marku:13,mask:16,mast:[13,29,35],master:28,match:[13,16,17,20,21,22,24,25,27,28,29,39,41],math:16,matter:[3,16,19,24],max:[3,4,5,6,16,18,28],maxim:16,maximum:16,maxnmatch:[16,28],mcm:3,mean:[16,24,26,27,29,34],meaningless:[16,26],meanwhil:[29,30],measur:[16,24],mechan:[9,10,11,16],mechnism:11,membership:27,memcpi:[6,16],memmov:[3,5,6,16],memoiz:27,memori:[11,14,16,17,22,25,28],memset:[3,5,6,16],mention:[29,35],merg:[1,16,28],mess:[29,34],messag:[2,6,12,16,28,29,35,41],message_head:6,method:[6,9,10,11,16,22,29,41],metzger:[29,35,40],microsoft:28,mictosoft:28,middl:[10,16,22],midrul:[],might:[11,14,16,17,21,27,29,34,41],migrat:28,mike:[13,29,40],mileston:[29,35],mimin:[29,34],min:[16,28],ming:14,mingw32:28,mingw:[14,28],minim:[16,24,28,29,34],minimum:[16,28],minor:[13,16,28,29,30,36,37,38,40,42],mip:28,mipspro:28,mirror:28,miscellan:[16,26],miss:[13,16,17,22,28,29,32],mistak:16,mistakenli:[16,26],mitek:7,mitrofan:7,mix:[16,28,29,41],mkdir:14,mmmmpp:16,mobil:[29,41],mode:[2,16,28,29,41],model:[13,16,28,29,35],moder:16,modif:28,modifi:[13,14],mogenet:13,moor:[16,28,29,34],more:[3,9,10,11,13,14,17,22,24,26,27,28,29,30,35,41],moreov:[29,30],most:[13,16,22,28,29,33,35,39,41],mostli:[29,41],move:[11,16,27,28,29,41],mozilla:6,mplate:3,msvc:[16,28,29,41],mtag:[6,7,16,28],mtag_t:[6,7],mtagpool_clear:6,mtagpool_fre:6,mtagpool_init:6,mtagpool_next:6,mtagpool_t:[6,7],mtagtre:16,mtp:6,much:[2,3,13,16,20,24,27,28],multi:[16,28],multibyt:16,multilin:[16,26,28],multipl:[1,2,4,7,12,13,16,27,28,29,30,33,35,41],multiple_block:0,must:[3,16,21,22,24,26,27,28,29,34,41],mutabl:3,naiv:16,nake:[1,2,3,5,16,19,28],name:[1,5,7,16,18,19,28,29,41],namespac:3,narrow:27,nativ:28,natur:[2,16],naumov:[29,41],nearest:[29,35],necessari:[14,16,22,27],necessarili:[29,41],nee:3,need:[2,3,5,6,8,14,16,26,27,28,29,30,35,41,42],need_more_input:16,negat:[16,20,28],neither:13,nerd:13,nest:[16,28],net:[13,28],never:[16,24,25],newli:[28,29,41],newlin:[16,26,28],next:[1,6,9,16,28],nextlabel:[16,28],nfa:[13,16,27,28,29,35,41],nfst:27,nick:7,nicknam:7,ninja:13,node:16,non:[7,11,16,21,28],nondetermin:16,nondeterminisitc:27,nondeterminist:27,none:[16,20,28],nontrivi:3,noption:8,nor:13,normal:[1,2,16,18,24,25,29,41],not_eq:3,notabl:13,notat:[27,28],note:[0,1,2,3,10,11,16,20,21,22,24,28,41],noth:[16,17,19],notic:16,notion:16,novel:27,now:[16,17,22,24,25,28,29,30,34,41,42],nuffer:13,nullabl:[16,21],nullifi:11,num:16,number:[2,3,8,16,17,18,19,24,28,29,35,41],numer:[2,3,13,16,29,35],nunknown:8,nuno:13,obei:2,obs_fold:6,obs_text:6,obsolet:[29,34],obtain:[13,16],obviou:27,occasion:14,occur:[16,22,28],occurr:16,ochar:8,oct:[0,1,3,16],octal:[3,16,26,28],odfa:16,oexampl:[16,22],off:[16,18,28,29,41],offset:16,ofstream:11,often:[13,16,27],okui:[28,29,39],old:[28,29,39],older:[13,14,16,19,23],oleksii:[13,29,33],omit:[2,16,28],onc:[9,11,16],one:[1,2,3,7,8,10,16,17,21,24,27,28,29,34,35,41],ones:28,onli:[1,3,9,11,14,16,18,21,26,27,28,29,30,34,35,41],onlin:[29,35],ooo:[16,26],open:[3,7,9,13,28,29,41],oper:[3,16,20,28,29,35,41],operand:[28,29,41],opt:8,optim:[13,16,28],option:[1,2,12,14,18,19,20,21,26,28,29,30,34,35,39,40,41],options_t:8,or_eq:3,order:[27,28,29,41],ordinari:[16,24,27],org:[5,13,28],origin:[13,16,28,29,35],origin_form:6,ose:3,other:[2,3,13,14,16,19,24,25,26,27,28,29,30,35,41],otherwis:[16,29,42],our:[4,7,8,16,17,27],out:[2,11,14,16,28,29,30,35],out_of_rang:28,out_t:2,outer:[16,21],outlin:[29,39],output:[16,17,18,27,28,29,30,41],outstand:[29,35],over:[16,21,27,29,35],overal:[29,30],overflow:3,overflown:3,overhead:[3,13,16,24,29,30,35],overlap:16,overli:[29,35],overlook:16,overrid:[0,9,11,16],overrun:28,overview:13,overwrit:[10,28],own:[2,8,13,16,29,41],ows:6,pack:[16,17,28],packag:[13,28],pad:[9,10,11,29,41],page:[28,29,39],paid:[29,34],pair:8,panic:[5,6],paper:[5,6,16,28,29,35,39,41],paramet:[16,18,28],pared:[29,35],parent:16,parenthes:[16,27],pars:[0,3,4,5,6,7,8,12,13,16,27,28,29,30,35,41],parser:[3,5,6,8,14,16,28,29,41],part:[2,3,16,22,27,28,29,30,41],partial:[2,16,28,29,35],particular:[13,16,27,28,29,34,35,41],pass:[4,5,16,25,28,29,30,35,41],passwd:[12,16],password:4,past:[2,16,24,25,29,40],patch:[16,28,29,35],path:[5,8,16,17,24,27,28],path_abempti:[5,6],path_absolut:[5,6],path_empti:[5,6],path_rootless:[5,6],patienc:[29,35],pattern:[12,16,24],paulo:[13,29,35],pchar:[5,6,8],pcln:2,pcom:2,pct_encod:[5,6],pdot:2,pdsh:2,pedant:28,peek:[10,11],peform:16,peopl:[16,26,28,29,35,41],per:[7,9,11,16,17,28],perfect:[16,21],perfectli:16,perform:[9,10,16,27,28,29,35,41],period:28,perri:[29,35,40],persist:16,peter:[13,28,29,35],petr:[13,29,35],phase:[29,30],philippschaef:[29,35],php:[13,28],phrase:16,phyp:2,pick:0,pictur:[15,16],pie:28,piec:[16,24,28],place:16,placehold:16,plain:[2,16],platform:[28,29,35],plattform:28,playground:[13,29,41],pleas:[13,28],pmt:6,png:[15,16,17],point:[2,3,15,16,24,28,29,41],pointer:[16,28],polici:[16,24,28],port:[5,6,28],portabl:[12,16,28,29,41],portag:4,posiiton:16,posit:[3,16,17,21,29,39],posix:[13,16,28,29,35,39,41],possibl:[8,10,11,14,16,20,24,27,28,29,34,41,42],power:[16,22,27],ppc:28,pqst:2,practic:16,prece:28,preced:[16,25,28,29,41],precis:16,precompil:[14,28],precondit:16,pred:[6,7,16],predefin:[16,29,41],prefix:[1,14,16,17,28],prematur:16,preprocessor:3,prereleas:28,present:[16,18,28],pretend:[16,17],prevent:[16,21],previou:[16,28],primari:27,primit:[10,16,29,35],principl:9,print:[16,28,29,41],print_channel:7,print_head:6,printf:[0,1,2,3,4,5,6,7,8,9,10,16,18,19,21],prior:[16,29,34],prioriti:[1,16,24,25],privat:[3,28],probabl:[16,28],problem:[9,16,25,27,28,29,30,33,35],proce:[3,16],procedur:[27,29,34],process:[16,28,29,30,34],produc:[16,27,28],program:[3,9,11,13,17,18,19,21,28,29,30],progress:14,project:[13,14,16,28,29,41],promit:16,proper:[29,39],properti:[29,34],protect:3,protocol:[16,28],provid:[13,14,16,20,29,41],prt:2,psem:2,pub:[5,28],pull:[16,28],punctuat:[2,3],pure:[16,26],purpos:[29,30],push:[16,28],push_back:[7,8,16],put:[11,14],pxcl:2,quantifi:28,queri:[5,6],question:13,quick:[29,31],quickcheck:14,quit:[2,16,24,27,28,29,34],quot:[8,16,22,26],radzik:16,rais:16,random:[29,35],rang:[20,26,28],rare:[13,29,41],rather:[1,2,3,16,29,41],raw:[16,28],rcs:28,re2:[29,41],re2c:[0,1,2,3,4,5,6,7,8,9,10,11,14,15,16,17,18,19,20,21,22,23,24,25,26,27,29,30,34,35,41,42],re2c_path:14,reach:[10,16,22],read:[11,12,16,22,24,25,27,28],read_fil:[16,17],readi:2,readm:28,readsom:28,reagrdless:16,real:[3,10,16,29,30],realli:[29,30],rearrang:[29,41],reason:[2,16,20,23,24,25,29,30],reason_phras:6,rebalanc:[29,30],rebuild:[14,28],receiv:13,recent:16,recogn:[3,16,26,28],recognit:[29,35],recommend:[16,24],reconstruct:27,record:[12,16,27,29,35],recurs:7,red:28,redefin:9,rediscov:[29,40],reduc:[16,28,29,35],redund:[28,29,35],ree:16,refer:[16,28],reg_nam:[5,6],regardless:[16,24],regener:[29,30],regexp:16,regist:[3,29,35],regress:28,regular:[14,27,28,29,35,39,41],regularli:14,reimplement:[16,28],reinterpret_cast:3,rel:[16,29,30,35],relabel:[16,29,34],relat:[0,16,27],releas:[13,14,28],reli:[10,11,16,19],remain:[16,19,24,28,29,34],rememb:27,remov:[16,25,28],renam:[28,29,41],rend:28,render:[15,16],repackag:28,repeat:[29,30],repetit:16,replac:[16,17,28,29,39,41],repli:16,repo:28,report:[3,8,12,13,16,22,23,24,25,26,28,29,31,32,33,34,35,36,37,38,40,42],repositori:[13,14,28],repres:[2,16,24],represent:16,request:28,request_lin:6,request_target:6,requir:[3,9,10,11,16,27,28,29,35,41],requr:13,research:[13,28,29,41],reset:[16,29,42],resolv:[16,28,29,41],respect:[28,29,34,35],respond:16,respons:[11,13,28],restor:16,restrict:16,result:[11,13,16,17,20,22,25,27,28,29,30,34,35],resum:[3,16,21],rethan:[13,29,35],retu:3,reus:[2,16,28,29,41],reusabl:[29,41],reveal:[29,41],reversed_condition_ord:[16,19],rework:28,rexx:28,rfc:[12,16],rid:28,right:[2,3,16,21],roll:16,rollback:[29,41],root:[4,16],ross:[13,29,35],rough:28,roughli:16,routin:16,rp1:6,rp2:6,rst2man:14,rst:28,rsync:5,rts:28,rui:[28,29,35],rule:[1,2,5,17,18,21,22,26,27,28,29,41],run:[0,1,2,3,4,5,6,7,8,9,10,14,16,17,18,19,21,24,27,28,29,33,34,41],run_test:[14,28],ryan:[13,29,35,38],rygoravich:7,s32:16,s_to_n32_unsaf:28,sacr:[16,24],safe:16,sai:[16,21,24],said:27,sake:[2,16,17],salo:[29,41],same:[0,2,3,9,16,19,21,25,26,27,29,34],samuel006:[29,35],sat:28,satisfi:16,satoshi:[29,39],savabl:28,save:[16,28],scalar:16,scan:28,scanner:[13,16,28,29,35],scc:16,scheme:[5,6],scm:3,scope:0,scratch:[29,30],script:[14,28,29,31],search:[9,16],second:[8,9,16,24,25,29,42],section:[16,28,29,35],secur:16,sed:[16,17,28],see:[13,16,17,21,24,25,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],seek_end:[2,4,7,9],seek_set:[2,4,7,9],seekg:11,seem:[29,35],seemingli:27,seen:16,segfault:28,segment:16,segv:28,segvault:28,self:[16,17,29,34,35],semant:[16,18,24,29,35],semicolon:16,send:[13,16],sens:[16,20,21,26,27],sensit:[16,19,28],sentinel:[9,12,22,29,41],sentinel_in_midrul:[],sentinel_in_midrule2:[],sep:4,separ:[0,8,14,16,29,41],sequenc:[16,17,19,24,26,27,29,41],sequnc:16,sergei:[13,29,31,33,35,40,41],serghei:[13,29,41],seri:[13,29,35],seriou:[29,39],serv:[13,16,28],server:6,set:[1,16,22,27,28,29,35,42],setup:28,sever:[16,28],sfx:3,sgi:28,shadow:[16,25],share:[16,17,29,42],shift:16,shmidt:[29,38],shortcom:[29,41],shortcut:16,shorter:16,shortest:[16,28],should:[2,10,12,14,16,22,24,25,26,28,29,35],shouldn:16,show:[4,7,8,11,16,18,24],show_bug:28,shown:10,side:[29,34],sign:[3,16],signal:16,signatur:9,signific:[29,34,35],significantli:[16,29,30],silenc:[16,21],silent:[16,23],similar:[1,27,28,29,30],similarli:[16,25],simpl:[0,2,4,7,16,17,24,27,28,29,30,34,35,41],simpler:[3,16],simplest:[14,16,29,41],simpli:[16,24,29,34],simplic:[2,16,29,41],simplif:[29,30],simplifi:[16,28,29,30],simul:[3,27],simultan:27,sinc:[9,13,16,27],singl:[0,1,2,16,22,24,25,26,28,29,35],sirzooro:[29,35],situat:[16,29,41],size:[3,5,6,7,16,28],size_t:[2,3,4,5,6,7,9,10,16],sizeof:[2,3,6],skeleton:[14,17,28,29,30,33,34,35],skimpi:28,skip:[16,28],skocik:[13,29,35],skvadrik:[13,28],slightest:3,slightli:[16,28,29,41],slow:28,slowdown:16,slower:[16,29,41],small:[14,16,28,29,35],smaller:13,smallest:16,smith:[7,29,35],socket:16,solari:28,solv:[16,27],some:[2,3,14,16,19,20,21,23,24,25,27,28,29,30,34,35,37,40,41,42],someon:13,somestr:10,someth:[16,26,28,29,41],sometim:[16,25,26,27,28],somewhat:[16,29,41],somewher:[13,28],soon:[16,29,30,35],sophist:27,sort:28,sourc:[13,16,28,29,41],sourceforg:[13,28],space:[16,28,29,35],spamassassin:13,speak:[16,29,34],spec:28,special:[2,14,16,17,19,26,27,28,29,35,41],specif:[16,17,28],specifi:[16,22,24,28,29,41],speed:13,speedup:[29,34],spell:[27,29,35],spent:[29,35],sphinx:14,spirit:2,spring:[29,30],spuriou:14,src:[8,28],ssh:5,ssp:28,st1:6,st2:6,stabl:28,stag:[4,5,6,7,8,16,28],stage:[16,28],stand:16,standalon:[1,16,28,29,35],standard:[3,11,16,28,29,41,42],standpoint:[29,41],start:[1,3,9,12,18,19,27,28,29,30,35],start_label:28,start_lin:6,startlabel:[16,28],stat:[3,16,28],state:[1,13,24,27,28,29,34],statement:[16,17,19,28,29,30],static_cast:3,statist:[16,28,29,30],statu:[4,7,16],status_cod:6,status_lin:6,std:[7,8,12,14,16,28],stderr:[4,5,6,7,9],stdin:[11,16],stdint:16,stdio:[0,1,2,3,4,5,6,7,8,9,10,16,18,19,21],stdlib:[4,5,6,7,9,16,29,42],stdout:[14,16],step:[29,34],stick:16,still:[3,28,29,35],stl:[11,16],stlport4:28,stop:[16,21,24,25],storabl:28,store:16,str:[2,8,16],straightforward:16,strang:[16,23,27,29,35],strategi:[29,30],stream:[11,16],streampo:11,strictli:27,string:[3,5,6,8,10,12,17,20,22,24,26,27,28,29,30,35,41],strlen:[10,16],strongli:[9,11,16],struct:[2,3,5,6,8,12,16,28,29,41],structur:[7,13,27,28],stub:[29,30],studi:[29,35],studio:28,stuff:[29,34],style:[11,16,28,29,41],sub:[1,29,41],sub_delim:[5,6],subdirectori:[14,16],subexpress:16,subject:[29,35],submatch:[13,28,29,35,39,41],subscrib:13,subsequ:16,substitut:16,substr:27,subsystem:[28,29,41],subtarget:28,subtl:[16,24],success:[16,28,29,41],successful:[],successfulli:[16,29,41],sucess:[],suffic:16,suffici:16,suffix:[8,16],sugar:[1,29,35],suggest:[16,19,22,29,30,31,35],suit:[14,29,34],suitabl:[16,29,35],summar:8,sun:28,suppli:[16,28],support:[2,13,14,28,29,35,41],suppos:[16,24],suppress:[9,11,16,28],sure:[3,13,16,24,29,41],surprisingli:[29,35],surrog:[16,24],surround:16,surviv:16,suse:28,suzuki:[28,29,39],swanson:28,swap:[16,23],symbol:[2,21,22,24,26,27,28,29,35,41],sync:28,synchron:[29,35],syntact:[1,16,27,29,35],syntax:[5,6,18,28],syntax_error:16,system:[13,16,28,29,30,32,35],tabl:[13,16,19,28,29,34],tag:[4,5,6,7,8,12,13,16,17,27,28,29,35,39],tagopt:[16,28],take:[3,9,13,14,16,17,25,27],taken:[13,16,29,41],talk:16,tape:27,tar:28,taran:[13,29,33],tarbal:[13,14,28],target:28,taro:[29,39],task:[0,16],tast:3,tchar:6,tdfa:[16,28],techniqu:[16,29,34],tell:[1,16,17,24],tellg:11,templat:[0,1,2,3,13,16],temporari:[29,41],ten:[29,35],term:[16,24,27],termin:[10,16,21,22,28],terpstra:[29,41,42],test:[16,27,28,29,31,34,35,40,41],testsuit:[29,34],text:[6,16,24,28],than:[1,10,13,16,23,27,28,29,35,41],thank:[29,31,33,35,36,37,38,40,41,42],thei:[0,1,2,3,12,13,14,16,17,26,27,28,29,30,35],them:[3,8,11,13,14,16,19,24,25,28,29,30,35,41],theoret:[29,39],therefor:[16,20,27],thi:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,16,17,18,19,20,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,40,41,42],thing:[16,22,28,29,30],think:[16,26,29,30],those:[2,16,18],though:[3,10,16,29,35],thread:28,three:[16,17],threshold:16,through:[16,24],thu:[3,6,16],tidi:[29,35],tied:28,tildeslash:28,tim:[13,29,35],time:[10,14,16,27,28,29,30,33,35,41],tmp:[4,28],tnfa:28,togeth:[16,17,28,29,35],toggl:[16,19],tok:[3,5,6,9,10,16],token:16,too:[16,28,29,35],tool:[16,28,29,30,34,41],top:[16,29,35],topolog:16,total:[29,35,39],toupper:2,toward:2,tpng:[15,16,17],track:[16,27],tracker:13,tradit:[13,27,29,35],trail:[16,28],transduc:27,transfer:16,transform:[16,27,29,41],transit:[1,16,19,27,29,35,39],translat:[1,16,28,29,41],transmit:16,transpar:28,travi:[28,29,41],treat:[16,24,26],tree:[14,16],tri:[16,17,21,22,27,29,41,42],trick:[29,34],tricki:14,trigger:[16,28],triplet:[16,17],trivial:[3,16],trofimovich:[13,27,29,31,33,35,40,41],troubl:[29,40],trull:[29,35],tunnel:[16,29,34],turn:[16,18,22,27,28,29,35],tutori:28,tw0:16,tweak:[16,28],twice:[3,16,28,29,34,41],two:[16,17,19,25,28,29,34,35,41],txt:[2,16],type:[1,2,6,16,19,26,27,28,29,41],typedef:[2,3,5,6,7,8,16],typeid:3,typenam:[2,3],typic:28,typo:[8,16,28],u2200x:[29,41],u2203i:[29,41],u2800:2,u2801:2,u2802:2,u2803:2,u2804:2,u2805:2,u2806:2,u2807:2,u2809:2,u280:2,u280a:2,u280b:2,u280d:2,u280f:2,u2811:2,u2812:2,u2813:2,u2814:2,u2815:2,u2816:2,u2817:2,u2819:2,u281:2,u281a:2,u281b:2,u281d:2,u281f:2,u2820:2,u2824:2,u2825:2,u2826:2,u2827:2,u282d:2,u2830:2,u2832:2,u2835:2,u283a:2,u283c:2,u283d:2,ubiquit:[29,35],ucs2:[2,16],uhhhh:[16,26],uhhhhhhhh:[16,26],uid:4,uint32_max:28,uint32_t:16,uint8_t:16,uint:28,uint_max:3,ulong_max:[0,1,3],ulya:[13,27],unaccept:16,unchang:13,uncondition:[],uncontract:2,undefin:[16,17,24],under:[14,16,28],underestim:28,underli:[13,16,29,34,35],underscor:[9,16,28],understand:[13,16,29,41],unescap:[3,28],unexpect:16,unexpected_eof:16,unexpectedli:16,unfold:16,unicod:[2,16,24,28,29,41],unicode_categori:[28,29,41],unintent:16,union:3,uniqu:[1,16,29,34],unit:[2,14,16,24,25,28,29,40,41],unix:[7,11,28],unknown:[8,16],unknown_t:8,unless:[16,24,28],unlik:[3,27,28],unnecessari:16,unreach:[16,25,28],unrecogn:8,unreserv:[5,6],unseen:3,unsign:[0,1,2,3,6,16,28],unsurprisingli:3,untermin:28,until:[16,25,29,30,41],unus:[16,18,28],unusu:13,upcom:28,updat:[13,14,16,28,29,30,41],upper:[16,23],uri:[12,16],uri_rfc3986:5,usabl:28,usag:3,usd:1,use:[0,1,2,3,9,10,11,13,14,16,19,24,28,29,34,35,41],used:[3,5,6,9,13,14,16,17,21,22,24,27,28,29,30,34,35,39,41],useful:[16,28,29,34,35,41],useless:[16,26],user:[4,5,6,7,13,14,28,29,35,39,41],userinfo:[5,6],uses:[1,5,6,7,9,11,14,16,19,29,30,34],using:[3,11,13,16,17,19,22,24,27,28,29,35,41],usr:[8,29,42],usual:[9,10,11,16,27,29,30,34,35,39,41],ut32:16,utf16:[2,16],utf16l:2,utf32:[2,16],utf32l:2,utf8:[2,16,28,29,41],utf8_ani:[15,16],utf:[2,6,15,16,24,28],util:10,uwaterloo:[13,28],val2:5,val:5,valgrind:[14,28],valid:[3,16,21,24,28,29,34],valu:[16,28,29,42],variabl:[16,17,18,24,28,29,41],variant:[29,41],variou:[14,16,18,29,30],vchar:6,vector:[7,8,16,28],verbatim:16,verbo:8,verbos:[8,16,28,29,41],veri:[3,13,16,17,27,28,29,30,34,35,41],verif:[29,30,34],verifi:[16,29,30,34],vernum:[16,28,29,40],versa:27,versatil:[13,29,35],version:[14,16,23,28,29,35],via:[16,29,39],vice:27,vill:[29,35],viola:[16,17],violat:[16,22,25,28],virtual:3,visibl:[16,29,39,41],visual:28,volatil:3,volunt:13,vtest:[14,28],w64:[14,28],w_cc_c_9:28,wai:[9,11,13,16,20,27,28,29,34,41],wait:16,wake:[13,29,41],wall:28,want:[14,16,23,24,27],warm:[29,30],warn:[17,18,19,20,21,22,23,24,25,26,28,29,30],warranti:13,watch:14,wchar_t:3,wcondit:28,wconvers:28,weard:28,web:28,websit:[13,14,28,29,30,41],weffc:28,welcom:13,well:[2,10,13,16,21,22,28,29,34],wempti:28,were:[28,29,33,34],werror:[16,22,23,28],weslei:[29,41,42],weveryth:28,wextra:28,wformat:28,what:[16,19,23,24,27,28,29,35,41],whatev:13,whatsoev:13,when:[3,10,16,17,21,22,23,24,26,28,29,35,41,42],whenev:16,where:[3,8,16,17,22,26,29,41,42],wherea:16,whether:16,which:[2,3,10,11,13,16,18,19,23,25,26,27,28,29,30,41],whitespac:[3,16,28],who:[29,31,41],whole:[16,29,30],why:[16,19,27],wide:[16,28,29,41],width:[16,24],wiki:[29,39],wikipedia:28,wild:13,wildcard:[16,28],william:28,win32:28,window:[11,14,28,29,33,41],wine:[14,28],wippler:[29,35],within:[1,3,16,24],without:[3,16,18,20,24,28,29,41],wmatch:28,wno:[16,21,28],wnondeterminist:[16,28],won:[16,21],word:[16,27,28],work:[16,19,22,28,29,30,35,39,41],world:[3,16,24,27],wors:[16,22,29,41],worst:27,worthwil:27,would:[3,11,13,16,24,29,34,35,41],wredund:28,write:[16,27,28,29,41],written:[3,12,13,14,16,28],wrong:[16,22,28],wrote:[29,35],wsentinel:[],wsign:28,wsp:[3,7,8],wsuggest:28,wswap:28,wtest:[14,28],wundefin:[17,28],wunreach:28,wuseless:28,www:[6,28],x00:[0,1,2,3,4,5,6,7,8,10,16,20,21,22,25],x1f:6,x20:[2,3],x25:3,x2e:3,x2f:3,x30:[5,6],x31:[5,6],x34:[5,6],x35:[5,6],x39:[5,6],x3a:3,x3c:3,x3e:3,x5c:3,x5d:[16,26],x60:[16,24],x61:3,x62:[3,16,24],x63:3,x64:28,x65:3,x66:3,x67:3,x69:3,x6c:3,x6d:3,x6e:3,x6f:3,x70:3,x72:3,x73:3,x74:3,x75:3,x78:3,x7e:6,x7f:[16,24],x80:[6,16,24],x86:28,x8f:[16,24],x90:[16,24],x9f:[16,24],xa0:[16,24],xbf:[16,24],xc0:[16,24],xc1:[16,24],xc2:[16,24],xd800:[16,24],xdbff:[16,24],xdc00:[16,24],xdf:[16,24],xdfff:[16,24],xe000:[16,24],xe0:[16,24],xe1:[16,24],xef:[16,24],xf0:[16,24],xf1:[16,24],xf3:[16,24],xf4:[16,24],xf5:[16,24],xff:[6,16,20,24,25],xffff:[16,24],xhh:[16,26],xhhhh:[16,26],xhtml:6,xml:6,xor:3,xor_eq:3,xyz:16,yacc:28,yasm:13,ych:28,ycursor:16,year:[28,29,39,41],yes:[8,27],yet:[3,27,29,35,38],ymtagp:16,you:[13,14,16,19,23,24,28,29,33,35,42],young:[13,16,24,28],your:[16,17,24,29,33],yy0:[16,28],yy1:28,yy2:[16,18,24,28],yy3:[16,24,28],yy4:[16,18,24,28],yy5:28,yy6:[16,18,28],yy7:28,yyaccept:[16,28],yyaccpt:28,yybackup:[9,10,11,16],yybackupctx:16,yybm:[16,28],yyc:[1,16],yyc_:1,yyc_a:[16,19],yyc_b:[16,19],yyc_bin:1,yyc_dec:1,yyc_hex:1,yyc_l:2,yyc_n:2,yyc_nam:16,yyc_oct:1,yyca:[16,19],yycb:[16,19],yych:[11,16,18,24,28],yycinit:1,yycl:2,yycnam:16,yycondtyp:[16,28],yyctabl:[16,19],yyctxmark:[0,1,16,28],yyctyp:[0,1,2,3,4,5,6,7,8,9,10,11,16,18,19,21,22,24,28],yycursor:[0,1,2,3,4,5,6,7,8,16,18,19,21,22,24,28],yydebug:[16,28],yyfil:[0,1,2,3,4,5,6,7,8,9,10,11,18,19,21,22,24,25,28],yyfilllabel:16,yygetcondit:[1,2,16,19],yygetst:[16,28],yylessthan:[9,11,16],yylimit:[3,5,6,9,10,16,24,28],yymark:[0,1,2,3,4,5,6,7,8,16,18,28],yymaxfil:[3,5,6,9,10,16,18,28],yymaxnmatch:[16,28],yymtagn:[6,7,16,28],yymtagp:[6,7,16,28],yynext:[16,28],yynmatch:[16,28],yypeek:[9,10,11,16,28],yypmatch:[16,28],yyrestor:[9,10,11,16],yyrestorectx:16,yyrestorerag:16,yyrestoretag:[16,28],yysetcondit:[1,2,16,19],yysetst:[16,28],yyskip:[9,10,11,16],yystabl:16,yystagn:[16,28],yystagp:[16,28],yyt1:16,yyt2:16,yyt:16,yytarget:16,yyyi:8,z_0:3,zakirov:[29,35],zero:[16,17,29,41],zip:28,ziris85:[29,37]},titles:["Multiple blocks","Conditions","Braille patterns","C++98 lexer","/etc/passwd","URI (RFC-3986)","HTTP (RFC-7230)","Records & structs","Options & arguments","Strings in binaries","Fake sentinel","std::ifstream","<no title>","re2c","Build instructions","<no title>","User manual","<no title>","A basic example","[-Wcondition-order]","[-Wempty-character-class]","[-Wmatch-empty-string]","[-Wsentinel-in-midrule]","[-Wswapped-range]","[-Wundefined-control-flow]","[-Wunreachable-rules]","[-Wuseless-escape]","Fast submatch extraction","Changelog","Release notes","Release 0.15","Release 0.15.1","Release 0.15.2","Release 0.15.3","Release 0.16","Release 1.0","Release 1.0.1","Release 1.0.2","Release 1.0.3","Release 1.1","Release 1.1.1","Release 1.2","Release 1.2.1"],titleterms:{"10x":28,"11x":28,"12x":28,"13x":28,"14x":28,"15x":28,"16x":28,"class":[16,20],"default":[16,24],The:[16,24,27],Using:16,adopt:28,api:16,argument:8,author:13,basic:[16,18],binari:9,block:[0,16],bound:16,braill:2,buffer:16,bug:13,build:14,changelog:28,charact:[16,20],check:16,condit:[1,16],configur:16,context:27,control:[16,24],danger:27,debug:16,depend:14,dfa:27,difficulti:27,direct:16,download:13,empti:[16,21],encod:16,eof:16,escap:[16,26],etc:4,exampl:[16,18],express:16,extract:[16,27],fake:10,fast:27,file:16,flow:[16,24],gener:16,handl:16,header:16,http:6,ifstream:11,includ:16,instruct:14,interfac:16,introduct:27,lexer:3,licens:13,manual:16,midrul:[16,22],more:16,multipl:0,note:29,old:[16,24],option:[8,16],order:[16,19],pad:16,paper:13,passwd:4,patch:13,pattern:2,program:16,rang:[16,23],re2c:[13,28],recognit:27,record:7,refil:16,regular:16,releas:[29,30,31,32,33,34,35,36,37,38,39,40,41,42],reusabl:16,rfc:[5,6],rule:[16,24,25],sentinel:[10,16],skeleton:16,start:16,state:16,std:11,storabl:16,string:[9,16,21],struct:7,submatch:[16,27],support:16,symbol:16,syntax:16,test:14,trail:27,uri:5,user:16,version:13,visual:16,warn:16,wcondit:[16,19],wempti:[16,20],wmatch:[16,21],wsentinel:[16,22],wswap:[16,23],wundefin:[16,24],wunreach:[16,25],wuseless:[16,26],yyfil:16}}) \ No newline at end of file -- 2.40.0

a;GJZ;kww8L-gfINlIqc2_ms>BR|FuY-n&8&UF3YeSJiR8?+*DA(FyT z3X&x_U#p-h+WNQ=4%m%YSUyxembyabIo+Pb%iu-yjfJ8hBf&1D`O__j`plNM=0Zcf zMr)nwfi8HWyAbjI7`-&VFZ8~HE!$fm4b}6y-cP-s^yUDadan^o)6-OvR4ZSm$Yoc& z-hJ<<_qi0b+m~ dPMQWQDY51CiRv}aXv3vb7{wkZeVVmf{|ETyX$}AY literal 0 HcmV?d00001 diff --git a/.doctrees/releases/release_notes/1_0_1.doctree b/.doctrees/releases/release_notes/1_0_1.doctree new file mode 100644 index 0000000000000000000000000000000000000000..51da21d0acd855136fe4dc38d9c6f4e9395b8378 GIT binary patch literal 3368 zcmd5;TW=dh6mD~O5<6*1cxV%K5voXvY{wO%B?$3`1Q9`^1@Tf%$Gc|a$nw+tA1l*(xqRE zRVs?hywCkMch0DO?%)cUzN#V%GyP^5b8A7w_j<~c>T4^?v)Q4~!;ujK;>rD{<3qYC zWJ^AfJET!Q^cP*J6VbJ!D;^m&>PF&9#9bqvhHNNV#)rbPp-8*dgrJsw+UW;NHLU9P z*ct0}jD;UZ7b|%m&Ntu~9~z#?`9S^oQYstZmj{VTwF&z9usu-YU?RA){k02l7R1rd zk&nncfq5=->X=&J;D0 z{s*=IQSAy*m+}a>^?NpxDjj!t6iv!-Hxp^3(jglo3-hq}^xvgrT4)<8Evsc(+^DS2 z%NjiNQ=r;ef@fcUlj>PWQST4rm#9B^jG~i|P|_cu{{32MykE60LJ8vEHaR2YhhTV& zzmHI9@>G6-*PkuFo@er#c;{|1^q*CdfQ}>vkxsZu3;B)T!AXp>ScS?Jx8X;%AM*tacffbeO0%iRVj+g} zQ6N1Z&*>?fQr@3E@Xd*(?Oyw=-77d{fh5!ylcvk(qu+o9s}&kc7toUy^Ehuq-F4*? zGUu*ug}I@w%<68uJEc@z*>73l9FUCJa<3jX1EW(1gcp9}M;_;B$2A~Zm%f1>Dhzkp z6gWg2ebezI!(pdV!ytQve6v=I5QqM((R6n3qgWYbv!jgtqH;d1GBtA5I28Vtq7irs^+>Bl zL6jY$x&?as@!2N`OUn$xB{f8usX3aeaav<`E8zyE8tIZ4DjJUWf&a+K;$q7m15F95 z3#&Gt*^JVA>)$V}QK=P%JO^kgMiEfFgLSe#qU!eTP3riVNi~!){(#Z7SQET=ZNiOX zKj*YL;pP4ETpd}gLq3V%F*XvE3G!Rj6f#E5hvD@o&tME~x#cE0sr6fcM29LJAl1|2 zKcIGC^Zp{=zDW8aLOtFNzTN)f3ew!V{j2&<_4jt|^@nTcHjzry|=;bSP}@ zH;E97#N~hHC%@`NUuKq>e?;j&68p)TkGV8xi%4I1kuRvXl>nWkZqltO-CZ{It^#mS|Yj zJ7cHpylX7{IJ{cT`f$Dh$N13jRL%$L@7Gem(H=k?B$G&pOSN$)-K`&mD2M^r zha%F$_9cRH`L=SWy69D3mqjky$LFVKuR5m}o%5F`Zwu+6aGbDJr1@AL`1c=*Q+b7~ z56C7Uty3cHS{?$=e%Gc_CF3pTfiToO`zg&Jj&*V4o&fTTxOKT(nok|Qs9dniB@_WCHlNhIw3Y5$5i%ZANP`LcR z`{e6|=pgrpRV7S5<_jC{fbW)@B!5pXypm7ka}@eIr5440;G2tuF@xdK#WEJeLJa4l zKzcr((^E97tUr6;n-fbrXPwi|dCn;dB%!*PG-Ey={RS*pE74fEfL^tj$9Ws7ZY-aZ zIS+g*$P9IBR(0u}DW&Yze$xu)fMm>^ht&`o7@asEJoojVd4#?-gLv!OH_%&!;ZBnWRGy%njA9|;nZ|GVAS2|7V2uS%iQIDf1tIat~_^n^}si2pe0$% z#%Pdn4ob^nsH7~=F%3owkxxnrT6{rax5`O2oiWfjc`z9|*M6t$uPma0kzcL)Ey*J{ zJ=Xj~F;<9`<1Vu^YAqD#%~01OL{Zg4uHZ2!4QF^D$f^9jZ>c2B91}^PsW+ewGB@a4 zbgaVn;o>C|#%ROP-NQ&2#FX1Nk>P^ghEj-aC9cpvx=oy@N`{SnXC#iQo}76qE__Thqkq(io3BOu`$(JJlbE7k4|YEwdR9mS(BR;zlr*<*jiYzQ8w87EiLKv-+=w9%ooVp T6}d>sR!E&^QlvBuvwrs<{!tWk literal 0 HcmV?d00001 diff --git a/.doctrees/releases/release_notes/1_0_3.doctree b/.doctrees/releases/release_notes/1_0_3.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e50451cae0b223f2074d5879afa944a1b509a4da GIT binary patch literal 3386 zcmd5?v3+j-zH?50UHz-uTq=KjE7D=^RBSt`j)X1z zCJ7Rey5i5`$cVIfRmdg3VMXYaPV4h>O|Hw0SH&?l z*PL>(nA!5p7a|tiir}ns+Id>gL7ZFtUW~}%;`Z-F=>k;l`}K^&s4L{2ydziq`q-sQ zzZ$Dl6qk9A`z`LAQN7$D6moqhE_ZyB6 zXseJdd0%dmMft#Abfr#2*AB0EWYn-5i7OFzjd&8Wfn*sU2+IZ{?OGE;TE=N7A1u}I zs(Z#x+0%}(h~w~LIqxC(1_I*)!!tRXsK0*}F5tK%g$WXsY7_MGLA$R;!B}-?>uVQa zEo{KCherweT*bK&flh;Oc^G{6GWaPtc9N$<8#o=jxZ!E=QYI?GMJR-BQVNBcHtwXe z^-_pZ7~;x6#Ci~%BPHjr>tO1QZvAy$zGQIxDRwJ`!unr0QcpWV5B?(4dp|S`~y@3zgjx)SFDRbO8jk8 zFhYKa1CQ|g5x6H$ZRjy-LImhGnnr&k~i^~Sgi^V#e-;K53T#xev{srh%D z^`WlA@-ew{$G5`VP@QIVecqW!sygjAt#A%VMz^_Jx1YYzsRP0bzy2eSa}?+rkgZGK zKvflnJ8cRqB92Pxc#>hUU72CfJ;ZWryv$9ERnzH^QC+89m|KHi=BDubeXSkUcY($6g>k#N^gC5;Wihpi z;$qovNglh&a?RfrBZXW!?s7You0;ZM8RlAqC}KVI3Z6jHaE6D1f-2tnmP)hSF_DIv zY6EzXyMFt5+bVn?&Tledj5Z9FJ&J`vp2^h^l-Sj|o7b{dYAO8D!p?#US@>3^bn3v` z58r>)eh%aF8w)r69tB{LC5imR2ndjj(Q|V2P^3G;dKnXjzh^|KO~fKWm;gm$WjGF)Cr;QCP-{;-3MlFipVrfpjjj=iTo0^>rt^aZ;xpZ3Z-tbaB#l3x7a2 zNF&`~P9(^(LsmB-Z$CQy1ZioRez;(UBvUho6EjY0^l>FzzceFV62nBp@gDFWIayq6 z`XitzVKuR8_nFP;d2jvur8g?I!cgP@E#)WzinlRf)=RK%&)%etkC;>g8RHiiU5z!t zd&ef+IQC0UvlMRLE7#SM#X98U3?5-R0Zs6}6{qlGRD2k25AzJp(A-W)=?svK1B!Zv{7FrOn`5sjvAP`l=&)%XfAwDs!+ zwJe%^A>SZj^(|95w7x+CYMrz#(@QHK;@_d%w!S(0dgbjV8fb}A!bv3|hE2{@Zq7=o zb7(Ml!=$I<8W82t_ZEcp>BgMK#>8rQX@5>XDy4B$nhzFrjdzy(Ciq_;YhkzsZ7}g$ e8qeuJ0Q)t~=fvB!xO|eWh$_#Rq|^=bUgsb1z6~n? literal 0 HcmV?d00001 diff --git a/.doctrees/releases/release_notes/1_1.doctree b/.doctrees/releases/release_notes/1_1.doctree new file mode 100644 index 0000000000000000000000000000000000000000..aa157708eac327eeff1465d2c3e7b5d8343f049f GIT binary patch literal 7428 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 LJ5%b+T8)1LIuYZ? literal 0 HcmV?d00001 diff --git a/.doctrees/releases/release_notes/1_1_1.doctree b/.doctrees/releases/release_notes/1_1_1.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f975b59006004e7ecb173dd44d2de75546d5e174 GIT binary patch literal 4451 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ȥ!>RdR(@&iU-1#-f23TI)&o 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 JR$CZI{vW!N<`4h? literal 0 HcmV?d00001 diff --git a/.doctrees/releases/release_notes/1_2_1.doctree b/.doctrees/releases/release_notes/1_2_1.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1718a64a6d45397206ed0a98edbba7ed1508163e GIT binary patch literal 5406 zcmc&&&2AgX5tj8YN~C2u+5onUokg;UB#xuw9u`;#&>`#1=CTLHxLvlBQY%F5Kw5O}PtG=qPs;=rU zSO0W>f64!Gtyo35m5J%3D(0qen?xA%)E0j%j(%7Cwm5WKnq3-|>xdU_2`eHYlUVb# z_@WR?Zo}}%N|jdY#hO?b8($QMm|U~cCVXbfHGjbq&I}KFo#RfgpoLhs`hs7P#Kq}9 z6dnRt?z#1hL8vXnuDBys-1-F4nOjX{%8Rpnz+8h_tK}fKP=%nc$k+g;+lUfo42bw% zOWC;m+Klt89t>D?uKAGGV5lt1MB_4=vk|-X!)2>is-ZkeJEY|Y88}kdEbTvPY z!jT9wHsU56@w97n1gh85Oh3X@0adpb9*4b-HqhhXbU7bD`7J2MMw(?}#!$aHSYBFs zA*2cLmjz>)DjiIC239Z|$Z@9C1vh~Kra%or<-w3Mn`;ndYPE{uZj@|JSusx2vESVb1k_2ciOJkI9z)o(73h=Y)T#^gN^qc$Ql=h6y5|zYgGC1eVSPFyZ-1UkB}Wn`{Gs-mpQ+ zdE9_PEQaxIFlK4)H(yFC$U>jMLXD4r1nW%>eu7=VmKn2~9rdCgJ$66TIL$ zGgdQv36`D**DC+Oht8qccQ60%UQ$$H`7VSb9@}L+o{0lQJ>{T8TCQ0#6F+We)|bmX zv+p*i?p>>ZWc5HiNAeJlkTJyj$VVUG_XGSs#P3JQ2I5FOBdL(J?|xc&)0@OaE$?j^ zd_(P@mFZcmx%D#Yrb;fid$l;P-s$btd-is*TMKk=%i#tEAIt{+d}^2~{a&3JW*5}B zydi#ldqZqalTOXT)wCPHwr0Wh`%{388eq-QgL-*;P^*;l>g}!^-wb9pK~`XDV$IEi z`Tgy|{N){`+y8u7+&bZA?_l>TH;)cVdILF;FJ;deqC$)C|@cw-J!~5tvxPj_x z;Je_qs5rkdA^%uB6pv9ttzw%m&ybv-R2lKJPdTa@)I$;O%Mnl1C^$iFcY^X}Qk7K` z-RkSam!!er@zdVV+fSdjd%dGRl?5m%ETaGIwPvTo=f%31jmzKM0G9lBe z4r+u+<-L>fG)5&7UIFRsP4?{VpqFm41%k7D{CzUPg z-rfGS=x&E@)q{5{sN7I>cN+@F(_Lo^dnA66|Y=Nrde)7 zo<@pt1L7dJ!}jyGk@!BCpA5OyN{7gJal$q1Oi&|)#9fu!c`j?7OW__Z%q+0@&G+vt zExA_7x5lvc*^7_c&mn()Vqvq}B^?Y5C19ciI-$K!kdAZo$*_2g@iJZ!+O2=W$ zDFZ?bS}fRMz3e~9A~Fs$1fRSr#JX!yM;6v3w=CgQ%{U)tVdZ!*tS6ui<~n5wF}&+3 zux@JT_-j&Tcpj_pYD_M*i@c%?4`+9JFNth;A&o3u^llhS!_YfJ5$ck$abp?~;<4L- zG6rq2ZxJxpoGc4{vrDfKt&C?OWifUr66P$WT!$0D8IA`ksT{&D{oVqxTD>*Lace5oZ`zyV zk7TJWW#|1xUXz(6w~6?#mbLJJhOoh_o}ni=a*n+!%;(746&VQSXA-1zA?Ab5 Fe*tl&-Rb}U literal 0 HcmV?d00001 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/1994_bumbulis_cowan_re2c_a_more_versatile_scanner_generator.ps b/1994_bumbulis_cowan_re2c_a_more_versatile_scanner_generator.ps new file mode 100644 index 00000000..2067b582 --- /dev/null +++ b/1994_bumbulis_cowan_re2c_a_more_versatile_scanner_generator.ps @@ -0,0 +1,5249 @@ +%!PS-Adobe-2.0 +%%Creator: dvipsk 5.526a Copyright 1986, 1993 Radical Eye Software +%%Title: paper.dvi +%%Pages: 16 +%%PageOrder: Ascend +%%BoundingBox: 0 0 612 792 +%%EndComments +%DVIPSCommandLine: dvips -o paper.ps paper +%DVIPSParameters: dpi=300, compressed, comments removed +%DVIPSSource: TeX output 1994.04.15:2115 +%%BeginProcSet: texc.pro +/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N +/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 +mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} +ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale +isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div +hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul +TR matrix currentmatrix dup dup 4 get round 4 exch put dup dup 5 get +round 5 exch put setmatrix}N /@landscape{/isls true N}B /@manualfeed{ +statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 +0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn +begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X +array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo +setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx +FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{ +pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get} +B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128 ch-data dup +length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B +/ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type +/stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp +0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 +index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff +ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice +ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]/id +ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N /cp 0 N{ +rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id gp get +/gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp add /cp +X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add /gp X +adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{dup +255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 adv} +B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 idiv +S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string +putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval +adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} +{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ +adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 +chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] +}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup +length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ +cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin +0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul +add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage +userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook +known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X +/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for +65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 +0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V +{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 +getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} +ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale rulex ruley +false RMat{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex ruley +scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave +transform round exch round exch itransform moveto rulex 0 rlineto 0 +ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta +0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail} +B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{ +3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p +-1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{ +3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end +%%EndProcSet +%%BeginProcSet: special.pro +TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N +/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen +false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B +/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit +div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ +/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ +10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B +/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale +true def end /@MacSetUp{userdict /md known{userdict /md get type +/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup +length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} +N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath +clippath mark{transform{itransform moveto}}{transform{itransform lineto} +}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ +itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ +closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 +0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N +/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 +scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get +ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip +not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 +TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR +pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 +-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg +TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg +sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr +0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add +2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp +{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 +div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} +N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict +maxlength dict begin /magscale false def normalscale currentpoint TR +/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts +/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx +psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy +scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR +/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ +psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 +roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath +moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict +begin /SpecialSave save N gsave normalscale currentpoint TR +@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial +{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto +closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx +sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR +}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse +CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury +lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath +}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ +end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} +N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ +/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX +SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X +/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad +yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end +%%EndProcSet +TeXDict begin 40258431 52099146 1000 300 300 (paper.dvi) +@start /Fa 43 122 df<126012F0A212701210A31220A312401280040C7B830D>44 +D<126012F0A2126004047B830D>46 D<1303A3497EA2497E130BA2EB11E0A3EB20F0A249 +7E1478A2497EA33801FFFEEB001E0002131F80A248EB0780A2120C001E14C039FF803FFC +1E1D7E9C22>65 DI<90380FE0209038 +7018603801C00439030003E000061301000E13004814605A15201278127000F01400A800 +70142012781238A26C14407E000614806CEB01003801C00638007018EB0FE01B1E7D9C21 +>II +II<90381FC04090387030C03801C00C38030003000E1301120C001C +13005A15401278127000F01400A6EC7FF8EC07C00070130312781238A27E120C120E0003 +13053801C008390070304090381FC0001D1E7D9C23>I<39FFF0FFF0390F000F00AC90B5 +FCEB000FAD39FFF0FFF01C1C7D9B22>I<380FFF8038007C00133CB3127012F8A21338EA +7078EA4070EA30E0EA0F80111D7D9B18>74 D<39FFF00FF8390F0007C0EC030014025C5C +5C1460148049C7FC13021307497E1317EB23C0EB43E01381EB00F08014788080141F80EC +078015C015E039FFF03FFC1E1C7D9B23>IIII80 D82 +D<3803E080EA0C19EA1005EA3003EA600112E01300A36C13007E127EEA7FE0EA3FFC6CB4 +FC00071380EA007FEB07C0EB03E0130113007EA36C13C0A238E0018038D00300EACE06EA +81F8131E7D9C19>I<007FB512C038700F010060130000401440A200C014201280A30000 +1400B1497E3803FFFC1B1C7D9B21>I<39FFF01FF0390F000380EC0100B3A26C13021380 +00035BEA01C03800E018EB7060EB0F801C1D7D9B22>I<39FFE003FC001FC712F06C1440 +A26C6C1380A27F0003EB0100A23801E002A2EBF00600001304A2EB7808A2EB7C18EB3C10 +A26D5AA2EB1F60EB0F40A26D5AA36DC7FCA21E1D7E9B22>I<3BFFE07FF03FC03B1F000F +800F00ED00066CEC8004A213800007496C5A1413A23A03C033E0101421A23A01E061F020 +1440A2D800F06D5AEC8078A20178EB7C80903879003CA2013D013FC7FC013E7FA2011E13 +1E011C130EA2010C130C010813042A1D7E9B2E>I<13201370A313B8A3EA011CA3EA020E +A2487EA2EA07FF38080380A3381801C0EA380338FE0FF815157F9419>97 +DIIII103 D<38FF8FF8381C01C0A9EA1FFFEA1C01A938FF8FF815157F9419>II<38FF83F8381C01E01480140013025B5B5B1330137013B8EA1D +1C121EEA1C0E7F14801303EB01C014E014F038FF83FC16157F941A>107 +DI<00FEEB0FE0001E1400 +00171317A338138027A23811C047A33810E087A2EB7107A3133AA2131CA2123839FE083F +E01B157F941F>I<38FC03F8381E00E014401217EA138013C01211EA10E01370A2133813 +1CA2130E130714C0130313011300123800FE134015157F9419>III114 +DI<387FFFF03860703000401310A20080 +1308A300001300ADEA07FF15157F9419>I<38FF83F8381C00E01440AE000C13C0000E13 +8038060100EA0386EA00FC15157F9419>I<38FF01F8383C00F0001C1340A2001E13C000 +0E1380A238070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3132015157F9419> +I<38FF87F0381E0380000E1300EA0F026C5AEA038413C8EA01D0EA00F0A21370137813BC +EA011C7FEA020F487EEB0380000C13C0123C38FE07F815157F9419>120 +D<38FF80FE381E0078000E1320000F13407E3803808013C100011300EA00E2A21374137C +1338A848B4FC1715809419>I E /Fb 7 118 df101 D<123E120CA41218A41230A41260 +A412C012C8A312D0126007177D9609>108 D<3830783C38498CC6384E0502EA4C06389C +0E06EA180CA348485A15801418A23960300900140E190E7D8D1D>I111 +D114 +DI117 D E /Fc 1 59 df<126012F0A2126004047D830A>58 +D E /Fd 1 111 df110 D E /Fe 22 121 df45 +D<12E0A303037D820A>I<130813181330A31360A313C0A3EA0180A3EA0300A21206A35A +A35AA35AA35AA35AA20D217E9812>I<1202120E12FEA2120EB0EAFFE0A20B167D9512> +49 D90 D97 D<12E0A8EAE7C0EAFFE0 +EAF870EAE038A2131CA51338A2EAF0F0EAFFE0EAE7800E177E9612>II101 DII<12E0A31200A612E0AF03187E9708>105 +D<12E0B3A503177E9608>108 D<38E7E1F838EFF3FC38F87E1E38F03C0EEAE038AB170F +7E8E1C>IIII114 D<121FEA7FC012E01300A27E127FEA3F80EA0FC0EA +01E0128012C0EAE1C0127FEA1F000B0F7F8E0E>I<1238A4EAFFC0A2EA3800AA1340EA1F +C013000A137F920D>II120 D E /Ff 34 121 df<3801F1C0120312071301120EA7EAFFF1A2EA0E01B012 +1D809C16>13 D45 D<12E0A303037C820C>I<130113031306A3 +130CA31318A31330A31360A213C0A3EA0180A3EA0300A31206A25AA35AA35AA35AA35AA2 +10297E9E15>II<5A1207123FB4FC12C71207B3A3EAFFF8 +A20D1C7C9B15>II +I<133C137C135C13DC1201139C1203A2EA071CA2120EA2121C123C12381278127012F0B5 +12C0A238001C00A7121B7F9A15>II55 D57 D69 +D<387FFFF0A2380001E0130314C013071480EB0F005B131E133E133C5B13F85B12015B48 +5A12075B120F90C7FC121E123E123C127C1278B512F0A2141D7E9C19>90 +D97 D<12E0ABEAE3E0EAEFF0EAFFF8EAF87CEAF01CEAE01E13 +0EA6131C12F0EAF87CEAFFF8EAEFF0EAE3C00F1D7D9C15>II<130EABEA0F +8EEA1FEEEA3FFEEA7C3EEA700EA212E0A612F0EA701EEA7C3EEA3FFEEA1FEEEA0F8E0F1D +7E9C15>II<13FC12011203EA0700120EA7EAFFE0A2EA0E +00B00E1D809C0D>I<3803C3C0EA0FFF5A381C3800487EA56C5AEA1FF85BEA3BC00038C7 +FCA2EA1FFC13FF481380EA700738E001C0A3EAF003387C0F80383FFF006C5AEA07F8121B +7F9115>I<12F0A41200A71270B2041D7E9C0A>105 D<12E0AB133C137813F0EAE1E0EAE3 +C0EAE780EAEF00B4FC138012FBEAF9C0EAF1E012E013F013781338133C131E0F1D7D9C14 +>107 D<12E0B3AB031D7D9C0A>I<38E3F03F39EFF8FF80D8FFFD13C039F81F81E038F00F +00EAE00EAD1B127D9122>II< +EA03F0EA0FFC487EEA3C0F38780780EA700338E001C0A5EAF00300701380EA7807383C0F +00EA1FFE6C5AEA03F012127F9115>II114 DI<121CA6EA +FFE0A2EA1C00AC1320EA1FF0120FEA07C00C187F970F>II<39E03E0380A3D870371300EB7707A213733838E38EA33818E18C +381CC1CC001D13DCA2380D80D8000F13F8A20007137019127F911C>119 +D<3870038038780700EA3C0EEA1C1C120E6C5AEA03F06C5A5B7F487EEA0738EA0E18131C +487E487E3870038000F013C01212809113>I E /Fg 72 126 df<126012F0AA12701200 +A4126012F0A212600414799312>33 DII37 D<1207EA1F80EA19C01239A3EA3B9E133EEA3E38EA1C70A2EA1E +E0123E1267EAE7C0EAE3C413CE12E7EA7EFCEA3C380F147F9312>I<126012F012F81278 +1218A31230A2126012C01280050C799312>II<128012C012601230121812 +1C120C120EA21207A7120EA2120C121C12181230126012C0128008197C9612>I<1207A3 +EAE738EAFFF8EA7FF0EA1FC0A2EA7FF0EAFFF8EAE738EA0700A30D0E7E9012>II<126012F012F8127812181230A212E012C0050979 +8312>II<126012F0A212600404798312>I<13181338A21370A2 +13E0A2EA01C0A3EA0380A2EA0700A2120EA25AA35AA25AA25AA25A0D1A7E9612>II<1206A2120E121E12FE12EE120EACEAFFE0A20B147D9312>III<12E0EAFFFEA2 +EAE0181338EA007013E013C01201EA0380A2EA0700A4120EA512040F157F9412>55 +DII<126012F0A212601200A6126012F0A21260040E798D12>I<126012F0A2126012 +00A6126012F0A212701230A2126012C012800413798D12>I<13381378EA01F0EA03E0EA +0F80EA1F00123C12F85A7E123C121FEA0F80EA03E0EA01F0EA007813380D117E9212>I< +EAFFFEA2127FC7FCA3EA7FFE12FFA20F097F8E12>I<124012E07E127C7EEA0F80EA07C0 +EA01E0EA00F8137813F8EA01E0EA07C0EA0F80EA3E005A12F05A12400D137E9312>I65 DII69 DI73 D75 DII79 +D +I82 DII<38FE3F80A238380E00AE6C5A6C5AEA07F06C5A111480 +9312>I89 DII<12C07E +A21270A27EA27EA37EA27EA2EA0380A2EA01C0A3EA00E0A21370A21338A213180D1A7E96 +12>II97 D<12F8A21238A4EA3BE0 +EA3FF0EA3C38EA381C130C130EA4130C131CEA3C38EA3FF0EA1BC00F147F9312>II< +13F8A21338A4EA07B8EA1FF8EA3878EA7038126012E0A41260EA70781238EA1FFEEA0FBE +0F147F9312>II<137E13FFEA01C7EA03821380A2EA7FFE12FFEA0380AA +EA3FF8A21014809312>II<12F8A212 +38A4EA39E0EA3FF0EA3E38123C1238A8EAFE3EA20F147F9312>I<1206120FA21206C7FC +A3127FA21207AAEAFFF0A20C157D9412>I<12F8A21238A4EA3BFCA2EA38F0EA39E0EA3B +C0EA3F80A213C0EA3DE0123813701338EAFC7EA20F147F9312>107 +DIIIII114 +DI<1206120EA3EA7FF812FFEA0E00A7131CA3EA07F8EA01E00E127F +9112>IIIIIII<13F81201EA0380EA0700A8120E12FCA2120E7EA8EA0380EA01F812000D1A7E96 +12>I<127812FC120E7EA8EA0380EA01F8A2EA0380EA0700A8120E12FC12780D1A7E9612> +125 D E /Fh 37 123 df<90383FE3F83901F03F1C3903C03E3E0007137CEA0F80151C15 +00A5B612C0A2390F807C00AE397FE1FFC0A21F1D809C1C>11 D<127812FCA4127806067D +850D>46 D<1360EA01E0120F12FF12F31203B3A2387FFF80A2111B7D9A18>49 +DI< +EA03F8EA1FFEEA3C1FEB0F80387C07C0127E127C123838000F80A2EB1E005BEA03F8EA00 +1EEB0F80EB07C0A214E01230127812FCA214C038780F80EB1F00EA1FFEEA07F8131B7E9A +18>II66 D<90381FE0209038FFF8E03803F80F3807C003380F +800148C7FC123E1560127E127C00FC1400A8007C1460127E123E15C07E390F8001803907 +C003003803F80E3800FFFCEB1FE01B1C7D9B22>I69 D77 D79 +D82 D<3807F820381FFEE0EA3C07EA +7801EA700012F01460A26C130012FEEAFFE0EA7FFE6C7E1480000F13C06C13E0EA007FEB +03F01301130012C0A214E07E38F001C0EAFC0338EFFF00EA83FC141C7D9B1B>I<007FB5 +12E0A238781F81007013800060146000E0147000C01430A400001400B03807FFFEA21C1C +7E9B21>I97 DIIII<137F3801 +E3803803C7C0EA0787120FEB8380EB8000A5EAFFF8A2EA0F80AEEA7FF8A2121D809C0F> +I<3803F8F0380E0F38121E381C0730003C1380A4001C1300EA1E0FEA0E0EEA1BF80010C7 +FC1218A2EA1FFF14C06C13E04813F0387801F838F00078A300701370007813F0381E03C0 +3807FF00151B7F9118>II<121E123FA4121EC7FCA6B4FCA2121FAEEAFFE0A20B1E7F9D0E>I107 DI<39FF0FC0 +7E903831E18F3A1F40F20780D980FC13C0A2EB00F8AB3AFFE7FF3FF8A225127F9128>I< +38FF0FC0EB31E0381F40F0EB80F8A21300AB38FFE7FFA218127F911B>II<38FF3F80EBE1E0381F80F0EB0078147C143C143EA6143C147C +1478EB80F0EBC1E0EB3F0090C7FCA6EAFFE0A2171A7F911B>I114 DI<1203A45AA25AA2EA3FFC12FFEA1F00A9130CA4EA0F08EA0798EA03F00E1A7F9913>I< +38FF07F8A2EA1F00AC1301120F380786FFEA01F818127F911B>I<39FF8FF8FEA2391F03 +E030A201831370000FEBF0601386D807C613C0EBCEF8EBEC790003EB7D80EBF83D0001EB +3F00A2497E0000131EEBE00EA21F127F9122>119 D<38FFC7FCA2381F8180EA0F833807 +C700EA03EEEA01FC5B1200137C13FEEA01DFEA039F38070F80380607C0380C03E038FF07 +FCA216127F9119>I<38FFC1FCA2381F0060EB80E0000F13C013C03807C180A23803E300 +A2EA01F713F6EA00FE5BA21378A21330A21370EA706012F85BEAF9800073C7FC123E161A +7F9119>I<383FFF80383C1F00EA303F133E485A13FC5BEA01F01203485AEBC180EA0F81 +121F1303003E1300EA7E07EA7C0FB5FC11127F9115>I E /Fi 55 +124 df<1218123CA31204A21208A21210122012401280060C779C0D>39 +D43 D<12181238127812381208A21210A212201240A21280050C7D +830D>II<1230127812F0126005047C830D>I<14031407140E14 +0C141C141814381430147014E014C013011480130314005B1306130E5B13181338133013 +70136013E05B1201485A90C7FC5A1206120E120C121C121812385A126012E05AA218297F +9E15>I<133C13C6EA0183EA030312061480120E120C121C1400485AA4EA700EA4485AA3 +5BA21330485A12E0EA60C0EA7180001EC7FC111D7B9B15>I<13021306130C131C137CEA +039CEA0038A41370A413E0A4EA01C0A4EA0380A41207EAFFF00F1C7C9B15>I<133C13C3 +38010180120214C0EA0441A21208A338108380A238110700EA0E06C65A5B5B13C048C7FC +12061208485A13021220EA4006EA7E0CEAC7F81283EA80E0121D7C9B15>I<133EEBC180 +EA0101380200C05A1340EA0841A3EB8380EA070338000700130EEA01F8EA0038130CA213 +0EA41270485A12805B1330EA4060EA21C0001FC7FC121D7C9B15>III<130FEB308013C0EA01831203 +90C7FC1206120E120C121C13F0EA3B18EA3C0C12381278EA700EA3EA601C12E0A35BA25B +EA60605BEA2180001EC7FC111D7B9B15>I<131E1361EB8180EA0180380300C0A2380601 +80A3380703001386EA03CC13F01201EA0378EA063CEA081EEA180E1230EA6006A3485AA2 +5BEA60105BEA30C0000FC7FC121D7C9B15>56 D<133C13C6EA0183EA03031206120E000C +1380121C1400A2485AA35B130EEA181EA2EA0C6CEA079CEA001C1318133813305BEAE0C0 +A2EA81800086C7FC127C111D7B9B15>I<1206120FA212061200AA1230127812F0126008 +127C910D>I<1418A21438A21478A214B8130114381302143CEB041CA213081318131013 +20A2EB7FFCEB401C1380120113001202A2487F120C001C131EB4EBFFC01A1D7E9C1F>65 +D<903803F02090381E0C6090383002E09038E003C03801C001EA038048C7FC000E148012 +1E121C123C15005AA35AA41404A35C12705C6C5B00185B6C485AD80706C7FCEA01F81B1E +7A9C1E>67 D<48B512E038003C00013813601540A35BA214201500495AA214C013FF3801 +C080A43803810113801402A248485AA2140C5C000E1378B55A1B1C7D9B1C>69 +D<48B512C038003C01EB38001580A35BA214201500495AA214C013FF3801C080A4D80381 +C7FC1380A348C8FCA45AEAFFF01A1C7D9B1B>I<903803F02090381E0C6090383002E090 +38E003C03801C001EA038048C7FC000E1480121E121C123C15005AA35AA2903801FFC090 +38001E00141CA400705BA27E001813786C139038070710D801F8C7FC1B1E7A9C20>I<38 +01FFC038003C001338A45BA45BA4485AA4485AA448C7FCA45AEAFFE0121C7E9B10>73 +D<3801FFE038003C001338A45BA45BA4485AA438038008A31410EA07001430146014E038 +0E03C0B5FC151C7D9B1A>76 DI<3901FC03FE39001C0070013C13 +60012E1340A301471380A3EB43809038838100A2138114C1380101C2A2EB00E2A2000213 +E41474A3481338A3000C1318001C1310EAFF801F1C7D9B1F>II<3801FF +FC38003C079038380380EC01C0A3EB7003A31580EBE0071500140E14383801FFE001C0C7 +FCA3485AA448C8FCA45AEAFFE01A1C7D9B1C>I<3801FFF838003C0EEB3807EC0380A3EB +7007A3EC0F00EBE00E5C1470EBFFC0EA01C014601470A2EA0380A4380700F01540A21580 +48137839FFE07900C7121E1A1D7D9B1E>82 DI<001FB512C0381C070138300E +0000201480126012405B1280A2000014005BA45BA45BA4485AA41203EA7FFE1A1C799B1E +>I<397FF0FF80390F001C00000E13181410A3485BA4485BA4485BA44848C7FCA31302A2 +5BA2EA6008EA3030EA1040EA0F80191D779B1F>I<3901FF81FE39001E00F0011C136001 +1E1380EB0E011500EB0F026D5A5C1490EB03A014C01301A28013021304497EEB10701320 +EB60381340EB803C3801001C12020006131E121E39FF80FFC01F1C7E9B1F>88 +D97 D<123F1207A2120EA45AA4EA39C0EA3E60EA3830A2EA7038A4EAE0 +70A3136013E0EAC0C012C1EA6180EA6300123C0D1D7B9C13>IIIII<13F3EA018FEA030FEA0607EA0E0E120C121CA2EA381CA413381230A2EA1878 +13F0EA0F701200A213E0A2EAC0C012E1EAC300127E101A7D9113>III108 D<393C1E078039266318C0394683A0E0384703C0008E13 +80A2120EA2391C0701C0A3EC0380D8380E1388A2EC0708151039701C032039300C01C01D +127C9122>IIIIIII<13C01201A3EA0380A4EAFFE0EA0700A3120EA45AA4EA3840A313 +80EA1900120E0B1A7D990E>II<381E0183382703871247148338870701A2 +120EA2381C0E02A31404EA180C131C1408001C1310380C26303807C3C018127C911C> +119 DI +I123 D E /Fj 38 123 df<90380FF83F90397FFDFFC03A01F81F +E3E03903E03F87EA07C0D80F801307ED03C06EC7FCA6B612FCA2260F801FC7FCB2397FF0 +FFF0A223237FA221>11 D<1238127C12FE12FFA2127F123B1203A212071206A2120C121C +12181270122008117CA210>39 D<1238127C12FEA3127C123807077C8610>46 +D<13181378EA01F812FFA21201B3A7387FFFE0A213207C9F1C>49 +DI<13FE3807FFC0380F07E0381E03F0123FEB81F8A3EA1F +0314F0120014E0EB07C0EB1F803801FE007F380007C0EB01F014F8EB00FCA2003C13FE12 +7EB4FCA314FCEA7E01007813F8381E07F0380FFFC03801FE0017207E9F1C>I<14E01301 +1303A21307130F131FA21337137713E7EA01C71387EA03071207120E120C121812381270 +12E0B512FEA2380007E0A7EBFFFEA217207E9F1C>I<00101320381E01E0381FFFC01480 +14005B13F8EA1BC00018C7FCA4EA19FCEA1FFF381E0FC0381807E01303000013F0A214F8 +A21238127C12FEA200FC13F0A2387007E0003013C0381C1F80380FFF00EA03F815207D9F +1C>I<1470A214F8A3497EA2497EA3EB06FF80010E7FEB0C3FA201187F141F01387FEB30 +0FA201607F140701E07F90B5FCA239018001FCA200038090C7FCA20006147FA23AFFE00F +FFF8A225227EA12A>65 DIIIIII76 D79 +DI82 D<007FB61280A2397E03F80F0078140700701403006014 +0100E015C0A200C01400A400001500B3A20003B512F8A222227EA127>84 +D87 D97 D99 +DI<13FE3807FF80380F +87C0381E01E0003E13F0EA7C0014F812FCA2B5FCA200FCC7FCA3127CA2127E003E13186C +1330380FC0703803FFC0C6130015167E951A>I<3803FC1E380FFF7F381F0F8F383E07CF +383C03C0007C13E0A5003C13C0EA3E07381F0F80EBFF00EA13FC0030C7FCA21238383FFF +806C13F06C13F84813FCEA380048133E00F0131EA40078133C007C137C383F01F8380FFF +E00001130018217E951C>103 DI<121C123E127FA3123E121CC7FCA7B4FCA2121FB2 +EAFFE0A20B247EA310>I<3AFF07F007F090391FFC1FFC3A1F303E303E01401340496C48 +7EA201001300AE3BFFE0FFE0FFE0A22B167E9530>109 D<38FF07E0EB1FF8381F307CEB +403CEB803EA21300AE39FFE1FFC0A21A167E951F>I<13FE3807FFC0380F83E0381E00F0 +003E13F848137CA300FC137EA7007C137CA26C13F8381F01F0380F83E03807FFC03800FE +0017167E951C>I<38FF0FE0EB3FF8381FF07CEB803E497E1580A2EC0FC0A8EC1F80A290 +38803F00EBC03EEBE0FCEB3FF8EB0FC090C8FCA8EAFFE0A21A207E951F>I114 +DI<487EA412 +03A21207A2120F123FB5FCA2EA0F80ABEB8180A5EB8300EA07C3EA03FEEA00F811207F9F +16>I<38FF01FEA2381F003EAF147E14FE380F81BE3907FF3FC0EA01FC1A167E951F>I<39 +FFE01FE0A2390F800600A2EBC00E0007130CEBE01C00031318A26C6C5AA26C6C5AA2EB7C +C0A2137F6D5AA26DC7FCA2130EA21B167F951E>I<387FFFF0A2387C03E0387007C0EA60 +0F38E01F8000C01300133E137EC65A5B485A00031330EA07E013C0380F8070121F383F00 +60003E13E0EA7C03B5FCA214167E9519>122 D E /Fk 4 122 df15 +D<133C13E0EA01C013801203AD13005A121C12F0121C12077E1380AD120113C0EA00E013 +3C0E297D9E15>102 D<12F0121C12077E1380AD120113C0EA00E0133C13E0EA01C01380 +1203AD13005A121C12F00E297D9E15>I<12021207A61202A3EA7270EAFFF8EA7270EA02 +00A21207B11202A60D267E9C12>121 D E /Fl 12 114 df<38078010EA1FC0383FE020 +EA7FF03860304038C01080128038000900A2130AA3130CA21308A31318A35BA45BA21340 +141B7F9115>13 D<126012F0A2126004047C830C>58 D<126012F0A212701210A41220A2 +12401280040C7C830C>I<140CA2141CA2143C147C145C149C148EEB010EA213021304A2 +1308A213101320EB3FFEEB4007A21380EA0100A21202A21206121E39FF807FF01C1D7F9C +1F>65 D<3801FFE038003C001338A45BA45BA4485AA438038002A31404EA0700140C1418 +1438000E13F0B5FC171C7E9B1C>76 D<3801FFFE39003C03C090383800E015F01570A249 +13F0A3EC01E001E013C0EC0780EC1E00EBFFF03801C03080141CA2EA0380A43807003C15 +08A2151048131E39FFE00E20C7EA07C01D1D7E9B20>82 DI97 D<123F1207A2120EA45AA4EA39E0EA3A30EA3C1812381270131CA3EAE038A31330 +1370136013C01261EA2300121E0E1D7E9C12>II110 D113 +D E /Fm 77 125 df<126012F0AF12601200A4126012F0A212600419779816>33 +DII<13C01201A3EA07F0EA1F +FC48B4FCEA7DCF38F1C78012E1A338F1C300EA79C0127FEA1FF0EA07FCEA01FE13CFEBC7 +80EAF1C3A3EAE1C712F13879DF00EA3FFE6C5AEA07E0EA01C0A2120011207E9C16>I38 +D<1218123C123E121E120EA3121E121C123C127812F01260070D799816>I<13E01201EA +07C013005A121E5A123812781270A312F05AA77E1270A312781238123C7E7E7E13C0EA01 +E012000B217A9C16>I<12E07E127C121C121E7EEA0780120313C01201A313E01200A712 +0113C0A3120313801207EA0F00121E121C127C12F05A0B217C9C16>III<1238127C127EA2123E120E121E +123C127C12F81260070B798416>II<127012F8A3127005057884 +16>IIIIII<137C13FC13DC1201EA039CA2EA071C120F120E121E123C1238 +127812F0B512E0A338001C00A53801FFC0A313197F9816>II<13F8EA03FEEA0FFFEA1F0F123E123CEA78060070C7FC12F0EAF3F8EA +EFFE12FFEAF80F38F00780A2EAE00312F0A21270EA7807EB0F006C5AEA1FFEEA0FF8EA03 +E011197E9816>I<12E0B51280A338E00F00131EEA001C5B137813705BA2485AA3485AA4 +48C7FCA7111A7E9916>III<127012F8A312701200A8127012F8A312700512789116>I<1238 +127CA312381200A81238127CA3123C121C123C123812F812F012600618799116>III<12C012F012FC123EEA0F806C7EEA01F06C7E133EEB1F801307131FEB3E +0013F8485AEA07C0485A003EC7FC12FC12F012C011157E9616>II<13E0487EA213B0A2EA03B8A31318EA071CA5EA0E0EA2EA0FFEA2 +487EEA1C07A3387F1FC000FF13E0007F13C013197F9816>65 D<3801F180EA07FF5AEA1F +0FEA3C0712781303127000F0C7FC5AA77E387003801278A2EA3C07381F0F00EA0FFE6C5A +EA01F011197E9816>67 DI<387FFFC0B5FC7EEA1C +01A490C7FCA2131CA2EA1FFCA3EA1C1CA290C7FC14E0A5EA7FFFB5FC7E13197F9816>I< +B512E0A3EA1C00A41400A2131CA2EA1FFCA3EA1C1CA290C7FCA6B47E7F5B13197F9816> +I<387F1FC038FFBFE0387F1FC0381C0700A7EA1FFFA3EA1C07A9387F1FC038FFBFE0387F +1FC013197F9816>72 DI<387F0FE038FF8F +F0387F0FE0381C0780EB0F00130E5B133C5B5B5BEA1DF0121F7F1338EA1E1C121C7FA27F +A2EB0380387F07E038FF8FF0387F07E01419809816>75 DI<38FC07E0EAFE0FA2383A0B80EA3B1BA513BBEA39B3A413F3 +EA38E3A21303A538FE0FE0A313197F9816>I<387E1FC038FF3FE0387F1FC0381D070013 +87A313C7A2121CA213E7A31367A21377A21337A31317EA7F1FEAFF9FEA7F0F13197F9816 +>III82 +DI<387FFFE0B5FC +A2EAE0E0A400001300AFEA07FC487E6C5A13197F9816>I<387F07F038FF8FF8387F07F0 +381C01C0B0380E0380A23807070013FF6C5AEA00F81519809816>I<387F1F80133F131F +380E1E00131CEA073C1338EA03B813F012015B120012017F120313B81207131CA2EA0E0E +A2487E387F1FC000FF13E0007F13C013197F9816>88 D<38FE0FE0EAFF1FEAFE0F381C07 +00A2EA0E0EA26C5AA3EA03B8A2EA01F0A26C5AA8EA03F8487E6C5A13197F9816>I91 D<12C07EA21270A27EA27EA27EA27EA26C7E +A26C7EA26C7EA21370A27FA27FA27FA27FA2EB0380A2130111207E9C16>II<120C121E123C1278127012F012E0A312F012F81278 +1230070D789B16>96 DI<127E12FE127E120EA4 +133EEBFF80000F13C0EB83E01301380E00F0A21470A414F0000F13E01301EB83C013FF00 +0E1300EA063C1419809816>II<133F5B7F1307A4EA03C7EA0FF7 +EA3FFFEA3C1F487E487EA212E0A412F05BEA781FEA7C3F383FFFE0381FF7F03807C7E014 +197F9816>II<131FEB7F8013FFEA01E7EBC30013C0 +A2EA7FFFB5FCA2EA01C0ACEA3FFE487E6C5A11197F9816>I<3803E3C0380FFFE05A381E +3CC0383C1E00EA380EA3EA3C1E6C5AEA1FFC5BEA3BE00038C7FCA2EA1FFC13FF4813C0EA +780338F001E0EAE000A3EAF001387C07C0383FFF80380FFE00EA03F8131C7F9116>I<12 +7E12FE127E120EA4133C13FF000F138013871303A2120EA9387FC7F038FFE7F8387FC7F0 +1519809816>II108 D<38F9C38038FFEFC0EBFFE0EA3E +7CEA3C78EA3870AA38FE7CF8A2EB3C781512809116>IIIII<38FF0FC0EB3FE0137F3807F040EBE0005B5BA290C7 +FCA7EAFFFCA313127F9116>II<12035AA4EA +7FFFB5FCA20007C7FCA75BEB0380A2130713873803FF005BEA00F811177F9616>I<387E +1F80EAFE3FEA7E1FEA0E03AA1307EA0F0FEBFFF06C13F83803E3F01512809116>I<38FF +1FE013BF131F38380380A413E33819F300A213B3EA1DB7A4EA0F1EA313127F9116>119 +D<387F1FC0133F131F380F1C00EA073CEA03B813F012016C5A12017FEA03B8EA073C131C +EA0E0E387F1FC038FF3FE0387F1FC013127F9116>I<387F1FC038FF9FE0387F1FC0381C +0700120E130EA212075BA2EA039CA21398EA01B8A2EA00F0A35BA3485A1279127BEA7F80 +6CC7FC123C131B7F9116>I<383FFFC05AA238700780EB0F00131EC65A5B485A485AEA07 +8048C7FC381E01C0123C1278B5FCA312127F9116>I<12E0B3AE0320779C16>124 +D E /Fn 10 58 df<121FEA3180EA60C0EA4040EAC060A8EA4040EA60C0EA3180EA1F00 +0B107F8F0F>48 D<120C123C12CC120CACEAFF8009107E8F0F>I<121FEA6180EA40C0EA +806012C01200A213C0EA0180EA030012065AEA10201220EA7FC012FF0B107F8F0F>I<12 +1FEA2180EA60C0A2120013801201EA0F00EA00801340136012C0A2EA8040EA6080EA1F00 +0B107F8F0F>I<1203A25A5A120B121312331223124312C3EAFFE0EA0300A4EA1FE00B10 +7F8F0F>III<1240EA7FE013C0EA8080A2EA010012025AA2 +120C1208A21218A50B117E900F>I<121FEA3180EA60C0A3EA7180EA3F00120FEA3380EA +61C0EAC060A3EA4040EA6080EA1F000B107F8F0F>I<121FEA3180EA60C0EAC0401360A3 +EA40E01221EA1E6012001340EA60C01380EA4300123E0B107F8F0F>I +E /Fo 66 124 df11 D<13FCEA0782EA0E07121C130290C7FCA4B5FCEA1C07AC38FF1FE013 +17809614>I<13FFEA0707120E121CA6B5FCEA1C07AC38FFBFE01317809614>I<12011202 +1204120C1218A21230A212701260A312E0AA1260A312701230A21218A2120C1204120212 +0108227D980E>40 D<12801240122012301218A2120CA2120E1206A31207AA1206A3120E +120CA21218A2123012201240128008227E980E>I<126012F0A212701210A21220A21240 +A2040A7D830A>44 DI<126012F0A2126004047D830A>I<130813 +181330A31360A313C0A3EA0180A3EA0300A21206A35AA35AA35AA35AA35AA20D217E9812 +>I<12035AB4FC1207B1EA7FF00C157E9412>49 DII<1330A2137013F01201 +1370120212041208121812101220124012C0EAFFFEEA0070A5EA03FE0F157F9412>II +I<1240EA7FFE13FC13F8EAC008EA80101320EA00401380A2EA0100A25A12021206A2120E +A512040F167E9512>I57 +D61 D<13101338A3135CA3138EA3EA0107A200 +031380EA0203A23807FFC0EA0401A2380800E0A21218003813F038FE03FE17177F961A> +65 DIIIIII73 D<38FF80FE381C0078146014401480EB0100130613085B13381378139C +EA1D0E121EEA1C07EB0380EB01C0A2EB00E014701478147C38FF80FF18177F961B>75 +DI<00FEEB03F800 +1E14C000171305A338138009A23811C011A33810E021A2EB7041A3EB3881A2EB1D01A213 +0EA2123839FE040FF81D177F9620>I<00FC13FE001E1338001F13101217EA1380EA11C0 +A2EA10E013701338A2131C130E130F1307EB0390EB01D0A2EB00F014701430123800FE13 +1017177F961A>I<13FCEA0303380E01C0381C00E0481370003013300070133800601318 +00E0131CA700701338A200301330003813706C13E0380E01C038030300EA00FC16177E96 +1B>II82 DI<387FFFF83860381800401308A200801304A300001300 +AF3807FFC016177F9619>I<38FF80FE383C0038001C1310A26C1320A26C1340A3380380 +80A213C100011300A2EA00E2A213F61374A21338A3131017177F961A>86 +D<38FF83FC381F01E0380E00807EEB8100EA0382EA01C213E4EA00E81378A21338137C13 +5E138EEA0187EB0780EA0203380601C0000413E0EA0C00001C13F038FF03FE17177F961A +>88 D<12FCA212C0B3AB12FCA206217D980A>91 D<12FCA2120CB3AB12FCA2062180980A +>93 D97 D<12FC121CA813F8EA1F06EA1C031480130114C0A4148013031400 +EA1B0EEA10F81217809614>II<137E130EA8EA07CEEA1C3EEA300E1270126012E0A412 +601270EA301EEA182E3807CFC012177F9614>IIII<12FC121CA8137CEA1D8EEA1E07121CAA38FF9FE01317809614>I<121812 +3CA212181200A5127C121CAC12FF081780960A>I<1203EA0780A2EA0300C7FCA5EA1F80 +1203AF1243EAE30012E7127C091D82960B>I<12FC121CA8EB3F80EB1C00131813205B13 +C0EA1FE0EA1CF0137013787F7FA238FF3FC01217809613>I<12FC121CB3A3EAFF800917 +80960A>I<38FC7C1F391D8E6380391E0781C0001C1301AA39FF9FE7F81D0E808D1E>IIIII< +EAFCF0EA1D38121EEA1C101300A9EAFF800D0E808D0E>II<1208A31218 +A21238EAFF80EA3800A71340A4EA1C80EA0F000A147F930E>III<38FCFE7C383838381410381C3C20A2134C380E4E40A2138638 +078780A2130300031300A2160E7F8D19>IIIII E /Fp 1 4 df<120CA2EACCC012EDEA +7F80EA0C00EA7F80EAEDC012CCEA0C00A20A0B7D8B10>3 D E /Fq +10 58 df<120FEA30C0EA6060A2EA4020EAC030A9EA4020EA6060A2EA30C0EA0F000C13 +7E9211>48 D<120C121C12EC120CAFEAFFC00A137D9211>I<121FEA60C01360EAF07013 +301260EA0070A2136013C012011380EA02005AEA08101210EA2020EA7FE012FF0C137E92 +11>II<136013E0A2EA016012021206120C1208121012 +20126012C0EAFFFCEA0060A5EA03FC0E137F9211>III<1240EA7FFC13F8EA401012801320EA00401380EA0100 +A25A12021206A2120EA512040E147E9311>II< +120FEA3080EA6040EA4060EAC0201330A31240EA6070EA30B0EA0F30120013201360EAE0 +401380EA4100123E0C137E9211>I E /Fr 76 124 df11 +D<137E3801C180EA0301380703C0120EEB018090C7FCA5B512C0EA0E01B0387F87F8151D +809C17>II< +90383F07E03901C09C18380380F0D80701133C000E13E00100131892C7FCA5B612FC390E +00E01CB03A7FC7FCFF80211D809C23>I34 D<126012F012F812681208A31210A212201240 +1280050C7C9C0C>39 D<13401380EA0100120212065AA25AA25AA212701260A312E0AC12 +60A312701230A27EA27EA27E12027EEA008013400A2A7D9E10>I<7E12407E7E12187EA2 +7EA27EA213801201A313C0AC1380A312031300A21206A25AA25A12105A5A5A0A2A7E9E10 +>I<1306ADB612E0A2D80006C7FCAD1B1C7E9720>43 D<126012F0A212701210A41220A2 +12401280040C7C830C>II<126012F0A2126004047C830C>I48 D<12035A123F12C71207B3A4EA0F80EAFFF80D1C7C9B +15>III<13 +0CA2131C133CA2135C13DC139CEA011C120312021204120C1208121012301220124012C0 +B512C038001C00A73801FFC0121C7F9B15>II<13F0EA030CEA0604EA0C0EEA181E1230130CEA7000A21260EAE3 +E0EAE430EAE818EAF00C130EEAE0061307A51260A2EA7006EA300E130CEA1818EA0C30EA +03E0101D7E9B15>I<1240387FFF801400A2EA4002485AA25B485AA25B1360134013C0A2 +12015BA21203A41207A66CC7FC111D7E9B15>III<126012F0A212601200AA126012F0 +A2126004127C910C>I<126012F0A212601200AA126012F0A212701210A41220A2124012 +80041A7C910C>I<1306A3130FA3EB1780A3EB23C0A3EB41E0A3EB80F0A200017FEB0078 +EBFFF83803007C0002133CA20006133E0004131EA2000C131F121E39FF80FFF01C1D7F9C +1F>65 DI<90381F8080EBE061380180 +1938070007000E13035A14015A00781300A2127000F01400A8007014801278A212386CEB +0100A26C13026C5B380180083800E030EB1FC0191E7E9C1E>IIII<90381F +8080EBE0613801801938070007000E13035A14015A00781300A2127000F01400A6ECFFF0 +EC0F80007013071278A212387EA27E6C130B380180113800E06090381F80001C1E7E9C21 +>I<39FFF3FFC0390F003C00ACEBFFFCEB003CAD39FFF3FFC01A1C7E9B1F>III76 DII< +EB3F80EBE0E03803803848487E000E7F487F003C148000381303007814C0A20070130100 +F014E0A8007014C000781303A200381480003C1307001C14006C130E6C5B6C6C5A3800E0 +E0EB3F801B1E7E9C20>II82 D<3807E080EA1C19EA3005EA7003EA600112E01300A36C13007E127CEA7FC0EA +3FF8EA1FFEEA07FFC61380130FEB07C0130313011280A300C01380A238E00300EAD002EA +CC0CEA83F8121E7E9C17>I<007FB512C038700F010060130000401440A200C014201280 +A300001400B1497E3803FFFC1B1C7F9B1E>I<39FFF07FC0390F000E001404B3A26C5B13 +8000035B12016C6C5AEB70C0011FC7FC1A1D7E9B1F>I<39FFE00FF0391F0003C06CEB01 +8015006D5A00071302A26C6C5AA36C6C5AA213F000005BA2EBF830EB7820A26D5AA36D5A +A2131F6DC7FCA21306A31C1D7F9B1F>I<3AFFE0FFE0FF3A1F001F003C001E011E13186C +011F1310A3D807801420EC2780A2D803C01440EC43C0A213E00001903881E080A33A00F1 +00F100A3017913FA017A137AA2013E137C013C133CA301181318A3281D7F9B2B>I<397F +F0FFC0390FC03E0038078018EA03C0EBE01000015BEBF06000001340EB7880137D013DC7 +FC7F131F7F80A2EB13C0EB23E01321EB41F0EBC0F8EB80783801007C48133C00027F0006 +131F001FEB3F8039FFC0FFF01C1C7F9B1F>I<12FEA212C0B3B312FEA207297C9E0C>91 +D +I<12FEA21206B3B312FEA20729809E0C>I97 +D<12FC121CAA137CEA1D86EA1E03381C018014C0130014E0A614C013011480381E0300EA +1906EA10F8131D7F9C17>II<133F1307AAEA03E7EA0C17EA180F487E12 +70126012E0A61260127012306C5AEA0C373807C7E0131D7E9C17>II<13F8EA018CEA071E1206EA0E0C1300A6EAFFE0EA0E00B0EA7FE00F1D809C +0D>II<12FC121CAA137C1387EA1D03001E1380121CAD38FF9FF0141D +7F9C17>I<1218123CA21218C7FCA712FC121CB0EAFF80091D7F9C0C>I<13C0EA01E0A2EA +00C01300A7EA0FE01200B3A21260EAF0C012F1EA6180EA3E000B25839C0D>I<12FC121C +AAEB3FC0EB0F00130C13085B5B5B13E0121DEA1E70EA1C781338133C131C7F130F148038 +FF9FE0131D7F9C16>I<12FC121CB3A9EAFF80091D7F9C0C>I<39FC7E07E0391C83883839 +1D019018001EEBE01C001C13C0AD3AFF8FF8FF8021127F9124>IIIIIII<1204A4120CA212 +1C123CEAFFE0EA1C00A91310A5120CEA0E20EA03C00C1A7F9910>I<38FC1F80EA1C03AD +1307120CEA0E1B3803E3F014127F9117>I<38FF07E0383C0380381C0100A2EA0E02A26C +5AA3EA0388A213D8EA01D0A2EA00E0A3134013127F9116>I<39FF3FCFE0393C0F038038 +1C07011500130B000E1382A21311000713C4A213203803A0E8A2EBC06800011370A2EB80 +30000013201B127F911E>I<387F8FF0380F03801400EA0702EA0384EA01C813D8EA00F0 +1370137813F8139CEA010E1202EA060738040380381E07C038FF0FF81512809116>I<38 +FF07E0383C0380381C0100A2EA0E02A26C5AA3EA0388A213D8EA01D0A2EA00E0A31340A2 +5BA212F000F1C7FC12F31266123C131A7F9116>I +II E /Fs 40 122 df<49B4FC011F13C090387F81E0EBFC013901 +F807F01203EA07F0A4EC01C091C8FCA3EC3FF8B6FCA33807F003B3A33A7FFF3FFF80A321 +2A7FA925>12 D<130E131E137EEA07FE12FFA212F81200B3AB387FFFFEA317277BA622> +49 DII<140E141E143E147E14 +FEA213011303EB077E130EA2131C1338137013E0A2EA01C0EA0380EA0700120EA25A5A5A +5AB612F8A3C7EAFE00A890387FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C +5C14C091C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215 +E0A21218127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C61380 +1B277DA622>II<1238123E003FB512F0A34814E015C0158015003870000EA25C485B5C5CEA +00015C495A130791C7FC5B5B131E133EA2137E137CA213FCA41201A76C5A13701C297CA8 +22>I65 D<91387FE003903907FFFC07 +011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F4848147F4848143F4848141F485A16 +0F485A1607127FA290C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C +14786CB4EB01F090397FF007C0011FB512800107EBFE009038007FF028297CA831>67 +DIII<91387FE003903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FF +D801FC7F484880484880484880485A82485A82127FA290CAFC5AA892B512F87E7F030013 +00123FA26C7EA26C7E6C7E6C7E6C7E6CB45B90387FF007011FB5129F0107EBFE0F903900 +7FF0032D297CA835>I73 +D82 D<01FF13C0000313E1000F13F9381F80FF383F003F +003E130F481307A200FC1303A214017EA26C90C7FC13C0EA7FFCEBFFE06C13F86C13FE80 +000714806C14C0C6FC010F13E0EB007FEC1FF0140F140700E01303A46C14E0A26C13076C +14C0B4EB0F80EBE01F00E3B5120000E113FC38C01FF01C297CA825>I87 +D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801FC3FEA +0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803F8031E1B7E9A21 +>97 DIIIII<90387F80F03901FFE3 +F83907C0FE1C390F807C7C381F003E151048EB3F00A66C133EA26C6C5A6C6C5A3805FFE0 +380C7F8048C8FC121CA2121E381FFFF814FF6C14C06C14E06C14F0120F383E000748EB01 +F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB5120038007FF01E287E9A22>I< +EAFFE0A3120FAC147E9038E1FF809038E30FC001E413E0EBE80701F813F013F0A213E0B0 +39FFFE3FFFA3202A7DA925>I<1207EA0F80EA1FC0EA3FE0A3EA1FC0EA0F80EA0700C7FC +A7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I107 DI<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D80FC49038F101FC9039 +C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A3331B7D9A38>I<38FFC0 +7E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213E0B039FFFE3FFFA320 +1B7D9A25>II<38FFE1FE9038E7FF809038FE0FE0390FF803F09038F001F8 +01E013FC140015FEA2157FA8157E15FEA215FC140101F013F89038F803F09038FC0FE090 +38EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FFC3E0EBC7F8EBCC7C38 +0FD8FE13D0A213F0EBE07C1400B0B5FCA3171B7E9A1B>114 D<3803FE30380FFFF0EA3E +03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C13E06C13F0000713F8C6FC +EB07FC130000E0137C143C7E14387E6C137038FF01E038E7FFC000C11300161B7E9A1B> +I<1370A413F0A312011203A21207381FFFE0B5FCA23807F000AD1470A7000313E03801F8 +C0EA00FFEB3F0014267FA51A>I<39FFE07FF0A3000F1307B2140FA2000713173903F067 +FF3801FFC738007F87201B7D9A25>I<3BFFFC7FFC1FFCA33B0FE00FE001C02607F007EB +0380A201F8EBF0070003160015F82601FC0F130EA29039FE1FFC1E0000011C131C15FE90 +39FF387E3C017F1438EC787F6D486C5AA29138E01FF0011F5CA26D486C5AA36D486C5AA2 +2E1B7F9A31>119 D<39FFFC1FFEA33907F00780D803F813006C6C5AEBFE1E00005BEB7F +78EB3FF85C6D5A130F6D7E80130F497EEB3DFEEB38FFEB787F9038F03F80D801E013C039 +03C01FE0EB800F39FFF03FFFA3201B7F9A23>I<39FFFE07FFA33907F000E0A2EBF80100 +0314C0A23901FC0380A2EBFE07000014006D5AEB7F0EA2EB3F9CA214FC6D5AA26D5AA213 +075CA26D5AA25CA21307003890C7FC127CEAFE0EA25B5BEA7C70EA3FE0EA0F8020277F9A +23>I E /Ft 14 123 df97 D99 D +II<13F338038B8038060700120E120C121CEA380EA4EA301CA3EA183C5BEA +07B8EA0038A25B1260EAE0E0EAC1C0007FC7FC11177E8F12>103 +D<1203120712061200A61238124C124E128E129CA2121C1238A212701272A212E212E412 +64123808197C980C>105 D<121F1207A3120EA4121CA41238A41270A412E4A412E81230 +081A7D990A>108 D110 DII115 D<1206120EA45AA2EAFFC0EA1C005AA45AA412E1A312 +E212E412380A177C960D>II122 +D E /Fu 54 124 df<13FCEA0182EA0703EA0607EA0E0290C7FCA5B5FCEA0E07AE387F0F +E0131A809915>12 D<90387E1F803901C17040390703C0600006EB80E0000E14401500A5 +B612E0380E0380AE397F8FE3FC1E1A809920>14 D<1380EA010012025A120C120812185A +A35AA412E0AA1260A47EA37E1208120C12047E7EEA008009267D9B0F>40 +D<7E12407E7E12181208120C7EA37EA41380AA1300A41206A35A1208121812105A5A5A09 +267E9B0F>I<126012F0A212701210A31220A212401280040B7D830B>44 +DI<126012F0A2126004047D830B>I50 DI<1330A2137013F0A2EA0170120312021204120C12081210123012 +20124012C0B5FCEA0070A6EA07FF10187F9713>I<1240EA7FFE13FCA2EA4008EA8010A2 +1320EA0040A213801201A213005AA45AA612020F197E9813>55 D<126012F0A212601200 +A8126012F0A2126004107D8F0B>58 D<126012F0A212601200A8126012F0A212701210A3 +1220A21240128004177D8F0B>I<130CA3131EA2133F1327A2EB4380A3EB81C0A348C67E +A213FF38020070A20006137800041338A2487FA2001C131EB4EBFFC01A1A7F991D>65 +D67 +DII71 +D<38FFE7FF380E0070AB380FFFF0380E0070AC38FFE7FF181A7E991D>II<39FFE07F80390E001E00141814105C5C5C49C7FC13025B5B +131C132E134E1387380F0380120E6D7E6D7EA21470A28080143E39FFE0FF80191A7E991E +>75 DI80 D82 DI<007FB5FC38701C0700401301A200C01480008013 +00A300001400B13803FFE0191A7F991C>I<3AFF83FF0FF03A3C007801C0001CEC0080A2 +6CEC0100A2149C6C1402A2EB010EA2D803815BEB8207A2D801C25B9038C40388A2D800E4 +1390A29038E801D0017813E0A2EB7000A201305B01201340241A7F9927>87 +D<12FEA212C0B3AF12FEA207257D9B0B>91 D<12FEA21206B3AF12FEA20725809B0B>93 +D97 D<12FC121CA913F8EA1F0EEA1E07381C0380130114C0A6EB038014 +00EA1E07EA1B0CEA10F0121A7F9915>II<137E130EA9EA03CEEA0C3EEA380E12301270 +12E0A612601270EA381EEA1C2E3807CFC0121A7F9915>IIII<12FC121CA913F8EA1D0CEA1E0EA2121CAB38FF9F +C0121A7F9915>I<1218123CA21218C7FCA612FC121CAEEAFF80091A80990A>II<12FC121C +A9EB3F80EB1E00131813105B5BEA1DC0EA1FE0121C1370137813387F131E131F38FF3FC0 +121A7F9914>I<12FC121CB3A6EAFF80091A80990A>I<38FC7C1F391D8E6380391E0781C0 +A2001C1301AB39FF9FE7F81D107F8F20>IIII114 DI<1204A3120CA2121C123CEAFFC0EA +1C00A81320A5EA0E40EA03800B177F960F>II<38FF1F80383C0600EA1C04A2EA1E0CEA0E08A26C5AA21390EA03A0A2EA01 +C0A36C5A11107F8F14>I<39FF3F9F80393C0E070000381306381C16041317001E130C38 +0E23081488000F13983807419014D03803C1E01380A200015BEB004019107F8F1C>I<38 +FF3F80383C1C00EA1C18EA0E106C5A13606C5A12017F1203EA0270487E1208EA181CEA38 +1E38FC3FC012107F8F14>I<38FF1F80383C0600EA1C04A2EA1E0CEA0E08A26C5AA21390 +EA03A0A2EA01C0A36C5AA248C7FCA212E112E212E4127811177F8F14>I123 D E /Fv 16 118 df<1303497EA3497EA2EB1BE0A3EB31F0A2EB60F8A2EBE0 +FCEBC07CA248487EEBFFFE487FEB001FA20006EB0F80A2000E14C039FFC07FFCA21E1A7F +9921>65 D76 +D80 D97 D<12FEA2121EA7137F381FC3C0EB00E0001E13F01478 +A2147CA51478A214F0001F13E0381D83C038187F00161A7F9919>II< +EA03F0EA0E1C487EEA3C071278148012F8A2B5FC00F8C7FCA21278A2383C0180381C0300 +EA0E06EA03FC11117F9014>101 D<3807E3C0381C3CE0EA381C38781EC01400A4EA381C +6C5AEA27E00020C7FCA21230EA3FFE381FFF8014C0EA700338E000E0A4387001C0383C07 +803807FC0013197F9016>103 D<123C127EA4123CC7FCA4127EA2121EADEAFF80A2091B +7F9A0D>105 D<39FE1F01F0903863C63C391E81C81C391F01F01EA2001E13E0AA3AFFCF +FCFFC0A222117F9025>109 DII114 DI<1206A4120EA2121EEA3FF0 +12FFEA1E00A81318A5EA0F30EA03E00D187F9711>I<38FE0FE0A2EA1E01AB1303A2380F +05FCEA03F916117F9019>I E /Fw 1 4 df<1202A3EAC218EAF278EA3AE0EA0F80A2EA3A +E0EAF278EAC218EA0200A30D0E7E8E12>3 D E /Fx 34 122 df<127012F812FCA21274 +1204A41208A21210A212201240060F7C840E>44 D<127012F8A3127005057C840E>46 +D<13801203120F12F31203B3A9EA07C0EAFFFE0F217CA018>49 D<13021306130EA2131E +A2132E134EA2138EA2EA010E1202A21204A212081210A21220A212401280B512F838000E +00A7131F3801FFF015217FA018>52 D<00101380381E0700EA1FFF5B13F8EA13E00010C7 +FCA613F8EA130EEA1407381803801210380001C0A214E0A4127012F0A200E013C01280EA +4003148038200700EA1006EA0C1CEA03F013227EA018>I57 +D<497EA3497EA3EB05E0A2EB0DF01308A2497E1478A2497EA3497EA3497EA290B5FC3901 +000780A24814C000021303A24814E01401A2000CEB00F0A2003EEB01F839FF800FFF2023 +7EA225>65 DI<903807E0109038381830EBE0063901C00170390380 +00F048C7FC000E1470121E001C1430123CA2007C14101278A200F81400A812781510127C +123CA2001C1420121E000E14407E6C6C13803901C001003800E002EB381CEB07E01C247D +A223>II<9038 +07F00890383C0C18EBE0023901C001B839038000F848C71278481438121E15185AA2007C +14081278A200F81400A7EC1FFF0078EB00F81578127C123CA27EA27E7E6C6C13B86C7E39 +00E0031890383C0C08903807F00020247DA226>71 D80 D<3803F020380C0C60EA1802383001E0EA70000060136012E0A21420A36C1300A212 +78127FEA3FF0EA1FFE6C7E0003138038003FC0EB07E01301EB00F0A214707EA46C1360A2 +6C13C07E38C8018038C60700EA81FC14247DA21B>83 D<39FFFC07FF390FC000F86C4813 +701520B3A5000314407FA2000114806C7E9038600100EB3006EB1C08EB03F020237EA125 +>85 D<3BFFF03FFC03FE3B1F8007E000F86C486C4813701720A26C6C6C6C1340A32703C0 +02F01380A33B01E004780100A33A00F0083C02A39039F8183E06903978101E04A2137C90 +393C200F08A390391E400790A390390F8003E0A36D486C5AA36D5C010213002F237FA132 +>87 D97 D<120E12FE121E120EAB131FEB +61C0EB8060380F0030000E1338143C141C141EA7141C143C1438000F1370380C8060EB41 +C038083F0017237FA21B>II<14E0130F130113 +00ABEA01F8EA0704EA0C02EA1C01EA38001278127012F0A7127012781238EA1801EA0C02 +38070CF03801F0FE17237EA21B>II<133C13C6EA018F1203130FEA0700A9EAFFF8EA0700B21380EA7FF8102380A20F>I< +121C123EA3121CC7FCA8120E12FE121E120EB1EAFFC00A227FA10E>105 +D<120E12FE121E120EB3ADEAFFE00B237FA20E>108 D<390E1FC07F3AFE60E183803A1E +807201C03A0F003C00E0A2000E1338AF3AFFE3FF8FFE27157F942A>I<380E1F8038FE60 +C0381E80E0380F0070A2120EAF38FFE7FF18157F941B>III< +EA0E3CEAFE46EA1E8FEA0F0F13061300120EAD120FEAFFF010157F9413>114 +DI<1202A41206A3120E121E12 +3EEAFFF8EA0E00AB1304A6EA07081203EA01F00E1F7F9E13>I<000E137038FE07F0EA1E +00000E1370AD14F0A238060170380382783800FC7F18157F941B>I<38FFC1FE381E0078 +000E13301420A26C1340A238038080A33801C100A2EA00E2A31374A21338A3131017157F +941A>I<39FF8FF8FF391E01E03C001CEBC018120EECE010A239070260201470A2390384 +30401438A23901C81880141CA23900F00D00140FA2EB6006A320157F9423>I<38FFC1FE +381E0078000E13301420A26C1340A238038080A33801C100A2EA00E2A31374A21338A313 +10A25BA35B12F05B12F10043C7FC123C171F7F941A>121 D E /Fy +20 124 df50 D<1403A34A7EA24A7EA3EC17E01413A2EC23F01421A2EC40F8A3EC807CA2 +0101137EEC003EA20102133F81A2496D7EA3496D7EA2011880011FB5FCA29039200003F0 +1501A249801500A249147CA348C87EA248153F825AD81F80EC3F80D8FFE0903803FFFCA2 +2E327EB132>65 D<91383FE001903901FFF803903807F01E90391F800307013EC7128701 +78144F49142F4848141F4848140F485A000F150790C8FC481503121E123E003C1501127C +A30078150012F8AB1278127C1601A2123C123E121E001F15027E6D1406000715046C6C14 +086C7E6C6C141001781420013E14C090391F800380903907F00F00903801FFFC9038003F +E028337CB130>67 D69 D71 D77 D82 D<90387F80203801FFE03907C07860380F001C001EEB +06E048130300381301007813001270156012F0A21520A37E1500127C127E7E13C0EA1FF8 +6CB47E6C13F86C7FC613FF010F1380010013C0EC1FE01407EC03F01401140015F8A26C14 +78A57E15706C14F015E07E6CEB01C000ECEB038000C7EB070038C1F01E38807FFCEB0FF0 +1D337CB125>I86 D<13FE380303C0380C00E00010137080003C133C003E13 +1C141EA21208C7FCA3EB0FFEEBFC1EEA03E0EA0F80EA1F00123E123C127C481404A3143E +A21278007C135E6CEB8F08390F0307F03903FC03E01E1F7D9E21>97 +D99 +D101 D<120FEA1F80A4EA0F00C7FCABEA078012FFA2120F1207B3A6 +EA0FC0EAFFF8A20D307EAF12>105 D108 D<380780FE39FF83078090388C03C0390F9001E0EA07A06E7E13C0A2 +5BB3A2486C487E3AFFFC1FFF80A2211F7E9E25>110 D +I<380783E038FF8C18EB907C120FEA07A0EBC0381400A35BB3487EEAFFFEA2161F7E9E19 +>114 D<3801FC10380E0330381800F048137048133012E01410A37E6C1300127EEA3FF0 +6CB4FC6C13C0000313E038003FF0EB01F813006C133CA2141C7EA27E14186C1338143000 +CC136038C301C03880FE00161F7E9E1A>I<1340A513C0A31201A212031207120F381FFF +E0B5FC3803C000B01410A80001132013E000001340EB78C0EB1F00142C7FAB19>I123 D E end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 300dpi +TeXDict begin + +%%EndSetup +%%Page: 1 1 +1 0 bop 284 369 a Fy(RE2C)21 b({)h(A)f(More)h(V)-6 b(ersatile)23 +b(Scanner)e(Generator)472 490 y Fx(P)o(eter)15 b(Bum)o(bulis)209 +b(Donald)17 b(D.)f(Co)o(w)o(an)272 548 y(Computer)g(Science)e +(Departmen)o(t)h(and)i(Computer)e(Systems)g(Group)692 +606 y(Univ)o(ersit)o(y)e(of)k(W)l(aterlo)q(o)1175 588 +y Fw(\003)782 704 y Fx(April)e(15,)i(1994)849 895 y Fv(Abstract)120 +960 y Fu(It)f(is)g(usually)j(claimed)f(that)e(lexical)j(analysis)f +(routines)g(are)e(still)i(co)q(ded)f(b)o(y)f(hand,)i(despite)g(the)e +(widespread)62 1005 y(a)o(v)n(ailabil)q(i)q(t)o(y)h(of)d(scanner)i +(generators,)f(for)f(e\016ciency)i(reasons.)23 b(While)16 +b(e\016ciency)g(is)f(a)f(consideration)q(,)j(there)e(exist)62 +1051 y(freely)k(a)o(v)n(ailable)j(scanner)d(generators)g(suc)o(h)g(as)g +(GLA)f([7])g(that)g(can)h(generate)g(scanners)h(that)e(are)h(faster)f +(than)62 1097 y(most)g(hand-co)q(ded)h(ones.)30 b(Ho)o(w)o(ev)o(er,)18 +b(most)g(generated)g(scanners)g(are)g(tailored)h(for)e(a)g(particular)j +(en)o(vironmen)o(t,)62 1142 y(and)c(retargetting)h(these)e(scanners)i +(to)e(other)h(en)o(vironmen)o(ts,)h(if)f(p)q(ossible,)h(is)f(usually)i +(complex)f(enough)f(to)f(mak)o(e)62 1188 y(a)h(hand-co)q(ded)h(scanner) +f(more)g(app)q(ealing.)26 b(In)16 b(this)g(pap)q(er)g(w)o(e)f(describ)q +(e)i(RE2C,)e(a)g(scanner)i(generator)f(that)f(not)62 +1234 y(only)e(generates)f(scanners)h(whic)o(h)f(are)g(faster)f(\(and)h +(usually)i(smaller\))f(than)f(those)g(pro)q(duced)h(b)o(y)f(an)o(y)g +(other)g(scanner)62 1279 y(generator)i(kno)o(wn)g(to)f(the)g(authors,)g +(includin)q(g)j(GLA,)c(but)i(also)g(adapt)f(easily)i(to)e(an)o(y)h(en)o +(vironmen)o(t.)62 1371 y(Categories)19 b(and)f(Sub)r(ject)g +(Descriptors:)27 b(D.3.2)17 b([)p Fv(Programming)j(Languages)p +Fu(]:)25 b(Language)19 b(Classi\014cations)i({)62 1416 +y Ft(sp)n(e)n(cialize)n(d)11 b(applic)n(atio)o(n)g(languages)o +Fu(;)f(D.3.4)j([)p Fv(Programming)h(Languages)p Fu(]:)j(Pro)q(cessors) +62 1508 y(General)e(T)m(erms:)h(Algorithms,)e(Languages,)h(P)o +(erformance)62 1599 y(Additional)h(Key)d(W)m(ords)h(and)g(Phrases:)j +(Lexical)e(analysis,)g(scanner)f(generator)-42 1736 y +Fs(1)67 b(In)n(tro)r(duction)-42 1827 y Fr(Lexical)14 +b(analysis)g(routines)h(are)g(still)f(often)g(co)q(ded)i(b)o(y)e(hand)g +(despite)i(the)f(widespread)g(a)o(v)n(ailabilit)o(y)c(of)j(scanner)i +(gener-)-42 1877 y(ators.)k(F)m(or)14 b(example,)e(while)i(most)f(Unix) +h(systems)g(ha)o(v)o(e)g(a)g(scanner)i(generator)f(installed)f(\(t)o +(ypically)f(LEX)h([15)o(])g(or)g(\015ex)-42 1927 y([16]\),)d(few)i +(Unix)f(applications)f(use)i(a)f(mec)o(hanically)e(generated)k +(scanner.)19 b(One)13 b(commonly)c(cited)k(reason)g(for)e(not)i(using) +-42 1977 y(LEX-generated)k(scanners)f(is)f(p)q(erformance:)20 +b(they)15 b(can)g(b)q(e)g(10)g(times)f(slo)o(w)o(er)g(than)h(equiv)n +(alen)o(t)f(hand-co)q(ded)i(scanners)-42 2026 y([13].)h(As)d(a)g +(result,)g(there)h(has)f(b)q(een)h(considerable)f(researc)o(h)i(in)o +(to)d(impro)o(ving)e(the)j(p)q(erformance)g(of)f(mec)o(hanically)e +(gen-)-42 2076 y(erated)17 b(scanners)f([16)o(,)f(7,)f(9].)21 +b(GLA)15 b([7)o(],)g(one)g(suc)o(h)h(scanner)g(generator,)g(can)f(pro)q +(duce)h(scanners)h(that)e(are)h(faster)f(than)-42 2126 +y(most)h(hand-co)q(ded)h(scanners.)29 b(Ho)o(w)o(ev)o(er,)17 +b(the)h(use)f(of)f(hand-co)q(ded)i(scanners)g(is)f(still)f(prev)n(alen) +o(t.)27 b(One)17 b(p)q(ossibilit)o(y)f(is)-42 2176 y(that)e(this)g(is)g +(due)h(to)e(the)i(di\016cult)o(y)e(of)g(adapting)g(the)h(generated)i +(scanners)f(to)f(sp)q(eci\014c)h(applications.)21 2226 +y(Most)g(scanner)g(generators)h(are)f(tailored)f(to)g(a)h(particular)f +(en)o(vironmen)o(t.)19 b(In)14 b(fact,)g(the)i(trend)f(in)f(recen)o(t)i +(y)o(ears)f(has)-42 2276 y(b)q(een)i(to)e(in)o(tegrate)g(scanner)i +(generators)f(with)f(compiler)f(to)q(olkits.)21 b(F)m(or)15 +b(example,)f(GLA)h(is)g(part)g(of)g(the)g(Eli)g(compiler)-42 +2325 y(construction)k(system)f([8)o(],)g(and)g(Rex)f([9])g(is)h(part)g +(of)f(the)h(GMD)f(T)m(o)q(olb)q(o)o(x)g(for)g(Compiler)f(Construction) +1688 2310 y Fq(1)1707 2325 y Fr(.)30 b(Scanners)p -42 +2362 780 2 v 4 2389 a Fp(\003)22 2401 y Fo(P)o(ermission)9 +b(to)j(cop)o(y)e(without)h(fee)g(all)g(or)g(part)g(of)g(this)g +(material)e(is)j(gran)o(ted)d(pro)o(vided)h(that)g(the)h(copies)f(are)h +(not)g(made)f(or)i(distributed)-42 2440 y(for)g(direct)e(commercial)f +(adv)n(an)o(tage,)g(the)i(A)o(CM)j(cop)o(yrigh)o(t)9 +b(notice)i(and)g(the)g(title)g(of)h(the)f(publication)e(and)i(its)g +(date)g(app)q(ear,)f(and)h(notice)g(is)-42 2480 y(giv)o(en)g(that)g +(cop)o(ying)f(is)i(b)o(y)f(p)q(ermission)e(of)j(the)f(Asso)q(ciation)f +(for)h(Computing)f(Mac)o(hinery)m(.)15 b(T)m(o)d(cop)o(y)f(otherwise,)f +(or)i(to)f(republish,)f(requires)-42 2519 y(a)k(fee)f(and/or)f(sp)q +(eci\014c)g(p)q(ermission.)19 b(Cop)o(yrigh)o(t)12 b(1994)h(b)o(y)g +(the)g(Asso)q(ciation)f(for)h(Computing)e(Mac)o(hinery)m(,)h(Inc.)22 +b(T)m(o)14 b(app)q(ear)e(in)h(LOPLAS)-42 2558 y(2\(1{4\).)5 +2586 y Fn(1)22 2598 y Fo(Also)f(kno)o(wn)e(as)i(Co)q(c)o(ktail)e +(\(Compiler-Compi)o(ler-)o(T)m(o)q(olb)q(o)n(x)f(Karlsruhe\).)923 +2748 y Fr(1)p eop +%%Page: 2 2 +2 1 bop -42 195 a Fr(generated)21 b(b)o(y)d(these)i(to)q(ols)f(assume)f +(the)i(existence)g(of)e(a)h(library)f(of)g(supp)q(ort)h(mo)q(dules)f +(for)h(error)g(handling,)g(input)-42 245 y(bu\013ering,)c(sym)o(b)q(ol) +d(table)i(managemen)o(t,)d(and)j(similar)e(functions.)18 +b(While)c(these)h(supp)q(ort)g(mo)q(dules)e(simplify)f(the)i(task)-42 +295 y(of)c(implemen)o(ting)c(a)k(compiler)f(or)h(in)o(terpreter,)i +(they)e(mak)o(e)f(adaptation)g(to)h(other)g(purp)q(oses)i(more)d +(di\016cult.)16 b(Adaptation)-42 345 y(to)e(other)h(en)o(vironmen)o(ts) +e(is)h(also)f(made)g(more)g(di\016cult)g(b)q(ecause)j(often)e +(assumptions)f(are)i(made)d(ab)q(out)i(the)h(input)f(and)-42 +394 y(restrictions)j(are)e(placed)g(on)g(tok)o(ens)g(in)g(order)g(to)g +(ac)o(hiev)o(e)g(b)q(etter)i(p)q(erformance.)k(RE2C)14 +b(go)q(es)i(to)f(the)g(other)h(extreme:)-42 444 y(it)e(concen)o(trates) +i(solely)d(on)h(generating)g(co)q(de)h(for)e(matc)o(hing)f(regular)i +(expressions.)21 494 y(RE2C)f(is)h(successful)h(at)f(its)g(task:)k(not) +13 b(only)g(do)q(es)i(it)e(pro)q(duce)i(scanners)h(whic)o(h)e(are)g +(faster)g(than)g(those)g(created)i(b)o(y)-42 544 y(other)g(scanner)h +(generators)f(but,)f(surprisingly)m(,)f(they)i(are)g(usually)e(smaller) +f(as)j(w)o(ell.)21 b(F)m(urther,)15 b(RE2C)g(do)q(es)h(not)f(mak)o(e) +-42 594 y(an)o(y)i(assumptions)e(ab)q(out)h(the)h(input)g(or)f(place)h +(an)o(y)f(restrictions)i(on)e(tok)o(ens.)26 b(T)m(o)16 +b(a)g(large)g(degree,)i(the)g(p)q(erformance)-42 643 +y(and)d(\015exibilit)o(y)d(of)i(RE2C-generated)h(scanners)h(is)f(due)f +(to)h(a)f(no)o(v)o(el)f(metho)q(d)h(for)g(determining)f(when)i(to)f +(re\014ll)g(a)g(bu\013er)-42 693 y(whic)o(h)g(a)o(v)o(oids)f(the)i +(complications)c(in)o(tro)q(duced)k(b)o(y)f(the)g(sen)o(tinel)h(metho)q +(d)e([1)o(].)21 743 y(The)e(follo)o(wing)d(sections)j(of)f(this)h(pap)q +(er)g(describ)q(e)i(RE2C)d(scanner)i(sp)q(eci\014cations,)f(discuss)h +(ho)o(w)e(these)i(sp)q(eci\014cations)-42 793 y(are)21 +b(con)o(v)o(erted)g(in)o(to)f(scanners,)j(and)d(giv)o(e)f(p)q +(erformance)h(results)h(ac)o(hiev)o(ed)g(b)o(y)f(our)g(implemen)o +(tatio)o(n)d(\(including)j(a)-42 843 y(comparison)13 +b(with)g(GLA\).)-42 980 y Fs(2)67 b(Scanner)24 b(Sp)r(eci\014cations) +-42 1071 y Fr(An)14 b(RE2C)g(source)h(\014le)f(consists)h(of)e(C[14)o +(])g(or)h(C++[4])842 1056 y Fq(2)874 1071 y Fr(co)q(de)g(in)o(terlea)o +(v)o(ed)g(with)g(commen)o(ts)e(of)h(the)i(form)d Fm(/*!re2c)20 +b Fl(:)7 b(:)g(:)-42 1121 y Fm(*/)15 b Fr(con)o(taining)f(scanner)i(sp) +q(eci\014cations.)23 b(These)16 b(sp)q(eci\014cations)g(are)g(replaced) +g(with)e(generated)j(co)q(de)e(that)g(is)g(in)o(v)o(ok)o(ed)-42 +1170 y(simply)d(b)o(y)i(\\falling)d(in)o(to")i(the)i(commen)o(ts)d(as)i +(illustrated)g(in)f(Figure)h(1)g(and)f(in)h(App)q(endix)g(A)1481 +1155 y Fq(3)1500 1170 y Fr(.)469 1254 y Fm(#define)20 +b(YYCURSOR)42 b(p)469 1304 y(unsigned)20 b(char)h(*scan)p +887 1304 14 2 v 14 w(uint\(unsigned)e(char)i(*p\))p Fk(f)469 +1353 y Fm(/*!re2c)556 1403 y([0-9]+)195 b Fk(f)p Fm(return)20 +b(p;)p Fk(g)556 1453 y Fm([\\)o(000-\\)o(377])87 b Fk(f)p +Fm(return)20 b(NULL;)p Fk(g)469 1503 y Fm(*/)469 1553 +y Fk(g)681 1634 y Fr(Figure)14 b(1:)k(A)c(simple)f(scanner.)21 +1733 y(A)i(scanner)h(sp)q(eci\014cation)f(tak)o(es)g(the)g(form)e(of)h +(a)h(list)f(of)g(rules,)h(eac)o(h)g(rule)g(consisting)g(of)f(a)g +(regular)h(expression)h([10)o(])-42 1783 y(and)g(an)g(action)f +(expressed)k(in)c(executable)i(co)q(de.)25 b(Figure)16 +b(2)g(illustrates)g(a)g(trivial)e(RE2C)h(scanner)j(sp)q(eci\014cation)e +(that)-42 1833 y(will)c(b)q(e)h(used)h(as)f(an)f(example)g(throughout)g +(this)h(pap)q(er.)36 b(Eac)o(h)14 b(call)d(to)i(the)g(co)q(de)h +(generated)g(from)d(a)h(sp)q(eci\014cation)i(will)416 +1926 y Fm("print")201 b Fk(f)22 b Fm(return)e(PRINT;)49 +b(/*)21 b(rule)g(5)h(*/)f Fk(g)416 1975 y Fm([a-z])o(+)224 +b Fk(f)22 b Fm(return)e(ID;)115 b(/*)21 b(rule)g(4)h(*/)f +Fk(g)416 2025 y Fm([0-9])o(+)224 b Fk(f)22 b Fm(return)e(DEC;)93 +b(/*)21 b(rule)g(3)h(*/)f Fk(g)416 2075 y Fm("0x")g([0-9a-f])n(+)50 +b Fk(f)22 b Fm(return)e(HEX;)93 b(/*)21 b(rule)g(2)h(*/)f +Fk(g)416 2125 y Fm([\\000-\\)o(377])114 b Fk(f)22 b Fm(return)e(ERR;)93 +b(/*)21 b(rule)g(1)h(*/)f Fk(g)108 2214 y Fr(Figure)15 +b(2:)20 b(Sample)13 b(sp)q(eci\014cation.)22 b Fm([)p +Fl(a)p Fm(-)p Fl(b)p Fm(])14 b Fr(matc)o(hes)h(an)o(y)f(c)o(haracter)i +(b)q(et)o(w)o(een)g Fl(a)f Fr(and)g Fl(b)p Fr(,)f(inclusiv)o(ely)m(.) +108 2264 y(The)i(last)f(rule,)g(for)g(example,)e(will)h(matc)o(h)g(an)o +(y)g(eigh)o(t)h(bit)g(c)o(haracter.)23 b(Rules)15 b(are)g(listed)h(in)e +(order)i(of)108 2314 y(precedence)q(.)-42 2414 y(\014rst)d(determine)g +(the)f(longest)h(p)q(ossible)f(pre\014x)h(of)f(the)h(remaining)d(input) +i(that)g(matc)o(hes)g(one)g(of)g(the)h(regular)f(expressions)-42 +2463 y(and)i(will)f(then)h(execute)i(the)e(action)g(in)f(the)i(\014rst) +g(applicable)e(rule.)p -42 2498 780 2 v 5 2525 a Fn(2)22 +2537 y Fo(Retargetting)8 b(RE2C)k(to)f(a)h(di\013eren)o(t)d(language)g +(is)i(straigh)o(tforw)o(ard.)5 2564 y Fn(3)22 2576 y +Fo(RE2C-generated)e(scanners)g(require)h(no)h(additional)d(supp)q(ort)i +(co)q(de.)923 2748 y Fr(2)p eop +%%Page: 3 3 +3 2 bop 138 1062 a @beginspecial 53 @llx 268 @lly 435 +@urx 486 @ury 3820 @rwi @setspecial +%%BeginDocument: scanner.eps + + + + + + + + + + + +/AutoFlatness false def + +% -------------- POSTSCRIPT PROLOG FOR CORELDRAW 3.X ------ + +% Copyright 1992 Corel Corporation. All rights reserved. + +/wCorelDict 300 dict def wCorelDict begin/bd{bind def}bind def + +/ld{load def}bd/xd{exch def}bd/_ null def + +/$c 0 def/$m 0 def/$y 0 def/$k 0 def/$t 1 def + +/$n _ def/$o 0 def/$fil 0 def/$bkg false def + +/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1 def + +/$N _ def/$O 0 def/$PF false def/$ctm matrix currentmatrix def + +/$ptm matrix def/$ttm matrix def/$stm matrix def + +/$fst 128 def/$pad 0 def/$rox 0 def/$roy 0 def + +currentscreen/@dsp xd/$dsp/@dsp def/$dsa xd + +/$dsf xd/$sdf false def/$SDF false def/$Scra 0.0 def + +/$sv 0 def/@cp/closepath ld/@gs/gsave ld/@gr/grestore ld + +/@np/newpath ld/@sv{/$sv save def}bd/@rs{$sv restore}bd + +/@ss{exch $Scra add exch load setscreen}bd + +AutoFlatness{/$cpx ([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n) def + +/@err1{$cpx print flush newpath}bd/@ifl{dup currentflat exch sub 10 gt + +{@err1 exit}{currentflat 2 add setflat}ifelse}bd + +/@fill/fill ld/fill{currentflat{{@fill}stopped{@ifl}{exit}ifelse + +}bind loop setflat}bd/@eofill/eofill ld/eofill{currentflat{{@eofill} + +stopped{@ifl}{exit}ifelse}bind loop setflat}bd + +/@clip/clip ld/clip{currentflat{{@clip}stopped{initclip @ifl}{exit + +}ifelse}bind loop setflat}bd/@eoclip/eoclip ld + +/eoclip{currentflat{{@eoclip}stopped{initclip @ifl}{exit}ifelse + +}bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke} + +stopped{@ifl}{exit}ifelse}bind loop setflat}bd}if + +/InRange{3 -1 roll 2 copy le{pop}{exch pop}ifelse + +2 copy ge{pop}{exch pop}ifelse}bd/wDstChck{2 1 roll dup 3 -1 roll + +eq{1 add}if}bd/@dot{dup mul exch dup mul add 1 exch sub 2 div}bd + +/@lin{exch pop abs 1 exch sub}bd/@MN{2 copy le{pop}{exch pop}ifelse}bd + +/setcmykcolor where{pop}{/setcmykcolor{4 1 roll + +3{3 index add 1 @MN 1 exch sub 3 1 roll}repeat + +setrgbcolor pop}bd}ifelse/setoverprint{/$op xd}bd + +/currentoverprint{$op}bd/setsepcolor{1 exch sub setgray}bd + +/checksepcolor{1 exch sub dup setgray 1 eq exch 1 eq and not}bd + +/setprocesscolor{ColorSeparationMode 0 eq{setcmykcolor}{ + +0 4 $ink sub index exch pop 5 1 roll 4{pop}repeat + +setsepcolor}ifelse}bd/findcmykcustomcolor{5 array astore}bd + +/setcustomcolor where{pop}{/setcustomcolor{ColorSeparationMode 0 eq{ + +exch aload pop pop 4{4 index mul 4 1 roll}repeat + +5 -1 roll pop setcmykcolor}{exch aload pop + +CurrentInkName eq{4 index}{0}ifelse 6 1 roll + +5{pop}repeat setsepcolor}ifelse}bd}ifelse/colorimage where{pop}{ + +/colorimage{pop pop pop pop pop{currentfile $dat readhexstring pop pop} + +repeat pop}bd}ifelse/@tc{dup 1 ge{pop}{4{dup + +6 -1 roll mul exch}repeat pop}ifelse}bd/@scc{1 eq setoverprint + +dup _ eq{pop setprocesscolor pop}{findcmykcustomcolor + +exch setcustomcolor}ifelse ColorSeparationMode 0 eq{true}{ + +currentgray 1 eq currentoverprint and not}ifelse}bd + +/@sft{/$tx $tllx $pxf add dup $tllx gt{$pwid sub}if def + +/$ty $tury $pyf sub dup $tury lt{$phei add}if def}bd + +/@stb{pathbbox/$ury xd/$urx xd/$lly xd/$llx xd}bd + +/@ep{{cvx exec}forall}bd/@tp{@sv/$in true def + +2 copy dup $lly le{/$in false def}if $phei sub $ury ge{/$in false def}if + +dup $urx ge{/$in false def}if $pwid add $llx le{/$in false def}if + +$in{@np 2 copy m $pwid 0 rl 0 $phei neg rl $pwid neg 0 rl + +0 $phei rl clip @np $pn cvlit load aload pop + +7 -1 roll 5 index sub 7 -1 roll 3 index sub translate + +/$ctm matrix currentmatrix def @ep pop pop pop pop}{pop pop}ifelse + +@rs}bd/@th{@sft 0 1 $tly 1 sub{dup $psx mul $tx add{ + +dup $llx gt{$pwid sub}{exit}ifelse}loop exch $phei mul $ty exch sub + +0 1 $tlx 1 sub{$pwid mul 3 copy 3 -1 roll add exch + +@tp pop}for pop pop}for}bd/@tv{@sft 0 1 $tlx 1 sub{dup $pwid mul $tx add + +exch $psy mul $ty exch sub{dup $ury lt{$phei add}{exit}ifelse}loop + +0 1 $tly 1 sub{$phei mul 3 copy sub @tp pop}for + +pop pop}for}bd/@pf{@gs $ctm setmatrix $pm concat + +@stb eoclip Bburx Bbury $pm itransform/$tury xd/$turx xd + +Bbllx Bblly $pm itransform/$tlly xd/$tllx xd + +/$wid $turx $tllx sub def/$hei $tury $tlly sub def + +@gs $vectpat{1 0 0 0 0 _ $o @scc{eofill}if}{$t $c $m $y $k $n $o @scc{ + +$tllx $tlly translate $wid $hei scale <00> 8 1 false [ 8 0 0 1 0 0 ]{}imagemask + +/$bkg true def}if}ifelse @gr $wid 0 gt $hei 0 gt and{ + +$pn cvlit load aload pop/$pd xd 3 -1 roll sub/$phei xd + +exch sub/$pwid xd/$tlx $wid $pwid div ceiling 1 add def + +/$tly $hei $phei div ceiling 1 add def $psx 0 eq{@tv}{@th}ifelse}if + +@gr @np/$bkg false def}bd/@dlt{ColorSeparationMode 0 eq{ + +/$dc $toc $tot mul $frc $frt mul dup/$c xd sub $fst 1 sub div def + +/$dm $tom $tot mul $frm $frt mul dup/$m xd sub $fst 1 sub div def + +/$dy $toy $tot mul $fry $frt mul dup/$y xd sub $fst 1 sub div def + +/$dk $tok $tot mul $frk $frt mul dup/$k xd sub $fst 1 sub div def + +true}{$frt $frc $frm $fry $frk $frn $o @scc + +dup{/$frk 1 currentgray sub def}{/$frk 0 def}ifelse + +$tot $toc $tom $toy $tok $ton $o @scc dup{/$tok 1 currentgray sub def}{ + +/$tok 0 def}ifelse or dup{/$c 0 def/$m 0 def/$y 0 def/$k $frk def + +/$dc 0 def/$dm 0 def/$dy 0 def/$dk $tok $frk sub $fst 1 sub div def}if + +}ifelse}bd/@ftl{1 index 4 index sub dup $pad mul dup/$pdw xd + +2 mul sub $fst div/$wid xd 2 index sub/$hei xd + +pop translate $c $m $y $k 4 copy ColorSeparationMode 0 ne + +{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse + +0 0 moveto 0 $hei lineto $pdw $hei lineto $pdw 0 lineto 0 0 lineto fill + +$pdw 0 translate $fst{4 copy ColorSeparationMode 0 ne + +{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse + +0 0 moveto 0 $hei lineto $wid $hei lineto $wid 0 lineto 0 0 lineto fill + +$wid 0 translate $dk add 4 1 roll $dy add 4 1 roll + +$dm add 4 1 roll $dc add 4 1 roll}repeat $dk sub 4 1 roll + +$dy sub 4 1 roll $dm sub 4 1 roll $dc sub 4 1 roll + +ColorSeparationMode 0 ne{1 exch sub setgray pop pop pop} + +{setcmykcolor}ifelse 0 0 moveto 0 $hei lineto $pdw $hei lineto $pdw 0 lineto 0 0 lineto fill + +}bd/@ftr{1 index 4 index sub dup $rox mul/$row xd + +2 div 1 index 4 index sub dup $roy mul/$roh xd + +2 div 2 copy dup mul exch dup mul add sqrt + +$row dup mul $roh dup mul add sqrt add dup/$hei xd $fst div/$wid xd + +4 index add $roh add exch 5 index add $row add + +exch translate pop pop pop pop currentflat dup 5 mul setflat + +$c $m $y $k 4 copy ColorSeparationMode 0 ne + +{1 exch sub setgray pop pop pop}{setcmykcolor}ifelse + +$wid 0 moveto 0 0 $hei 0 360 arc fill 1.0 $pad 2 mul sub dup scale + +$fst{4 copy ColorSeparationMode 0 ne{1 exch sub setgray pop pop pop} + +{setcmykcolor}ifelse $wid 0 moveto 0 0 $hei 0 360 arc fill + +/$hei $hei $wid sub def $dk add 4 1 roll $dy add 4 1 roll + +$dm add 4 1 roll $dc add 4 1 roll}repeat pop pop pop pop + +setflat}bd/@ff{@gs @dlt{$ctm setmatrix eoclip + +newpath Bbllx Bblly moveto Bbllx Bbury lineto + +Bburx Bbury lineto Bburx Bblly lineto $fan rotate + +pathbbox newpath $fty 1 eq{@ftr}{@ftl}ifelse}if + +@gr @np}bd/@Pf{@sv ColorSeparationMode 0 eq $ink 3 eq or{0 J 0 j [] 0 d + +$t $c $m $y $k $n $o @scc pop $ctm setmatrix + +72 1000 div dup matrix scale dup concat dup Bburx exch Bbury exch itransform + +ceiling cvi/Bbury xd ceiling cvi/Bburx xd Bbllx exch Bblly exch itransform + +floor cvi/Bblly xd floor cvi/Bbllx xd $Prm aload pop + +$Psn load exec}{1 setgray eofill}ifelse @rs + +@np}bd/g{1 exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def + +}bd/G{1 exch sub/$K xd/$C 0 def/$M 0 def/$Y 0 def/$T 1 def/$N _ def}bd + +/k{/$k xd/$y xd/$m xd/$c xd/$t 1 def/$n _ def/$fil 0 def}bd + +/K{/$K xd/$Y xd/$M xd/$C xd/$T 1 def/$N _ def}bd + +/x{/$t xd/$n xd/$k xd/$y xd/$m xd/$c xd/$fil 0 def}bd + +/X{/$T xd/$N xd/$K xd/$Y xd/$M xd/$C xd}bd + +/d/setdash ld/i{dup 0 ne{setflat}{pop}ifelse}bd + +/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit ld + +/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd + +/c/curveto ld/C/c ld/v{4 -2 roll 2 copy 6 -2 roll curveto}bd + +/V/v ld/y{2 copy curveto}bd/Y/y ld/l/lineto ld + +/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld + +/N/newpath ld/F{matrix currentmatrix $sdf{$scf $sca $scp @ss}if + +$fil 1 eq{@pf}{$fil 2 eq{@ff}{$fil 3 eq{@Pf}{$t $c $m $y $k $n $o @scc + +{eofill}{@np}ifelse}ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp @ss}if + +setmatrix}bd/f{@cp F}bd/S{matrix currentmatrix + +$ctm setmatrix $SDF{$SCF $SCA $SCP @ss}if $T $C $M $Y $K $N $O @scc{ + +matrix currentmatrix $ptm concat stroke setmatrix}{@np}ifelse + +$SDF{$dsf $dsa $dsp @ss}if setmatrix}bd/s{@cp + +S}bd/B{@gs F @gr S}bd/b{@cp B}bd/W{eoclip}bd + +/p{/$pm xd 7{pop}repeat/$pyf xd/$pxf xd/$pn xd + +/$fil 1 def}bd/P{11{pop}repeat}bd/u{}bd/U{}bd + +/A{pop}bd/q/@gs ld/Q/@gr ld/E{5 array astore + +exch cvlit exch def}bd/`{}bd/~{}bd/@{}bd/&{}bd + +/CorelDrawReencodeVect [ 16#82/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl + +16#88/circumflex/perthousand/Scaron/guilsinglleft/OE + +16#91/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash + +16#98/tilde/trademark/scaron/guilsinglright/oe + +16#9F/Ydieresis 16#A1/exclamdown/cent/sterling/currency/yen/brokenbar/section + +16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/minus/registered/macron + +16#b0/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered + +16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown + +16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla + +16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis + +16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply + +16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls + +16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla + +16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis + +16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide + +16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis + +] def/@cc{currentfile $dat readhexstring pop}bd + +/@sm{/$ctm $ctm currentmatrix def}bd/@E{/Bbury xd/Bburx xd + +/Bblly xd/Bbllx xd}bd/@c{@cp}bd/@p{/$fil 1 def + +1 eq/$vectpat xd/$pm xd/$psy xd/$psx xd/$pyf xd/$pxf xd + +/$pn xd}bd/@P{/$fil 3 def/$Psn xd array astore + +/$Prm xd}bd/@k{/$fil 2 def/$roy xd/$rox xd/$pad xd + +/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$tok xd/$toy xd/$tom xd/$toc xd + +/$frk xd/$fry xd/$frm xd/$frc xd/$frn _ def/$frt 1 def/$ton _ def/$tot 1 def + +}bd/@x{/$fil 2 def/$roy xd/$rox xd/$pad xd + +/$fty xd/$fan xd/$tot xd/$ton xd/$tok xd/$toy xd/$tom xd/$toc xd + +/$frt xd/$frn xd/$frk xd/$fry xd/$frm xd/$frc xd}bd + +/@ii{concat 3 index 3 index m 3 index 1 index l + +2 copy l 1 index 3 index l 3 index 3 index l + +clip pop pop pop pop}bd/@i{@sm @gs @ii 6 index 1 ne{/$frg true def + +pop pop}{1 eq{$T $C $M $Y $K $N $O @scc/$frg xd}{/$frg false def + +}ifelse 1 eq{@gs $ctm setmatrix $t $c $m $y $k $n $o @scc{eofill}if + +@gr}if}ifelse/$frg $frg $bkg or def @np/$ury xd/$urx xd/$lly xd/$llx xd + +/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8 div ceiling cvi string def + +$frg{$SDF{$SCF $SCA $SCP @ss}if $llx $lly translate + +$urx $llx sub $ury $lly sub scale $wid $hei abs + +$bts 1 eq{false}{$bts}ifelse [ $wid 0 0 $hei neg 0 + +$hei 0 gt{$hei}{0}ifelse]/@cc load $bts 1 eq{imagemask}{image}ifelse + +$SDF{$dsf $dsa $dsp @ss}if}{$hei abs{@cc pop}repeat}ifelse + +@gr $ctm setmatrix}def/@M{@sv}bd/@N{/@cc{}def + +1 eq{12 -1 roll neg 12 1 roll @I}{13 -1 roll neg 13 1 roll + +@i}ifelse @rs}bd/@I{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx xd + +/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling cvi string def + +$llx $lly translate $urx $llx sub $ury $lly sub scale + +$wid $hei abs $bts [ $wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse] + +/@cc load false $ncl colorimage @gr $ctm setmatrix}bd + +/z{exch findfont exch scalefont setfont}bd + +/ZB{9 dict dup begin 4 1 roll/FontType 3 def + +/FontMatrix xd/FontBBox xd/Encoding 256 array def + +0 1 255{Encoding exch/.notdef put}for/CharStrings 256 dict def + +CharStrings/.notdef{}put/Metrics 256 dict def + +Metrics/.notdef 3 -1 roll put/BuildChar{exch + +dup/$char exch/Encoding get 3 index get def + +dup/Metrics get $char get aload pop setcachedevice + +begin Encoding exch get CharStrings exch get + +end exec}def end definefont pop}bd/ZBAddChar{findfont begin + +dup 4 1 roll dup 6 1 roll Encoding 3 1 roll put + +CharStrings 3 1 roll put Metrics 3 1 roll put + +end}bd/Z{findfont dup maxlength 2 add dict exch + +dup{1 index/FID ne{3 index 3 1 roll put}{pop pop}ifelse}forall + +pop dup dup/Encoding get 256 array copy dup/$fe xd + +/Encoding exch put dup/Fontname 3 index put + +3 -1 roll dup length 0 ne{0 exch{dup type 0 type eq{exch pop}{ + +$fe exch 2 index exch put 1 add}ifelse}forall + +pop}if dup 256 dict dup/$met xd/Metrics exch put + +dup/FontMatrix get 0 get 1000 mul 1 exch div + +3 index length 256 eq{0 1 255{dup $fe exch get + +dup/.notdef eq{pop pop}{5 index 3 -1 roll get + +2 index mul $met 3 1 roll put}ifelse}for}if + +pop definefont pop pop}bd/@ftx{{currentpoint 3 -1 roll + +(0) dup 3 -1 roll 0 exch put dup @gs true charpath + +$ctm setmatrix @@txt @gr @np stringwidth pop 3 -1 roll add exch moveto + +}forall}bd/@ft{matrix currentmatrix exch $sdf{$scf $sca $scp @ss}if + +$fil 1 eq{/@@txt/@pf ld @ftx}{$fil 2 eq{/@@txt/@ff ld @ftx}{$fil 3 eq + +{/@@txt/@Pf ld @ftx}{$t $c $m $y $k $n $o @scc{show}{pop}ifelse}ifelse + +}ifelse}ifelse $sdf{$dsf $dsa $dsp @ss}if setmatrix}bd + +/@st{matrix currentmatrix exch $SDF{$SCF $SCA $SCP @ss}if + +$T $C $M $Y $K $N $O @scc{{currentpoint 3 -1 roll + +(0) dup 3 -1 roll 0 exch put dup @gs true charpath + +$ctm setmatrix $ptm concat stroke @gr @np stringwidth pop 3 -1 roll add exch moveto + +}forall}{pop}ifelse $SDF{$dsf $dsa $dsp @ss}if + +setmatrix}bd/@te{@ft}bd/@tr{@st}bd/@ta{dup + +@gs @ft @gr @st}bd/@t@a{dup @gs @st @gr @ft}bd + +/@tm{/$textsave save def @sm concat}bd/e{/t{@te}def}bd + +/r{/t{@tr}def}bd/o{/t{pop}def}bd/a{/t{@ta}def}bd + +/@a{/t{@t@a}def}bd/t{@te}def/T{@np $ctm setmatrix + +/$ttm matrix def $textsave restore}bd/@t{/$stm $stm currentmatrix def + +3 1 roll moveto $ttm concat t $stm setmatrix}def + +/@n{/$ttm exch matrix rotate def}bd/@s{}bd + +/@l{}bd/@B{@gs S @gr F}bd/@b{@cp @B}bd/@w{matrix rotate/$ptm xd + +matrix scale $ptm dup concatmatrix/$ptm xd + +1 eq{$ptm exch dup concatmatrix/$ptm xd}if + +1 w}bd/@g{1 eq dup/$sdf xd{/$scp xd/$sca xd + +/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd + +/$SCA xd/$SCF xd}if}bd/@D{3 copy @ss/$dsp xd + +/$dsa xd/$dsf xd}bd/@j{@sv @np}bind def/@J{@rs}bind def + +/@sep{/ColorSeparationMode where{pop}{/ColorSeparationMode 0 def + +/CurrentInkName (Composite) def}ifelse ColorSeparationMode 0 eq{ + +/CurrentInkName (Composite) def}if/CurrentInkName where{pop}{ + +/CurrentInkName (Composite) def}ifelse CurrentInkName (Composite) eq + +{/$ink -1 def}{CurrentInkName (Cyan) eq{/$ink 0 def}{ + +CurrentInkName (Magenta) eq{/$ink 1 def}{CurrentInkName (Yellow) eq + +{/$ink 2 def}{CurrentInkName (Black) eq{/$ink 3 def}{/$ink 4 def + +}ifelse}ifelse}ifelse}ifelse}ifelse}bd @sep + +/@whi{@gs -72000 dup moveto -72000 72000 lineto + +72000 dup lineto 72000 -72000 lineto closepath 1 setgray fill + +@gr}bd/@neg{ [{1 exch sub}/exec cvx currenttransfer/exec cvx] cvx settransfer + +@whi}bd/@reg{[] 0 d 0 setgray .3 setlinewidth + +2 copy 5.4 0 360 arc closepath 2 copy moveto 9 0 rlineto + +2 copy moveto -9 0 rlineto 2 copy moveto 0 9 rlineto + +moveto 0 -9 rlineto stroke}bd/leftbracket{(\050)}def + +/rightbracket{(\051)}def + + + + + +11.4737 setmiterlimit + +1.00 setflat + +/$fst 128 def + +[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 + +229 291 457 457 732 543 182 275 275 322 480 229 275 229 229 457 + +457 457 457 457 457 457 457 457 457 229 229 480 480 480 457 836 + +543 543 592 592 543 504 639 592 229 408 543 457 686 592 639 543 + +639 592 543 504 592 543 771 543 543 504 229 229 229 387 457 275 + +457 457 408 457 457 229 457 457 182 182 408 182 686 457 457 457 + +457 275 408 229 457 408 592 408 408 408 275 213 275 480 750 750 + +750 750 457 275 818 457 457 275 818 750 275 818 750 750 750 750 + +182 182 275 275 229 457 818 275 818 750 275 771 750 750 750 750 + +275 457 457 457 457 148 457 275 605 299 457 480 750 605 750 750 + +750 750 750 275 750 441 750 275 750 299 457 750 750 750 504 543 + +543 543 543 543 543 818 592 543 543 543 543 229 229 229 229 750 + +592 639 639 639 639 639 750 639 592 592 592 592 543 750 504 457 + +457 457 457 457 457 732 408 457 457 457 457 229 229 229 229 750 + +457 457 457 457 457 457 750 504 457 457 457 457 408 750 408 ] + +CorelDrawReencodeVect /_Helvetica-Narrow /Helvetica-Narrow Z + +[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 600 + +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 + +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 + +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 + +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 + +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 + +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 + +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 + +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 + +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 + +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 + +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 + +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 + +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 + +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 ] + +CorelDrawReencodeVect /_Courier /Courier Z + + + + +@sv + +/$ctm matrix currentmatrix def + +@sv + + +106.13 392.62 110.02 399.38 @E + + +[0.07199 0.00000 0.00000 0.07199 106 392] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 125.00 z + +0 0 (0) @t + +T + + +160.70 392.69 163.30 399.31 @E + + +[0.07199 0.00000 0.00000 0.07199 160 392] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 125.00 z + +0 0 (1) @t + +T + + +214.06 392.69 217.94 399.24 @E + + +[0.07199 0.00000 0.00000 0.07199 214 392] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 125.00 z + +0 0 (2) @t + +T + + +268.06 392.54 271.94 399.24 @E + + +[0.07199 0.00000 0.00000 0.07199 268 392] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 125.00 z + +0 0 (3) @t + +T + + +321.98 392.47 325.94 399.10 @E + + +[0.07199 0.00000 0.00000 0.07199 322 392] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 125.00 z + +0 0 (4) @t + +T + + +375.98 392.40 379.94 399.10 @E + + +[0.07199 0.00000 0.00000 0.07199 376 392] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 125.00 z + +0 0 (5) @t + +T + + +159.98 446.69 163.94 453.38 @E + + +[0.07199 0.00000 0.00000 0.07199 160 446] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 125.00 z + +0 0 (6) @t + +T + + +106.06 338.83 110.09 345.38 @E + + +[0.07199 0.00000 0.00000 0.07199 106 338] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 125.00 z + +0 0 (7) @t + +T + + +159.98 338.62 163.94 345.46 @E + + +[0.07199 0.00000 0.00000 0.07199 160 338] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 125.00 z + +0 0 (8) @t + +T + + +106.13 284.62 110.02 291.46 @E + + +[0.07199 0.00000 0.00000 0.07199 106 284] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 125.00 z + +0 0 (9) @t + +T + + +157.97 284.69 166.10 291.53 @E + + +[0.07199 0.00000 0.00000 0.07199 158 285] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 125.00 z + +0 0 (10) @t + +T + + +104.54 446.69 111.53 453.31 @E + + +[0.07199 0.00000 0.00000 0.07199 104 446] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 125.00 z + +0 0 (11) @t + +T + + +112.54 440.93 114.55 445.97 @E + + +[0.07199 0.00000 0.00000 0.07199 112 440] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 97.00 z + +0 0 (1) @t + +T + + +166.46 278.93 169.49 283.97 @E + + +[0.07199 0.00000 0.00000 0.07199 166 278] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 97.00 z + +0 0 (2) @t + +T + + +112.46 332.86 115.49 337.90 @E + + +[0.07199 0.00000 0.00000 0.07199 112 332] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 97.00 z + +0 0 (3) @t + +T + + +166.46 332.86 169.49 337.90 @E + + +[0.07199 0.00000 0.00000 0.07199 166 332] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 97.00 z + +0 0 (3) @t + +T + + +328.46 386.93 331.56 391.97 @E + + +[0.07199 0.00000 0.00000 0.07199 328 386] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 97.00 z + +0 0 (4) @t + +T + + +274.46 386.93 277.56 391.97 @E + + +[0.07199 0.00000 0.00000 0.07199 274 386] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 97.00 z + +0 0 (4) @t + +T + + +220.46 386.93 223.56 391.97 @E + + +[0.07199 0.00000 0.00000 0.07199 220 386] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 97.00 z + +0 0 (4) @t + +T + + +166.46 386.93 169.56 391.97 @E + + +[0.07199 0.00000 0.00000 0.07199 166 386] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 97.00 z + +0 0 (4) @t + +T + + +166.46 440.93 169.56 445.97 @E + + +[0.07199 0.00000 0.00000 0.07199 166 440] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 97.00 z + +0 0 (4) @t + +T + + +382.46 386.78 385.56 391.90 @E + + +[0.07199 0.00000 0.00000 0.07199 382 386] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Helvetica-Narrow 97.00 z + +0 0 (5) @t + +T + + +94.54 382.54 121.61 409.46 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +108.07 409.46 m + +115.49 409.46 121.61 403.42 121.61 396.00 c + +121.61 388.58 115.49 382.54 108.07 382.54 c + +100.66 382.54 94.54 388.58 94.54 396.00 c + +94.54 403.42 100.66 409.46 108.07 409.46 c + +@c + +S + + +94.54 274.54 121.61 301.46 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +108.07 301.46 m + +115.49 301.46 121.61 295.42 121.61 288.00 c + +121.61 280.58 115.49 274.54 108.07 274.54 c + +100.66 274.54 94.54 280.58 94.54 288.00 c + +94.54 295.42 100.66 301.46 108.07 301.46 c + +@c + +S + + +94.54 328.61 121.61 355.54 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +108.07 355.54 m + +115.49 355.54 121.61 349.49 121.61 342.07 c + +121.61 334.66 115.49 328.61 108.07 328.61 c + +100.66 328.61 94.54 334.66 94.54 342.07 c + +94.54 349.49 100.66 355.54 108.07 355.54 c + +@c + +S + + +95.83 329.98 120.17 354.31 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +108.00 354.31 m + +114.62 354.31 120.17 348.91 120.17 342.14 c + +120.17 335.45 114.62 329.98 108.00 329.98 c + +101.30 329.98 95.83 335.45 95.83 342.14 c + +95.83 348.91 101.30 354.31 108.00 354.31 c + +@c + +S + + +148.46 328.54 175.54 355.46 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +162.00 355.46 m + +169.42 355.46 175.54 349.42 175.54 342.00 c + +175.54 334.58 169.42 328.54 162.00 328.54 c + +154.58 328.54 148.46 334.58 148.46 342.00 c + +148.46 349.42 154.58 355.46 162.00 355.46 c + +@c + +S + + +149.76 329.90 174.10 354.24 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +161.93 354.24 m + +168.55 354.24 174.10 348.84 174.10 342.07 c + +174.10 335.38 168.55 329.90 161.93 329.90 c + +155.23 329.90 149.76 335.38 149.76 342.07 c + +149.76 348.84 155.23 354.24 161.93 354.24 c + +@c + +S + + +148.46 436.54 175.54 463.46 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +162.00 463.46 m + +169.42 463.46 175.54 457.42 175.54 450.00 c + +175.54 442.58 169.42 436.54 162.00 436.54 c + +154.58 436.54 148.46 442.58 148.46 450.00 c + +148.46 457.42 154.58 463.46 162.00 463.46 c + +@c + +S + + +149.76 437.90 174.10 462.24 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +161.93 462.24 m + +168.55 462.24 174.10 456.84 174.10 450.07 c + +174.10 443.38 168.55 437.90 161.93 437.90 c + +155.23 437.90 149.76 443.38 149.76 450.07 c + +149.76 456.84 155.23 462.24 161.93 462.24 c + +@c + +S + + +94.54 436.54 121.61 463.46 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +108.07 463.46 m + +115.49 463.46 121.61 457.42 121.61 450.00 c + +121.61 442.58 115.49 436.54 108.07 436.54 c + +100.66 436.54 94.54 442.58 94.54 450.00 c + +94.54 457.42 100.66 463.46 108.07 463.46 c + +@c + +S + + +95.83 437.90 120.17 462.24 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +108.00 462.24 m + +114.62 462.24 120.17 456.84 120.17 450.07 c + +120.17 443.38 114.62 437.90 108.00 437.90 c + +101.30 437.90 95.83 443.38 95.83 450.07 c + +95.83 456.84 101.30 462.24 108.00 462.24 c + +@c + +S + + +148.46 382.54 175.54 409.46 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +162.00 409.46 m + +169.42 409.46 175.54 403.42 175.54 396.00 c + +175.54 388.58 169.42 382.54 162.00 382.54 c + +154.58 382.54 148.46 388.58 148.46 396.00 c + +148.46 403.42 154.58 409.46 162.00 409.46 c + +@c + +S + + +149.76 383.90 174.10 408.24 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +161.93 408.24 m + +168.55 408.24 174.10 402.84 174.10 396.07 c + +174.10 389.38 168.55 383.90 161.93 383.90 c + +155.23 383.90 149.76 389.38 149.76 396.07 c + +149.76 402.84 155.23 408.24 161.93 408.24 c + +@c + +S + + +148.54 274.61 175.61 301.54 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +162.07 301.54 m + +169.49 301.54 175.61 295.49 175.61 288.07 c + +175.61 280.66 169.49 274.61 162.07 274.61 c + +154.66 274.61 148.54 280.66 148.54 288.07 c + +148.54 295.49 154.66 301.54 162.07 301.54 c + +@c + +S + + +149.83 275.98 174.17 300.31 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +162.00 300.31 m + +168.62 300.31 174.17 294.91 174.17 288.14 c + +174.17 281.45 168.62 275.98 162.00 275.98 c + +155.30 275.98 149.83 281.45 149.83 288.14 c + +149.83 294.91 155.30 300.31 162.00 300.31 c + +@c + +S + + +202.46 382.46 229.54 409.39 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +216.00 409.39 m + +223.42 409.39 229.54 403.34 229.54 395.93 c + +229.54 388.51 223.42 382.46 216.00 382.46 c + +208.58 382.46 202.46 388.51 202.46 395.93 c + +202.46 403.34 208.58 409.39 216.00 409.39 c + +@c + +S + + +203.76 383.83 228.10 408.17 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +215.93 408.17 m + +222.55 408.17 228.10 402.77 228.10 396.00 c + +228.10 389.30 222.55 383.83 215.93 383.83 c + +209.23 383.83 203.76 389.30 203.76 396.00 c + +203.76 402.77 209.23 408.17 215.93 408.17 c + +@c + +S + + +256.46 382.39 283.54 409.32 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +270.00 409.32 m + +277.42 409.32 283.54 403.27 283.54 395.86 c + +283.54 388.44 277.42 382.39 270.00 382.39 c + +262.58 382.39 256.46 388.44 256.46 395.86 c + +256.46 403.27 262.58 409.32 270.00 409.32 c + +@c + +S + + +257.76 383.76 282.10 408.10 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +269.93 408.10 m + +276.55 408.10 282.10 402.70 282.10 395.93 c + +282.10 389.23 276.55 383.76 269.93 383.76 c + +263.23 383.76 257.76 389.23 257.76 395.93 c + +257.76 402.70 263.23 408.10 269.93 408.10 c + +@c + +S + + +310.46 382.32 337.54 409.25 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +324.00 409.25 m + +331.42 409.25 337.54 403.20 337.54 395.78 c + +337.54 388.37 331.42 382.32 324.00 382.32 c + +316.58 382.32 310.46 388.37 310.46 395.78 c + +310.46 403.20 316.58 409.25 324.00 409.25 c + +@c + +S + + +311.76 383.69 336.10 408.02 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +323.93 408.02 m + +330.55 408.02 336.10 402.62 336.10 395.86 c + +336.10 389.16 330.55 383.69 323.93 383.69 c + +317.23 383.69 311.76 389.16 311.76 395.86 c + +311.76 402.62 317.23 408.02 323.93 408.02 c + +@c + +S + + +364.46 382.25 391.54 409.18 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +378.00 409.18 m + +385.42 409.18 391.54 403.13 391.54 395.71 c + +391.54 388.30 385.42 382.25 378.00 382.25 c + +370.58 382.25 364.46 388.30 364.46 395.71 c + +364.46 403.13 370.58 409.18 378.00 409.18 c + +@c + +S + + +365.76 383.62 390.10 407.95 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +377.93 407.95 m + +384.55 407.95 390.10 402.55 390.10 395.78 c + +390.10 389.09 384.55 383.62 377.93 383.62 c + +371.23 383.62 365.76 389.09 365.76 395.78 c + +365.76 402.55 371.23 407.95 377.93 407.95 c + +@c + +S + + +121.54 395.86 148.54 396.14 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +121.54 396.00 m + +147.17 396.00 L + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +144.00 398.52 m + +147.96 396.00 L + +144.00 393.48 L + +S + +@J + + +175.54 395.86 202.54 396.14 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +175.54 396.00 m + +201.17 396.00 L + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +198.00 398.52 m + +201.96 396.00 L + +198.00 393.48 L + +S + +@J + + +229.54 395.86 256.54 396.14 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +229.54 396.00 m + +255.17 396.00 L + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +252.00 398.52 m + +255.96 396.00 L + +252.00 393.48 L + +S + +@J + + +283.54 395.86 310.54 396.14 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +283.54 396.00 m + +309.17 396.00 L + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +306.00 398.52 m + +309.96 396.00 L + +306.00 393.48 L + +S + +@J + + +337.54 395.86 364.54 396.14 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +337.54 396.00 m + +363.17 396.00 L + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +360.00 398.52 m + +363.96 396.00 L + +360.00 393.48 L + +S + +@J + + +125.57 268.56 143.86 284.98 @E + + +[0.07198 0.00000 0.00000 0.07199 125 278] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (\133) @t + +60 0 (0) @t + +120 0 (-) @t + +180 0 (9) @t + +0 -125 (a) @t + +60 -125 (-) @t + +120 -125 (f) @t + +180 -125 (\135) @t + +T + + +121.54 287.86 148.54 288.14 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +121.54 288.00 m + +147.17 288.00 L + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +144.00 290.52 m + +147.96 288.00 L + +144.00 285.48 L + +S + +@J + + +121.54 341.86 148.54 342.14 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +121.54 342.00 m + +147.17 342.00 L + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +144.00 344.52 m + +147.96 342.00 L + +144.00 339.48 L + +S + +@J + + +107.86 301.54 108.14 328.54 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +108.00 328.54 m + +108.00 302.90 L + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +110.52 306.14 m + +108.00 302.18 L + +105.48 306.14 L + +S + +@J + + +107.86 355.54 108.14 382.54 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +108.00 382.54 m + +108.00 356.90 L + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +110.52 360.14 m + +108.00 356.18 L + +105.48 360.14 L + +S + +@J + + +107.86 409.54 108.14 436.54 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +108.00 409.54 m + +108.00 435.17 L + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +105.41 432.00 m + +108.00 435.96 L + +110.59 432.00 L + +S + +@J + + +117.00 405.00 153.00 441.00 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +117.00 405.00 m + +152.06 440.06 L + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +147.96 439.63 m + +152.64 440.64 L + +151.70 436.03 L + +S + +@J + + +117.00 351.00 153.00 387.00 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +117.00 387.00 m + +152.06 351.94 L + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +151.63 356.04 m + +152.64 351.43 L + +148.03 352.44 L + +S + +@J + + +166.39 341.93 196.63 377.14 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +173.38 346.82 m + +177.48 347.47 182.59 350.42 186.77 354.60 c + +193.75 361.58 196.63 370.22 193.18 373.68 c + +189.72 377.14 181.08 374.33 174.10 367.34 c + +169.92 363.17 166.90 358.06 166.39 353.95 C + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +169.34 356.90 m + +166.39 353.30 L + +164.30 357.62 L + +S + +@J + + +166.39 450.72 196.63 485.93 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +173.38 455.62 m + +177.48 456.26 182.59 459.22 186.77 463.39 c + +193.75 470.38 196.63 479.02 193.18 482.47 c + +189.72 485.93 181.08 483.12 174.10 476.14 c + +169.92 471.96 166.90 466.85 166.39 462.74 C + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +169.34 465.70 m + +166.39 462.10 L + +164.30 466.42 L + +S + +@J + + +166.39 287.93 196.63 323.14 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +173.38 292.82 m + +177.48 293.47 182.59 296.42 186.77 300.60 c + +193.75 307.58 196.63 316.22 193.18 319.68 c + +189.72 323.14 181.08 320.33 174.10 313.34 c + +169.92 309.17 166.90 304.06 166.39 299.95 C + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +169.34 302.90 m + +166.39 299.30 L + +164.30 303.62 L + +S + +@J + + +166.61 396.00 198.00 450.00 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +182.30 396.00 m + +190.94 396.00 198.00 408.17 198.00 423.00 c + +198.00 437.83 190.94 450.00 182.30 450.00 C + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +185.54 447.41 m + +181.58 450.00 L + +185.54 452.59 L + +S + +@J + + +220.61 396.00 252.00 450.00 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +236.30 396.00 m + +244.94 396.00 252.00 408.17 252.00 423.00 c + +252.00 437.83 244.94 450.00 236.30 450.00 C + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +239.54 447.41 m + +235.58 450.00 L + +239.54 452.59 L + +S + +@J + + +274.61 396.00 306.00 450.00 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +290.30 396.00 m + +298.94 396.00 306.00 408.17 306.00 423.00 c + +306.00 437.83 298.94 450.00 290.30 450.00 C + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +293.54 447.41 m + +289.58 450.00 L + +293.54 452.59 L + +S + +@J + + +328.61 396.00 360.00 450.00 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +344.30 396.00 m + +352.94 396.00 360.00 408.17 360.00 423.00 c + +360.00 437.83 352.94 450.00 344.30 450.00 C + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +347.54 447.41 m + +343.58 450.00 L + +347.54 452.59 L + +S + +@J + + +382.54 396.00 413.93 450.00 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +398.23 396.00 m + +406.87 396.00 413.93 408.17 413.93 423.00 c + +413.93 437.83 406.87 450.00 398.23 450.00 C + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +401.47 447.41 m + +397.51 450.00 L + +401.47 452.59 L + +S + +@J + + +391.54 395.86 398.23 396.14 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +391.54 396.00 m + +398.23 396.00 L + +S + + +175.54 449.86 398.23 450.14 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +398.23 450.00 m + +175.54 450.00 L + +S + + +139.46 385.27 144.43 391.03 @E + + +[0.07199 0.00000 0.00000 0.07199 139 386] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (p) @t + +T + + +188.93 386.93 193.90 390.96 @E + + +[0.07199 0.00000 0.00000 0.07199 188 386] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (r) @t + +T + + +242.93 386.93 247.61 392.76 @E + + +[0.07199 0.00000 0.00000 0.07199 242 386] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (i) @t + +T + + +296.93 386.93 301.97 391.03 @E + + +[0.07199 0.00000 0.00000 0.07199 296 386] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (n) @t + +T + + +350.93 386.86 355.82 392.18 @E + + +[0.07199 0.00000 0.00000 0.07199 350 386] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (t) @t + +T + + +98.93 364.39 103.46 370.22 @E + + +[0.07199 0.00000 0.00000 0.07199 98 364] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (0) @t + +T + + +98.93 310.46 103.97 314.42 @E + + +[0.07199 0.00000 0.00000 0.07199 98 310] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (x) @t + +T + + +125.50 331.78 146.66 338.76 @E + + +[0.07199 0.00000 0.00000 0.07199 125 332] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (\133) @t + +60 0 (0) @t + +120 0 (-) @t + +180 0 (9) @t + +240 0 (\135) @t + +T + + +134.50 367.78 155.66 374.76 @E + + +[0.07199 0.00000 0.00000 0.07199 134 368] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (\133) @t + +60 0 (1) @t + +120 0 (-) @t + +180 0 (9) @t + +240 0 (\135) @t + +T + + +134.28 416.74 166.46 424.73 @E + + +[0.07199 0.00000 0.00000 0.07199 134 418] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (\133) @t + +60 0 (a) @t + +120 0 (-) @t + +180 0 (z) @t + +240 0 (\135) @t + +300 0 (\134) @t + +360 0 (p) @t + +T + + +197.28 417.31 229.46 424.73 @E + + +[0.07199 0.00000 0.00000 0.07199 197 418] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (\133) @t + +60 0 (a) @t + +120 0 (-) @t + +180 0 (z) @t + +240 0 (\135) @t + +300 0 (\134) @t + +360 0 (r) @t + +T + + +251.28 417.31 283.18 424.73 @E + + +[0.07199 0.00000 0.00000 0.07199 251 418] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (\133) @t + +60 0 (a) @t + +120 0 (-) @t + +180 0 (z) @t + +240 0 (\135) @t + +300 0 (\134) @t + +360 0 (i) @t + +T + + +305.28 417.31 337.54 424.73 @E + + +[0.07199 0.00000 0.00000 0.07199 305 418] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (\133) @t + +60 0 (a) @t + +120 0 (-) @t + +180 0 (z) @t + +240 0 (\135) @t + +300 0 (\134) @t + +360 0 (n) @t + +T + + +359.28 417.31 391.39 424.73 @E + + +[0.07199 0.00000 0.00000 0.07199 359 418] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (\133) @t + +60 0 (a) @t + +120 0 (-) @t + +180 0 (z) @t + +240 0 (\135) @t + +300 0 (\134) @t + +360 0 (t) @t + +T + + +413.50 417.31 434.66 424.15 @E + + +[0.07199 0.00000 0.00000 0.07199 413 418] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (\133) @t + +60 0 (a) @t + +120 0 (-) @t + +180 0 (z) @t + +240 0 (\135) @t + +T + + +193.03 475.78 214.20 482.62 @E + + +[0.07199 0.00000 0.00000 0.07199 193 476] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (\133) @t + +60 0 (a) @t + +120 0 (-) @t + +180 0 (z) @t + +240 0 (\135) @t + +T + + +193.03 367.78 214.20 374.76 @E + + +[0.07199 0.00000 0.00000 0.07199 193 368] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (\133) @t + +60 0 (0) @t + +120 0 (-) @t + +180 0 (9) @t + +240 0 (\135) @t + +T + + +192.74 313.78 227.45 320.76 @E + + +[0.07199 0.00000 0.00000 0.07199 193 314] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (\133) @t + +60 0 (0) @t + +120 0 (-) @t + +180 0 (9) @t + +240 0 (a) @t + +300 0 (-) @t + +360 0 (f) @t + +420 0 (\135) @t + +T + + +52.70 412.56 107.21 429.41 @E + + +[0.07199 0.00000 0.00000 0.07199 53 422] @tm + + 0 O 0 @g + +0.00 0.00 0.00 1.00 k + +e + +/_Courier 125.00 z + +0 0 (\133) @t + +60 0 (\134) @t + +120 0 (0) @t + +180 0 (0) @t + +240 0 (0) @t + +300 0 (-) @t + +360 0 (\134) @t + +420 0 (3) @t + +480 0 (7) @t + +540 0 (7) @t + +600 0 (\135) @t + +660 0 (\134) @t + +0 -125 (\133) @t + +60 -125 (0) @t + +120 -125 (-) @t + +180 -125 (9) @t + +240 -125 (a) @t + +300 -125 (-) @t + +360 -125 (z) @t + +420 -125 (\135) @t + +T + + +54.00 391.54 94.54 401.83 @E + +0 J 0 j [] 0 d 0 R 0 @G + +0.00 0.00 0.00 1.00 K + +0 0.22 0.22 0.00 @w + + +54.00 396.65 m + +55.51 398.16 56.52 401.83 58.54 401.18 c + +62.50 399.89 63.29 392.18 67.54 392.18 c + +71.71 392.18 72.29 401.18 76.54 401.18 c + +80.71 401.18 81.50 393.55 85.54 392.18 c + +87.48 391.54 88.27 396.58 90.00 396.65 C + +93.17 396.65 L + +S + +@j + +0.00 0.00 0.00 1.00 K + +0.00 0.00 0.00 1.00 k + +0 @g + +0 @G + +[] 0 d 0 J 0 j + +0 R 0 O 0 1.01 1.01 0 @w + +90.00 399.17 m + +93.96 396.65 L + +90.00 394.13 L + +S + +@J + +@rs + +@rs + + + end + +%%EndDocument + @endspecial 108 1136 a Fr(Figure)21 b(3:)32 b(A)20 b(DF)-5 +b(A)21 b(for)f(the)i(sample)d(sp)q(eci\014cation)j(in)e(Figure)g(2.)39 +b(State)21 b(0)f(is)h(the)g(start)g(state.)108 1186 y(Accepting)d +(states)g(are)g(lab)q(eled)e(with)h(the)g(n)o(um)o(b)q(er)f(of)g(the)i +(rule)f(that)g(they)g(matc)o(h.)26 b(F)m(or)16 b(example,)108 +1236 y(state)i(10)d(accepts)j(rule)f(2.)25 b(T)m(ransitions)16 +b(di\013ering)g(only)g(b)o(y)g(lab)q(el)f(are)i(represen)o(ted)i(with)d +(the)h(same)108 1286 y(arc.)i(F)m(or)12 b(example,)f(state)j(0)e(has)h +(transitions)g(to)f(state)i(6)e(on)h(all)e(of)i(the)g(follo)o(wing)d(c) +o(haracters:)19 b Fm(a)p Fr(,)13 b Fl(:)7 b(:)g(:)n Fr(,)108 +1336 y Fm(o)p Fr(,)14 b Fm(q)p Fr(,)f Fl(:)7 b(:)g(:)12 +b Fm(z)p Fr(.)21 1469 y(RE2C)i(is)g(di\013eren)o(t)h(from)e(most)g +(other)i(scanner)h(generators)f(in)f(that)h(the)g(user)g(m)o(ust)f(pro) +o(vide)g(the)h(input)f(bu\013ering)-42 1519 y(mec)o(hanism)i(for)h(the) +i(scanner;)h(the)f(generated)g(co)q(de)g(simply)c(assumes)j(that)g(the) +g(user)h(has)f(de\014ned)h(three)g(p)q(oin)o(ters:)-42 +1569 y Fm(YYCURSOR)p Fr(,)9 b Fm(YYLIMIT)g Fr(and)h Fm(YYMARKER)p +Fr(,)e(and)i(a)h(routine)f Fm(YYFILL\()p Fl(n)p Fm(\))p +Fr(.)15 b(Before)d(executing)f(the)g(generated)h(co)q(de,)f +Fm(YYCURSOR)-42 1619 y Fr(and)h Fm(YYLIMIT)d Fr(m)o(ust)h(b)q(e)i(set)g +(to)g(p)q(oin)o(t)e(to)h(the)h(\014rst)g(and)f(one)h(past)f(the)h(last) +f(c)o(haracter)i(in)e(the)g(bu\013er,)i(resp)q(ectiv)o(ely)m(.)18 +b(After)-42 1669 y(a)f(tok)o(en)g(is)f(recognized,)i(and)f(b)q(efore)g +(an)o(y)f(action)g(is)h(executed,)i Fm(YYCURSOR)c Fr(is)h(set)i(to)e(p) +q(oin)o(t)g(to)h(just)g(past)g(the)g(tok)o(en.)-42 1718 +y Fm(YYFILL)d Fr(will)g(b)q(e)i(called)f(as)g(the)h(bu\013er)h(needs)f +(\014lling;)e(at)h(least)h Fl(n)f Fr(additional)e(input)i(c)o +(haracters)i(should)e(b)q(e)h(pro)o(vided.)-42 1768 y(When)g +Fm(YYFILL)d Fr(is)i(called,)f Fm(YYCURSOR)f Fr(will)h(p)q(oin)o(t)g(to) +h(the)g(next)h(c)o(haracter)g(to)f(b)q(e)g(scanned)h(and)f +Fm(YYMARKER)p Fr(,)d(if)i(set,)i(will)-42 1818 y(p)q(oin)o(t)f(to)f(a)g +(p)q(ossible)h(bac)o(ktrac)o(king)g(p)q(oin)o(t)f(in)g(the)h(bu\013er.) +21 b Fm(YYFILL)14 b Fr(m)o(ust)f(up)q(date)j Fm(YYLIMIT)p +Fr(,)c(and)j(p)q(ossibly)f Fm(YYCURSOR)-42 1868 y Fr(and)f +Fm(YYMARKER)f Fr(b)q(efore)h(returning.)18 b(T)o(ypically)12 +b Fm(YYCURSOR)p Fr(,)f Fm(YYLIMIT)p Fr(,)g Fm(YYMARKER)p +Fr(,)f(and)j Fm(YYFILL\()p Fl(n)p Fm(\))e Fr(will)h(b)q(e)h(de\014ned)h +(as)-42 1918 y(macros.)-42 2034 y Fj(2.1)56 b(Things)19 +b(That)g(RE2C)f(Do)r(esn't)g(Pro)n(vide)-42 2111 y Fr(RE2C)11 +b(do)q(esn't)h(pro)o(vide)f(man)o(y)e(things)j(a)o(v)n(ailable)d(in)h +(more)h(con)o(v)o(en)o(tional)f(scanner)j(generators)f(including)e +(default)h(rules,)-42 2160 y(end-of-input)17 b(pseudo-tok)o(ens,)i(and) +e(bu\013er)i(managemen)o(t)14 b(routines.)29 b(All)17 +b(of)f(these)j(m)o(ust)d(b)q(e)i(supplied)g(b)o(y)f(the)h(user.)-42 +2210 y(Rather)10 b(than)g(b)q(eing)f(a)g(handicap,)h(this)g(allo)o(ws)e +(RE2C-generated)i(scanners)h(to)f(b)q(e)g(tailored)f(to)g(almost)f(an)o +(y)h(en)o(vironmen)o(t.)-42 2260 y(F)m(or)k(example,)f(the)i(scanner)h +(de\014ned)f(in)f(Figure)h(1)f(compiles)f(in)o(to)h(32)g(b)o(ytes)h(of) +e(i486)h(co)q(de)h(\(using)f(W)m(atcom)e(C)j(9.5\);)e(the)-42 +2310 y(same)g(size)h(as)f(an)g(equiv)n(alen)o(t)g(hand-co)q(ded)h +(routine.)k(Most)c(other)g(scanner)g(generators)h(cannot)e(pro)q(duce)h +(scanners)h(that)-42 2360 y(are)k(comp)q(etitiv)o(e)e(with)g(hand-co)q +(ded)i(analyzers)f(in)f(this)h(case.)28 b(F)m(urther,)18 +b(it)f(is)g(not)f(o)o(v)o(erly)h(di\016cult)f(to)h(implem)o(en)o(t)e(a) +-42 2409 y(more)c(traditional)f(scanner)j(using)f(RE2C.)e(F)m(or)h +(example,)g(App)q(endix)h(A)f(con)o(tains)h(the)g(supp)q(ort)h(co)q(de) +f(for)f(the)i(C)e(scanner)-42 2459 y(b)q(enc)o(hmark)o(ed)j(in)f(T)m +(able)g(1.)k(Note)d(that)g(this)f(co)q(de)h(allo)o(ws)f(for)g +(arbitrarily)f(long)h(con)o(tiguous)g(tok)o(ens)h(and)f(pro)o(vides)h +(line)-42 2509 y(and)g(column)e(n)o(um)o(b)q(er)i(information.)923 +2748 y(3)p eop +%%Page: 4 4 +4 3 bop -42 195 a Fs(3)67 b(Generating)23 b(Directly)h(Executable)g +(Scanners)-42 286 y Fr(As)14 b(demonstrated)g(b)o(y)f(GLA)g([7)o(])g +(generating)h(directly)g(executable)g(co)q(de)g(instead)g(of)f(tables)h +(can)f(result)i(in)e(m)o(uc)o(h)f(faster)-42 336 y(scanners.)20 +b(Ho)o(w)o(ev)o(er,)13 b(to)g(ac)o(hiev)o(e)h(this)f(sp)q(eed,)h +(GLA-generated)h(scanners)f(mak)o(e)e(some)g(assumptions)h(ab)q(out)g +(the)h(input)-42 386 y(and)i(place)g(certain)g(restrictions)g(on)g(tok) +o(ens)680 371 y Fq(4)699 386 y Fr(.)23 b(In)15 b(this)h(section)g(w)o +(e)g(will)e(sho)o(w)h(ho)o(w)g(to)h(generate)g(directly)g(executable) +-42 435 y(scanners)22 b(whic)o(h)d(not)g(only)g(a)o(v)o(oid)f(suc)o(h)i +(restrictions,)h(but)f(are)g(also)e(faster)i(and)f(usually)g(smaller.) +33 b(The)19 b(approac)o(h)-42 485 y(presen)o(ted)f(here)f(has)f(the)g +(added)g(b)q(ene\014t)h(that)f(ev)o(en)g(faster)h(scanners)g(can)f(b)q +(e)g(easily)f(b)q(e)i(created,)g(at)e(the)i(exp)q(ense)g(of)-42 +535 y(increased)f(co)q(de)e(size,)h(b)o(y)e(using)h(a)f(tec)o(hnique)i +(akin)e(to)h(lo)q(op)f(unrolling.)-42 651 y Fj(3.1)56 +b(Constructing)19 b(a)g(DF)-6 b(A)-42 728 y Fr(The)15 +b(\014rst)g(step)g(in)f(generating)h(a)f(directly)g(executable)h +(scanner)h(is)e(to)g(construct)i(a)e(DF)-5 b(A)15 b(that)f(recognizes)i +(the)e(regular)-42 778 y(expressions)g(in)e(the)h(sp)q(eci\014cation.) +18 b(Figure)12 b(3)g(presen)o(ts)i(a)e(DF)-5 b(A)13 b(that)f +(recognizes)h(the)g(regular)f(expressions)i(in)e(Figure)g(2.)-42 +828 y(One)18 b(p)q(ossible)f(algorithm)e(for)h(constructing)i(suc)o(h)g +(a)e(DF)-5 b(A)18 b(can)f(b)q(e)g(found)g(in)f([1].)26 +b(Giv)o(en)16 b(suc)o(h)i(a)f(DF)-5 b(A,)16 b(the)i(task)f(of)p +-42 864 780 2 v 5 891 a Fn(4)22 903 y Fo(These)11 b(assumptions)e(and)h +(restrictions)f(are)i(discussed)e(in)j(more)e(detail)g(in)h(Sections)e +(3.3.1)i(and)f(5.1.)923 2748 y Fr(4)p eop +%%Page: 5 5 +5 4 bop -42 195 a Fr(scanning)14 b(the)h(input)f(can)g(b)q(e)g +(expressed)i(as)e(follo)o(ws:)125 278 y(Starting)i(from)g(the)i(start)g +(state,)g(mo)o(v)o(e)e(from)f(state)j(to)f(state)h(along)e(transitions) +i(lab)q(eled)f(with)g(con-)62 328 y(secutiv)o(e)f(c)o(haracters)h(from) +c(the)i(input.)21 b(When)15 b(no)f(further)i(transitions)f(can)g(b)q(e) +g(made,)e(bac)o(ktrac)o(k)i(to)g(the)62 378 y(last)h(accepting)g +(state,)h(sa)o(y)f Fl(q)q Fr(.)24 b(The)16 b(path)g(to)f +Fl(q)i Fr(sp)q(ells)g(the)f(next)g(tok)o(en)g(and)g(the)g(rule)h(asso)q +(ciated)f(with)g Fl(q)62 428 y Fr(determines)e(the)h(co)q(de)g(to)e(b)q +(e)i(executed.)-42 511 y(As)d(a)e(result,)h(the)h(problem)d(of)h +(generating)h(scanners)h(essen)o(tially)f(reduces)h(to)f(the)g(problem) +e(of)h(generating)h(an)f(executable)-42 560 y(represen)o(tation)16 +b(for)d(a)h(DF)-5 b(A.)-42 677 y Fj(3.2)56 b(Generating)18 +b(Co)r(de)-42 753 y Fr(If)g(w)o(e)g(assume)g(that)g(the)h(input)f(is)g +(en)o(tirely)g(con)o(tained)g(in)g(a)f(single)h(bu\013er)h(then)g +(generating)f(co)q(de)h(for)f(the)g(DF)-5 b(A)19 b(is)-42 +803 y(relativ)o(ely)13 b(straigh)o(tforw)o(ard,)f(as)h(is)g +(illustrated)g(b)o(y)f(the)i(co)q(de)g(templates)e(in)h(Figure)g(4.)35 +b(Note)14 b(that)f(the)g(only)g(di\013erence)p 575 863 +717 2 v 575 912 2 50 v 856 897 a Fi(Pr)n(olo)n(gue)p +1290 912 V 575 914 717 2 v 575 964 2 50 v 720 949 a Fm(int)21 +b(yyaccept;)p 1290 964 V 575 1014 V 720 999 a(goto)g(M)p +Fi(start)p Fm(;)p 1290 1014 V 575 1063 V 720 1049 a(fin:)g(YYCURSOR)f +(=)i(YYMARKER;)p 1290 1063 V 575 1113 V 720 1098 a(switch\(yyaccept\))p +Fk(f)p 1290 1113 V 575 1163 V 807 1148 a Fl(:)7 b(:)g(:)p +1290 1163 V 575 1213 V 602 1198 a Fm(A)p Fl(n)p Fm(:)93 +b(case)21 b Fl(n)p Fm(:)43 b Fi(action)p Fr(\()p Fl(n)p +Fr(\))p Fm(;)p 1290 1213 V 575 1263 V 807 1248 a Fl(:)7 +b(:)g(:)p 1290 1263 V 575 1313 V 720 1298 a Fk(g)p 1290 +1313 V 575 1362 V 720 1347 a Fi(c)n(o)n(de)15 b(for)g(states)p +1290 1362 V 575 1364 717 2 v 204 1370 720 2 v 204 1420 +2 50 v 346 1405 a(Co)n(de)g(for)f(ac)n(c)n(epting)h(state)p +921 1420 V 204 1421 720 2 v 204 1471 2 50 v 230 1456 +a Fm(L)p Fl(q)q Fm(:)50 b(++YYCURSOR;)p 921 1471 V 204 +1521 V 344 1506 a(yyaccept)20 b(=)h Fi(rule)p Fr(\()p +Fl(q)q Fr(\))p Fm(;)p 921 1521 V 204 1571 V 344 1556 +a(YYMARKER)f(=)h(YYCURSOR;)p 921 1571 V 204 1621 V 230 +1606 a(M)p Fl(q)q Fm(:)50 b(switch\(*YYCURSO)o(R\))p +Fk(f)p 921 1621 V 204 1670 V 431 1655 a Fl(:)7 b(:)g(:)p +921 1670 V 204 1720 V 387 1705 a Fm(case)21 b Fl(c)p +Fm(:)43 b(goto)21 b(L)p Fi(goto)q Fr(\()p Fl(q)q(;)7 +b(c)p Fr(\))p Fm(;)p 921 1720 V 204 1770 V 431 1755 a +Fl(:)g(:)g(:)p 921 1770 V 204 1820 V 387 1805 a Fm(default:)42 +b(goto)21 b(fin;)p 921 1820 V 204 1870 V 344 1855 a Fk(g)p +921 1870 V 204 1871 720 2 v 944 1370 V 944 1420 2 50 +v 1045 1405 a Fi(Co)n(de)15 b(for)g(non-ac)n(c)n(epting)h(state)p +1662 1420 V 944 1421 720 2 v 944 1471 2 50 v 971 1456 +a Fm(L)p Fl(q)q Fm(:)49 b(++YYCURSOR;)p 1662 1471 V 944 +1521 V 1662 1521 V 944 1571 V 1662 1571 V 944 1621 V +971 1606 a(M)p Fl(q)q Fm(:)g(switch\(*YYCURSOR\))p Fk(f)p +1662 1621 V 944 1670 V 1172 1655 a Fl(:)7 b(:)g(:)p 1662 +1670 V 944 1720 V 1128 1705 a Fm(case)21 b Fl(c)p Fm(:)43 +b(goto)21 b(L)p Fi(goto)p Fr(\()p Fl(q)q(;)7 b(c)p Fr(\))p +Fm(;)p 1662 1720 V 944 1770 V 1172 1755 a Fl(:)g(:)g(:)p +1662 1770 V 944 1820 V 1128 1805 a Fm(default:)42 b(goto)21 +b(fin;)p 1662 1820 V 944 1870 V 1084 1855 a Fk(g)p 1662 +1870 V 944 1871 720 2 v 108 1946 a Fr(Figure)g(4:)30 +b(Directly)20 b(executable)h(scanner.)38 b(The)20 b(co)q(de)h +(generated)g(for)f(a)g(scanner)h(consists)g(of)f(a)108 +1996 y(prologue)12 b(follo)o(w)o(ed)f(b)o(y)h(co)q(de)i(for)e(eac)o(h)h +(state.)18 b Fi(start)11 b Fr(is)i(the)g(start)g(state.)18 +b Fi(action)p Fr(\()p Fl(n)p Fr(\))13 b(denotes)h(the)f(co)q(de)108 +2045 y(asso)q(ciated)h(with)e(rule)h Fl(n)p Fr(,)f Fi(goto)p +Fr(\()p Fl(q)q(;)7 b(c)p Fr(\))12 b(denotes)i(the)f(state)g(reac)o(hed) +h(from)d(state)i Fl(q)h Fr(along)d(the)i(transition)108 +2095 y(lab)q(eled)18 b(with)e Fl(c)h Fr(and)g Fi(rule)p +Fr(\()p Fl(q)q Fr(\))g(denotes)i(the)e(rule)h(asso)q(ciated)g(with)e +(state)i Fl(q)q Fr(.)28 b Fm(yyaccept)16 b Fr(is)h(used)h(to)108 +2145 y(sa)o(v)o(e)d(bac)o(ktrac)o(king)e(information.)i(The)g +Fm(M)p Fr(-lab)q(els)e(will)f(b)q(e)j(used)g(in)e(section)i(3.4.2.)-42 +2245 y(b)q(et)o(w)o(een)j(the)f(templates)f(for)g(accepting)g(and)h +(non-accepting)f(states)i(is)e(that)g(the)h(accepting)g(states)g(ha)o +(v)o(e)f(additional)-42 2294 y(co)q(de)e(to)f(sa)o(v)o(e)g(bac)o(ktrac) +o(king)f(information.)j(Figure)e(5)g(sho)o(ws)g(co)q(de)h(that)f(migh)o +(t)d(b)q(e)k(generated)g(for)f(state)g(1)g(in)f(Figure)h(3.)-42 +2460 y Fj(3.3)56 b(Bu\013ering)-42 2537 y Fr(Complications)13 +b(arise)i(when)g(the)g(input)g(is)g(not)f(con)o(tained)h(in)g(a)f +(single)g(bu\013er:)21 b(additional)13 b(co)q(de)j(is)e(needed)j(for)d +(\014lling)-42 2587 y(the)h(bu\013er)g(as)f(necessary)m(.)923 +2748 y(5)p eop +%%Page: 6 6 +6 5 bop 647 188 a Fm(L1:)49 b(++YYCURSOR;)762 238 y(yyaccept)20 +b(=)i(4;)762 288 y(YYMARKER)e(=)i(YYCURSOR;)647 338 y(M1:)49 +b(switch\(*YYCURSOR\))p Fk(f)806 388 y Fm(case)21 b('a':)43 +b(goto)21 b(L6;)849 438 y Fl(:)7 b(:)g(:)806 487 y Fm(case)21 +b('q':)43 b(goto)21 b(L6;)806 537 y(case)g('r':)43 b(goto)21 +b(L2;)806 587 y(case)g('s':)43 b(goto)21 b(L6;)849 637 +y Fl(:)7 b(:)g(:)806 687 y Fm(case)21 b('z':)43 b(goto)21 +b(L6;)806 736 y(default:)42 b(goto)21 b(fin;)762 786 +y Fk(g)690 876 y Fr(Figure)14 b(5:)k(Co)q(de)c(for)g(state)g(1.)505 +968 y Fm(L6:)50 b(++YYCURSOR;)621 1018 y(if\(YYLIMIT)19 +b(==)j(YYCURSOR\))e(YYFILL\(1\);)621 1068 y(yyaccept)g(=)h(4;)621 +1118 y(YYMARKER)f(=)h(YYCURSOR;)505 1168 y(M6:)50 b(switch\(*YYCURSO)o +(R\))p Fk(f)708 1217 y Fl(:)7 b(:)g(:)621 1267 y Fk(g)690 +1357 y Fr(Figure)14 b(6:)k(Co)q(de)c(for)g(state)g(6.)-42 +1489 y Fh(3.3.1)48 b(The)16 b(Sen)o(tinel)c(Metho)q(d)-42 +1566 y Fr(Most)20 b(scanner)g(generators)g(use)g(the)g(sen)o(tinel)f +(metho)q(d)g([1)o(])f(to)h(determine)g(when)h(the)f(bu\013er)i(needs)f +(\014lling.)32 b(In)19 b(the)-42 1616 y(simplest)d(case,)h(a)f(sym)o(b) +q(ol)f(that)h(do)q(es)i(not)e(app)q(ear)h(in)f(v)n(alid)f(input)h(is)g +(c)o(hosen)h(as)g(the)g(sen)o(tinel)g(c)o(haracter.)26 +b(An)17 b(extra)-42 1666 y(state)12 b(is)f(added)g(to)g(the)h(DF)-5 +b(A)11 b(and)g(transitions)f(to)h(this)g(state)h(on)f(the)g(sen)o +(tinel)h(sym)o(b)q(ol)d(are)i(added)g(to)g(the)h(original)d(states.)-42 +1715 y(When)16 b(the)g(DF)-5 b(A)16 b(arriv)o(es)f(in)g(this)h(new)f +(state)i(it)e(is)g(time)f(to)h(re\014ll)g(the)h(bu\013er.)23 +b(After)16 b(the)g(bu\013er)h(is)e(re\014lled,)g(scanning)-42 +1765 y(m)o(ust)h(b)q(e)g(restarted)i(in)e(the)h(previous)f(state.)26 +b(Unfortunately)m(,)16 b(this)g(is)g(not)g(p)q(ossible)g(with)g(the)h +(approac)o(h)f(outlined)g(in)-42 1815 y(Figure)j(4:)26 +b(the)19 b(necessary)h(information)15 b(is)j(simply)e(not)i(a)o(v)n +(ailable.)28 b(Co)q(de)19 b(could)f(b)q(e)g(added)h(to)f(eac)o(h)g +(state)h(to)f(sa)o(v)o(e)-42 1865 y(the)e(necessary)g(information)c +(but)j(this)g(w)o(ould)e(result)j(in)e(slo)o(w)o(er)h(and)f(larger)h +(scanners.)22 b(GLA)14 b(solv)o(es)h(this)f(problem)g(b)o(y)-42 +1915 y(ensuring)i(that)g(the)f(sen)o(tinel)h(only)f(gets)g(inserted)i +(b)q(et)o(w)o(een)g(tok)o(ens:)k(if)14 b(this)i(is)f(the)h(case,)g(the) +g(scanner)g(can)g(alw)o(a)o(ys)e(b)q(e)-42 1964 y(restarted)k(from)c +(the)j(start)f(state.)25 b(T)m(o)15 b(ensure)i(that)f(the)h(sen)o +(tinel)f(only)f(gets)i(inserted)g(b)q(et)o(w)o(een)g(tok)o(ens,)f(GLA)g +(allo)o(ws)-42 2014 y(newline)g(\(ASCI)q(I)g(LF\))g(c)o(haracters)h(to) +f(app)q(ear)g(only)f(at)g(the)h(end)g(of)f(a)h(tok)o(en)g(and)f +(disallo)o(ws)f(the)i(bu\013ering)g(of)f(partial)-42 +2064 y(lines)39 2049 y Fq(5)58 2064 y Fr(.)-42 2172 y +Fh(3.3.2)48 b(Bu\013ering)-42 2249 y Fr(RE2C-generated)17 +b(scanners)h(c)o(hec)o(k)f(if)e(the)i(bu\013er)g(needs)g(\014lling)e +(simply)f(b)o(y)i(comparing)e Fm(YYCURSOR)g Fr(and)i +Fm(YYLIMIT)p Fr(.)e(A)-42 2298 y(metho)q(d)d(inspired)g(b)o(y)g(the)h +(mec)o(hanism)d(used)j(to)f(guard)g(against)g(stac)o(k)g(o)o(v)o +(er\015o)o(w)g(in)g([17)o(])1365 2283 y Fq(6)1394 2298 +y Fr(is)g(used)i(to)e(reduce)h(the)g(amoun)o(t)-42 2348 +y(of)i(c)o(hec)o(king.)21 2398 y(Chec)o(ks)j(are)g(only)f(inserted)h +(in)f(certain)h(k)o(ey)f(states.)27 b(These)18 b(c)o(hec)o(ks)g(simply) +c(ensure)k(that)e(there)i(is)e(enough)h(input)-42 2448 +y(in)g(the)g(bu\013er)h(for)f(the)h(scan)f(to)g(pro)q(ceed)h(un)o(til)e +(the)i(next)f(k)o(ey)g(state.)28 b(F)m(or)17 b(example,)f(in)g(the)i +(DF)-5 b(A)17 b(of)f(Figure)h(3)g(it)g(is)-42 2498 y(su\016cien)o(t)e +(to)e(c)o(hec)o(k)i(that)f(there)h(are)g(at)e(least)h(6)g(c)o +(haracters)h(in)f(the)g(bu\013er)h(when)f(it)g(starts,)g(and)g(that)g +(there)h(is)f(at)f(least)-42 2547 y(one)i(c)o(haracter)g(in)e(the)i +(bu\013er)g(when)f(the)h(DF)-5 b(A)14 b(is)g(in)f(states)j(6,)d(8,)g +(or)h(10.)k(No)13 b(other)i(c)o(hec)o(ks)g(are)g(required.)k(The)14 +b(c)o(hec)o(ks)-42 2597 y(inserted)i(in)d(k)o(ey)h(states)h(are)f(of)g +(the)g(form)923 2748 y(6)p eop +%%Page: 7 7 +7 6 bop 62 195 a Fm(if\(\(YYLIMIT)20 b(-)h(YYCURSOR\))f(<)i +Fl(n)p Fm(\))f(YYFILL\()p Fl(n)p Fm(\);)-42 278 y Fr(where)c +Fl(n)f Fr(is)f(the)i(maxim)n(um)11 b(n)o(um)o(b)q(er)k(of)g(c)o +(haracters)i(that)f(can)g(b)q(e)g(consumed)g(b)q(efore)g(another)g(k)o +(ey)g(state)g(is)g(reac)o(hed.)-42 328 y(F)m(or)e(example,)e(Figure)i +(6)g(sho)o(ws)g(the)g(co)q(de)h(generated)g(for)f(state)h(6)e(in)h +(Figure)g(3.)21 378 y(A)h(set)g(of)f(k)o(ey)h(states)h(can)f(b)q(e)g +(determined)g(b)o(y)f(disco)o(v)o(ering)h(the)g(strongly-connected)h +(comp)q(onen)o(ts)e(\(SCCs\))i(of)e(the)-42 428 y(DF)-5 +b(A.)12 b(An)h(SCC)f(is)f(a)h(maxima)o(l)d(subset)k(of)f(states)h(suc)o +(h)g(that)f(there)h(exists)g(a)f(path)g(from)e(an)o(y)i(state)g(in)g +(the)h(subset)g(to)f(an)o(y)-42 477 y(other.)24 b(The)16 +b(set)g(of)f(k)o(ey)h(states)g(consists)h(of)e(all)f(of)h(the)h(states) +h(in)e(non-trivial)f(SCCs,)h(together)i(with)e(the)h(start)g(state.)-42 +527 y(Note)d(that)f(for)g(eac)o(h)g(SCC)g Fl(S)r Fr(,)h(w)o(e)f +(actually)g(only)f(ha)o(v)o(e)h(to)g(include)g(a)f(subset)j(of)d +(states)j(of)d Fl(S)k Fr(suc)o(h)e(that)f(when)g(the)h(subset)-42 +577 y(is)f(remo)o(v)o(ed,)f Fl(S)k Fr(b)q(ecomes)d(acyclic.)17 +b(Indeed,)c([17)o(])e(describ)q(es)j(a)e(simple)e(heuristic)j(for)e(c)o +(ho)q(osing)h(suc)o(h)g(a)g(subset.)18 b(Ho)o(w)o(ev)o(er,)-42 +627 y(since)c(in)f(practice)h(most)d(of)i(the)g(\(non-trivial\))f(SCCs) +h(encoun)o(tered)i(will)c(consist)j(of)e(a)h(single)g(state)g(the)h +(curren)o(t)g(v)o(ersion)-42 677 y(of)f(RE2C)g(simply)e(includes)j(all) +d(states)k(in)e(non-trivial)e(SCCs)943 662 y Fq(7)962 +677 y Fr(.)18 b(An)13 b(algorithm)e(giv)o(en)h(in)h([3)o(])g(w)o(as)g +(used)h(to)f(compute)g(the)-42 726 y(SCCs.)-42 843 y +Fj(3.4)56 b(Optimizations)-42 919 y Fr(Ev)o(en)17 b(go)q(o)q(d)f +(optimizing)e(C)i(compilers)f(can)i(b)q(e)g(coaxed)f(in)o(to)g +(generating)g(m)o(uc)o(h)f(smaller)g(and)h(sligh)o(tly)f(faster)i(co)q +(de)g(if)-42 969 y(some)c(transformations)g(are)h(\014rst)h(applied)e +(to)h(the)g(generated)i(co)q(de.)-42 1077 y Fh(3.4.1)48 +b(Eliminatin)o(g)13 b(Bac)o(ktrac)o(king)-42 1154 y Fr(Consider)19 +b(state)g(1)f(in)g(the)h(DF)-5 b(A)18 b(in)g(Figure)g(3.)31 +b(Note)19 b(that)f(since)h(all)e(of)h(the)h(transitions)f(from)e(state) +j(1)f(reac)o(h)h(only)-42 1203 y(accepting)f(states,)h(bac)o(ktrac)o +(king)f(information)c(do)q(es)k(not)f(need)i(to)e(b)q(e)h(sa)o(v)o(ed)g +(if)e(the)i(co)q(de)g(for)f(the)h Fm(default)e Fr(case)j(is)-42 +1253 y(c)o(hanged)h(to)e(go)g(directly)h(to)g(the)g(co)q(de)h(asso)q +(ciated)f(with)f(state)i(1.)32 b(The)19 b(result)h(of)e(this)h +(optimization)d(is)i(sho)o(wn)h(in)-42 1303 y(Figure)d(7.)48 +b(More)17 b(generally)m(,)e(this)h(optimization)d(can)j(b)q(e)g +(applied)f(to)h(all)f(accepting)h(states)h(whic)o(h)f(ha)o(v)o(e)g +(transitions)647 1396 y Fm(L1:)49 b(++YYCURSOR;)647 1446 +y(M1:)g(switch\(*YYCURSOR\))p Fk(f)806 1495 y Fm(case)21 +b('a':)43 b(goto)21 b(L6;)849 1545 y Fl(:)7 b(:)g(:)806 +1595 y Fm(case)21 b('q':)43 b(goto)21 b(L6;)806 1645 +y(case)g('r':)43 b(goto)21 b(L2;)806 1695 y(case)g('s':)43 +b(goto)21 b(L6;)849 1744 y Fl(:)7 b(:)g(:)806 1794 y +Fm(case)21 b('z':)43 b(goto)21 b(L6;)806 1844 y(default:)42 +b(goto)21 b(A4;)762 1894 y Fk(g)419 1983 y Fr(Figure)14 +b(7:)k(Co)q(de)c(for)g(state)g(1)g(with)g(bac)o(ktrac)o(king)f +(eliminated.)-42 2083 y(only)h(to)f(accepting)i(states.)-42 +2191 y Fh(3.4.2)48 b(Optimizing)12 b Fm(switch)p Fh(es)-42 +2268 y Fr(Most)21 b(C)g(compilers)f(will)f(generate)j(either)f(a)g +(jump)e(table)h(or)h(a)g(set)g(of)f Fm(if)g Fr(statemen)o(ts)h(for)g(a) +f Fm(switch)g Fr(statemen)o(t)-42 2317 y(dep)q(ending)e(on)e(the)i +(distribution)e(of)g(the)i Fm(case)e Fr(lab)q(els.)26 +b(In)17 b(man)o(y)e(compilers)h(the)h(decision)g(as)g(to)g(whic)o(h)g +(metho)q(d)f(to)-42 2367 y(use)j(is)f(biased)f(to)o(w)o(ards)h +(generating)g(jump)e(tables)i(since)g(in)g(most)e(cases)j(this)f +(results)h(in)e(faster)h(alb)q(eit)f(larger)h(co)q(de.)-42 +2417 y(Ho)o(w)o(ev)o(er,)c(exp)q(erience)h(with)e(directly)h +(executable)h(scanners)g(has)e(sho)o(wn,)g(that)g(replacing)h(man)o(y)d +(of)i(these)h(jump)e(tables)p -42 2452 780 2 v 5 2478 +a Fn(5)22 2490 y Fo(If)f(the)g(input)f(con)o(tains)g(no)h(newlines,)f +(a)h(GLA)h(scanner)e(will)h(attempt)f(to)h(bu\013er)f(the)g(en)o(tire)g +(input)h(stream.)5 2518 y Fn(6)22 2530 y Fo(The)h(problem)d(of)i +(detecting)e(stac)o(k)h(o)o(v)o(er\015o)o(w)g(in)i(LR)f(parsers)f(is)i +(probably)d(b)q(est)i(left)f(to)h(hardw)o(are)f(mec)o(hanisms)f([12)o +(].)5 2558 y Fn(7)22 2569 y Fo(It)i(should)f(b)q(e)h(noted)f(that)g +(\014nding)f(the)i(minimal)e(set)i(of)g(states)f(to)h(remo)o(v)o(e)f +(from)g(an)h(SCC)h(in)f(order)f(to)h(render)f(it)h(acyclic)e(is)j +(equiv)n(alen)o(t)-42 2609 y(to)g(the)e(FEEDBA)o(CK)j(VER)m(TEX)h(SET)d +(problem)f(whic)o(h)h(is)g(NP-complete)e([6].)923 2748 +y Fr(7)p eop +%%Page: 8 8 +8 7 bop -42 195 a Fr(with)12 b Fm(if)g Fr(statemen)o(ts)g(results)h(in) +f(scanners)i(whic)o(h)d(are)i(m)o(uc)o(h)e(smaller,)f(and)i +(surprisingly)m(,)f(in)h(some)f(cases)i(sligh)o(tly)e(faster)-42 +245 y(as)h(w)o(ell)78 230 y Fq(8)96 245 y Fr(.)17 b(As)c(a)e(result,)h +(the)h(capabilit)o(y)d(of)h(replacing)g(a)h Fm(switch)e +Fr(statemen)o(t)i(with)f Fm(if)g Fr(statemen)o(ts)h(w)o(as)g(added)g +(to)f(RE2C.)21 295 y(RE2C)j(bases)j(its)e(decision)g(on)g(whether)i(to) +e(generate)i(a)d Fm(switch)g Fr(statemen)o(t)i(or)f(to)g(replace)h(it)f +(with)g Fm(if)p Fr(s)g(solely)g(on)-42 345 y(the)j(densit)o(y)162 +329 y Fq(9)198 345 y Fr(of)f(the)g Fm(switch)f Fr(statemen)o(t.)27 +b(It)18 b(is)e(surprising)i(that)f(suc)o(h)h(a)e(simple)g(heuristic)i +(w)o(orks)f(w)o(ell.)27 b(F)m(or)16 b(more)-42 394 y(esoteric)h +(applications)e(in)g(whic)o(h)h(the)g(input)f(alphab)q(et)h(is)f(not)h +(a)f(simple)f(in)o(terv)n(al)h(RE2C)g(has)g(the)i(adv)n(an)o(tage)d(in) +h(that)-42 444 y(there)f(is)e(no)g(pro)o(vision)f(for)h(don't)f(care)i +(en)o(tries)g(in)f(a)g Fm(switch)f Fr(statemen)o(t:)17 +b(if)11 b(no)h Fm(case)f Fr(matc)o(hes)h(none)g(of)f(the)i(statemen)o +(ts)-42 494 y(in)i(the)g Fm(switch)e Fr(m)o(ust)g(b)q(e)i(executed.)22 +b(Ho)o(w)o(ev)o(er,)15 b(for)f(the)h(examples)f(in)g(T)m(able)f(1)h +(this)h(is)f(not)h(so:)k(RE2C)14 b(simply)f(do)q(es)i(a)-42 +544 y(b)q(etter)j(job)d(of)g(generating)g(co)q(de)i(for)e +Fm(switch)f Fr(statemen)o(ts)i(than)g(the)g(compiler.)21 +b([18)o(],)15 b([11)o(],)g(and)h([2)o(])f(also)g(address)i(the)-42 +594 y(problem)c(of)g(generating)h(go)q(o)q(d)g(co)q(de)h(for)e +Fm(switch)g Fr(statemen)o(ts.)-42 702 y Fh(Replacing)18 +b Fm(switch)p Fh(es)g(with)g Fm(if)p Fh(s)41 b Fr(When)17 +b(replacing)g(a)f Fm(switch)g Fr(statemen)o(t)h(with)g +Fm(if)f Fr(statemen)o(ts,)i(it)f(is)f(useful)i(to)-42 +751 y(sort)g(the)f Fm(case)p Fr(s)f(b)o(y)h(lab)q(el)f(and)g(then)h +(group)g(them)f(according)h(to)f(rule)h(in)o(to)f(subranges,)i(as)f +(illustrated)f(in)g(Figure)h(8.)-42 801 y(RE2C)c(replaces)h(a)f +Fm(switch)f Fr(with)g(either)i(a)f(linear)f(or)h(binary)g(searc)o(h,)h +(dep)q(ending)f(on)g(the)h(n)o(um)o(b)q(er)e(of)g(subranges)i(in)f(the) +467 894 y Fm(switch\(*YYCURSOR\))p Fk(f)511 944 y Fm(case)21 +b('\\)o(000':)49 b Fl(:)7 b(:)g(:)20 b Fm(case)h('/':)115 +b(goto)21 b(L11;)576 994 y(case)g('0':)431 b(goto)21 +b(L7;)576 1043 y(case)g('1':)49 b Fl(:)7 b(:)g(:)20 b +Fm(case)h('9':)115 b(goto)21 b(L8;)576 1093 y(case)g(':':)49 +b Fl(:)7 b(:)g(:)20 b Fm(case)h('`':)115 b(goto)21 b(L11;)576 +1143 y(case)g('a':)49 b Fl(:)7 b(:)g(:)20 b Fm(case)h('o':)115 +b(goto)21 b(L6;)576 1193 y(case)g('p':)431 b(goto)21 +b(L1;)576 1243 y(case)g('r':)49 b Fl(:)7 b(:)g(:)20 b +Fm(case)h('z':)115 b(goto)21 b(L6;)577 1292 y(case)g(')p +Fk(f)p Fm(':)49 b Fl(:)7 b(:)g(:)20 b Fm(case)h('\\377':)49 +b(goto)21 b(L11;)467 1342 y Fk(g)672 1432 y Fr(Figure)14 +b(8:)j Fm(switch)c Fr(for)g(state)i(0.)-42 1531 y Fm(switch)p +Fr(.)i(If)d(there)h(are)f(only)f(a)h(few)g(subranges)h(a)e(linear)h +(searc)o(h)h(is)f(generated;)g(otherwise,)h(a)e(binary)h(searc)o(h)h +(is)f(used.)21 1581 y(Figure)f(9)f(and)g(Figure)h(10)f(sho)o(w)h +(linear)f(and)h(binary)f(searc)o(hes,)i(resp)q(ectiv)o(ely)m(,)g(that)f +(could)f(b)q(e)h(used)h(to)e(replace)52 b(the)607 1674 +y Fm(if\(*YYCURSOR)19 b(<=)i('/'\))g(goto)g(L11;)607 +1724 y(if\(*YYCURSOR)e(<=)i('0'\))g(goto)g(L7;)607 1773 +y(if\(*YYCURSOR)e(<=)i('9'\))g(goto)g(L8;)607 1823 y(if\(*YYCURSOR)e +(<=)i('`'\))g(goto)g(L11;)607 1873 y(if\(*YYCURSOR)e(==)i('p'\))g(goto) +g(L1;)607 1923 y(if\(*YYCURSOR)e(<=)i('z'\))g(goto)g(L6;)607 +1973 y(goto)g(L11;)477 2062 y Fr(Figure)14 b(9:)k(Linear)c(lo)q(okup)f +(co)q(de)h(sequence)i(for)e(state)h(0.)p -42 2147 780 +2 v 5 2173 a Fn(8)22 2185 y Fo(See)c(T)m(able)g(1)g(for)g(examples.)5 +2213 y Fn(9)22 2225 y Fo(The)h(n)o(um)o(b)q(er)d(of)i(distinct)f +(subranges)f(divided)g(b)o(y)i(the)g(total)f(n)o(um)o(b)q(er)g(of)h +Fg(case)p Fo(s.)923 2748 y Fr(8)p eop +%%Page: 9 9 +9 8 bop 563 188 a Fm(if\(*YYCURSOR)19 b(<=)j('`'\))p +Fk(f)650 238 y Fm(if\(*YYCURSOR)d(<=)j('/'\))f(goto)g(L11;)650 +288 y(if\(*YYCURSOR)e(<=)j('0'\))f(goto)g(L7;)650 338 +y(if\(*YYCURSOR)e(<=)j('9'\))f(goto)g(L8;)650 388 y(goto)g(L11;)563 +438 y Fk(g)h Fm(else)f Fk(f)650 487 y Fm(if\(*YYCURSOR)e(==)j('p'\))f +(goto)g(L1;)650 537 y(if\(*YYCURSOR)e(<=)j('z'\))f(goto)g(L6;)650 +587 y(goto)g(L11;)563 637 y Fk(g)463 726 y Fr(Figure)14 +b(10:)k(Binary)13 b(lo)q(okup)h(co)q(de)g(sequence)i(for)e(state)g(0.) +-42 826 y Fm(switch)e Fr(in)g(Figure)h(8.)k(Note)d(in)e(particular)g +(the)i(comparison)d(for)i(the)g(\\)p Fm(p)p Fr(")f(in)g(Figure)h(9.)k +(This)c(optimization)d(eliminates)-42 876 y(a)k(comparison)f(eac)o(h)i +(time)d(it)i(is)g(applied.)k(Also)c(note)h(that)f(no)g(comparisons)f +(are)i(required)g(at)f(the)g(top)g(and)g(b)q(ottom)f(of)-42 +925 y(the)i(range.)-42 1033 y Fh(Simplifyi)o(ng)j Fm(switch)p +Fh(es)40 b Fr(As)19 b(a)f(general)g(rule,)i(b)q(etter)g(replacemen)o(t) +e(co)q(de)h(can)g(b)q(e)g(generated)h(for)e(a)g Fm(switch)f +Fr(if)h(it)-42 1083 y(con)o(tains)g(few)o(er)g(subranges.)31 +b(One)18 b(w)o(a)o(y)f(of)g(reducing)h(the)g(n)o(um)o(b)q(er)f(of)g +(subranges)i(in)e(a)g Fm(switch)p Fr(,)g(at)g(the)i(exp)q(ense)g(of)-42 +1133 y(some)c(sp)q(eed,)j(is)d(to)h(lo)q(cate)g(a)f Fi(b)n(ase)h +Fm(switch)f Fr(whic)o(h)g(is)h(v)o(ery)g(similar)d(and)j(then)g +(replace)h(the)f(co)q(de)h(for)e(all)f(cases)k(whic)o(h)-42 +1183 y(app)q(ear)d(iden)o(tically)d(in)i(the)g(base)h +Fm(switch)d Fr(with)i(a)f Fm(goto)g Fr(to)h(\(the)h(co)q(de)f +(generated)i(for\))d(the)i(base)f Fm(switch)p Fr(.)j(RE2C)c(uses)-42 +1233 y(this)18 b(optimization)d(to)i(go)q(o)q(d)g(adv)n(an)o(tage)g +(when)h(generating)g(co)q(de)g(in)f(the)h(transitions)g(of)f(states)i +(used)f(for)f(matc)o(hing)-42 1282 y(k)o(eyw)o(ords.)i(F)m(or)12 +b(example,)f(note)j(that)f(the)g Fm(switch)p Fr(es)f(for)h(states)h(1)f +(through)g(4)f(di\013er)h(from)f(the)h Fm(switch)f Fr(of)g(state)i(6)e +(only)-42 1332 y(on)i(\\)p Fm(r)p Fr(",)f(\\)p Fm(i)p +Fr(",)g(\\)p Fm(n)p Fr(",)f(and)i(\\)p Fm(t)p Fr(",)f(resp)q(ectiv)o +(ely)m(.)19 b(Figure)14 b(11)f(sho)o(ws)h(the)h(co)q(de)g(generated)g +(for)e(these)j(states.)37 b(Another)15 b(w)o(a)o(y)560 +1425 y Fm(L1:)49 b(++YYCURSOR;)560 1475 y(M1:)g(if\(*YYCURSOR)19 +b(!=)j('r'\))f(goto)g(M6;)560 1525 y(L2:)49 b(++YYCURSOR;)560 +1574 y(M2:)g(if\(*YYCURSOR)19 b(!=)j('i'\))f(goto)g(M6;)560 +1624 y(L3:)49 b(++YYCURSOR;)560 1674 y(M3:)g(if\(*YYCURSOR)19 +b(!=)j('n'\))f(goto)g(M6;)560 1724 y(L4:)49 b(++YYCURSOR;)560 +1774 y(M4:)g(if\(*YYCURSOR)19 b(!=)j('t'\))f(goto)g(M6;)675 +1824 y(goto)g(L5;)444 1913 y Fr(Figure)14 b(11:)j(Co)q(de)d(for)g +(states)h(1{4)e(after)h(all)f(optimizations.)-42 2013 +y(of)h(implemen)o(ting)d(this)j(optimization)e(is)i(to)g(construct)i(a) +e(tunnel)g(automaton)f([9)o(])h(from)e(the)j(DF)-5 b(A,)14 +b(and)g(then)h(generate)-42 2062 y(co)q(de)g(from)d(the)j(tunnel)f +(automaton.)-42 2170 y Fh(Common)i(Sub)q(expression)d(Eliminatio)o(n)38 +b Fr(Man)o(y)14 b(compilers)g(will)f(miss)g(the)i(fact)f(that)h +Fm(*YYCURSOR)d Fr(in)i(Figures)h(9)-42 2220 y(and)e(10)f(should)h(b)q +(e)g(loaded)f(in)o(to)g(a)h(register.)19 b(Most)13 b(can)f(b)q(e)i +(coaxed)f(to)f(do)h(so)g(b)o(y)f(\014rst)i(assigning)e +Fm(*YYCURSOR)e Fr(to)j(a)f(lo)q(cal)-42 2270 y(v)n(ariable.)-42 +2407 y Fs(4)67 b(Exp)r(erimen)n(tal)25 b(Results)-42 +2498 y Fr(T)m(able)16 b(1)h(compares)f(t)o(w)o(o)g(RE2C-generated)h(C)g +(scanners)h(with)e(the)i(\(hand-co)q(ded\))f(lcc)g(scanner)h([5)o(])e +(and)h(comparable)-42 2548 y(GLA-)f(and)g(\015ex-generated)i(scanners)f +(on)f(a)g(v)n(ariet)o(y)g(of)f(platforms.)48 b(It)16 +b(rep)q(orts)i(the)e(times)f(in)h(seconds)i(required)f(b)o(y)-42 +2598 y(the)e(v)n(arious)e(scanners)i(to)e(scan)h(ab)q(out)g(170,000)e +(lines)h(of)g(C)h(source.)19 b(The)14 b(5,607,820)d(b)o(yte)j(source)g +(\014le)g(used)h(essen)o(tially)923 2748 y(9)p eop +%%Page: 10 10 +10 9 bop 707 452 a Fr(time)438 b(space)328 502 y(program)p +516 517 2 50 v 82 w(user)83 b(sys)76 b(total)p 975 517 +V 82 w(text)j(data)d(bss)f(total)p 292 519 1284 2 v 860 +554 a Fi(R4000)16 b(/)f(gc)n(c2.3.3)h(-O)p 292 570 V +317 605 a Fr(\015ex)e(-Cem)p 516 620 2 50 v 71 w(10.36)p +683 620 V 50 w(0.87)p 808 620 V 71 w(11.23)p 975 620 +V 71 w(5200)p 1130 620 V 71 w(4192)p 1285 620 V 92 w(48)p +1420 620 V 72 w(9440)357 655 y(\015ex)h(-Cf)p 516 670 +V 92 w(5.44)p 683 670 V 50 w(0.72)p 808 670 V 92 w(6.16)p +975 670 V 71 w(4688)p 1130 670 V 51 w(64384)p 1285 670 +V 91 w(48)p 1420 670 V 51 w(69120)443 705 y(lcc)p 516 +720 V 93 w(3.19)p 683 720 V 50 w(0.67)p 808 720 V 92 +w(3.86)p 975 720 V 71 w(7328)p 1130 720 V 71 w(1216)p +1285 720 V 51 w(8256)p 1420 720 V 50 w(16800)438 754 +y(gla)p 516 769 V 92 w(2.89)p 683 769 V 50 w(0.63)p 808 +769 V 92 w(3.52)p 975 769 V 50 w(11552)p 1130 769 V 71 +w(3056)p 1285 769 V 72 w(144)p 1420 769 V 50 w(14752)417 +804 y(re2c)p 516 819 V 94 w(2.54)p 683 819 V 50 w(0.68)p +808 819 V 92 w(3.22)p 975 819 V 50 w(13264)p 1130 819 +V 92 w(512)p 1285 819 V 113 w(0)p 1420 819 V 51 w(13776)373 +854 y(re2c)g(-s)p 516 869 V 93 w(2.38)p 683 869 V 50 +w(0.67)p 808 869 V 92 w(3.05)p 975 869 V 50 w(11056)p +1130 869 V 71 w(4528)p 1285 869 V 113 w(0)p 1420 869 +V 51 w(15584)p 292 871 1284 2 v 737 906 a Fi(R4000)h(/)f(c)n(c2.11.2)g +(-O)g(-Olimit)e(5000)p 292 922 V 317 957 a Fr(\015ex)h(-Cem)p +516 972 2 50 v 92 w(9.97)p 683 972 V 50 w(0.89)p 808 +972 V 71 w(10.86)p 975 972 V 71 w(4704)p 1130 972 V 71 +w(4240)p 1285 972 V 92 w(32)p 1420 972 V 72 w(8976)357 +1007 y(\015ex)h(-Cf)p 516 1022 V 92 w(6.19)p 683 1022 +V 50 w(0.72)p 808 1022 V 92 w(6.91)p 975 1022 V 71 w(4256)p +1130 1022 V 51 w(64432)p 1285 1022 V 91 w(32)p 1420 1022 +V 51 w(68720)443 1057 y(lcc)p 516 1072 V 93 w(2.74)p +683 1072 V 50 w(0.72)p 808 1072 V 92 w(3.46)p 975 1072 +V 71 w(9664)p 1130 1072 V 92 w(864)p 1285 1072 V 51 w(8256)p +1420 1072 V 50 w(18784)438 1106 y(gla)p 516 1121 V 92 +w(2.46)p 683 1121 V 50 w(0.69)p 808 1121 V 92 w(3.15)p +975 1121 V 50 w(19232)p 1130 1121 V 71 w(2992)p 1285 +1121 V 72 w(128)p 1420 1121 V 50 w(22352)417 1156 y(re2c)p +516 1171 V 94 w(2.97)p 683 1171 V 50 w(0.63)p 808 1171 +V 92 w(3.60)p 975 1171 V 50 w(15088)p 1130 1171 V 92 +w(528)p 1285 1171 V 113 w(0)p 1420 1171 V 51 w(15616)373 +1206 y(re2c)g(-s)p 516 1221 V 93 w(2.94)p 683 1221 V +50 w(0.61)p 808 1221 V 92 w(3.55)p 975 1221 V 50 w(16080)p +1130 1221 V 51 w(11808)p 1285 1221 V 112 w(0)p 1420 1221 +V 51 w(27888)p 292 1223 1284 2 v 849 1258 a Fi(SP)m(AR)o(C)g(/)g(gc)n +(c2.3.3)g(-O)p 292 1274 V 317 1309 a Fr(\015ex)f(-Cem)p +516 1324 2 50 v 71 w(16.03)p 683 1324 V 50 w(2.78)p 808 +1324 V 71 w(18.81)p 975 1324 V 71 w(8992)p 1130 1324 +V 113 w(24)p 1285 1324 V 92 w(48)p 1420 1324 V 72 w(9064)357 +1359 y(\015ex)h(-Cf)p 516 1374 V 92 w(7.84)p 683 1374 +V 50 w(2.69)p 808 1374 V 71 w(10.53)p 975 1374 V 71 w(6560)p +1130 1374 V 51 w(62232)p 1285 1374 V 91 w(48)p 1420 1374 +V 51 w(68840)443 1409 y(lcc)p 516 1424 V 93 w(4.46)p +683 1424 V 50 w(2.01)p 808 1424 V 92 w(6.47)p 975 1424 +V 71 w(7800)p 1130 1424 V 92 w(384)p 1285 1424 V 51 w(8256)p +1420 1424 V 50 w(16440)438 1459 y(gla)p 516 1473 V 92 +w(4.08)p 683 1473 V 50 w(1.56)p 808 1473 V 92 w(5.64)p +975 1473 V 50 w(10864)p 1130 1473 V 71 w(2168)p 1285 +1473 V 72 w(136)p 1420 1473 V 50 w(13168)417 1508 y(re2c)p +516 1523 V 94 w(3.67)p 683 1523 V 50 w(1.76)p 808 1523 +V 92 w(5.43)p 975 1523 V 50 w(13552)p 1130 1523 V 134 +w(0)p 1285 1523 V 113 w(0)p 1420 1523 V 51 w(13552)373 +1558 y(re2c)g(-s)p 516 1573 V 93 w(3.48)p 683 1573 V +50 w(1.70)p 808 1573 V 92 w(5.18)p 975 1573 V 50 w(15464)p +1130 1573 V 134 w(0)p 1285 1573 V 113 w(0)p 1420 1573 +V 51 w(15464)p 292 1575 1284 2 v 880 1610 a Fi(i486)g(/)g(gc)n(c2.4.5)g +(-O)p 292 1626 V 317 1661 a Fr(\015ex)f(-Cem)p 516 1676 +2 50 v 71 w(21.86)p 683 1676 V 50 w(1.26)p 808 1676 V +71 w(23.12)p 975 1676 V 71 w(8536)p 1130 1676 V 113 w(20)p +1285 1676 V 92 w(24)p 1420 1676 V 72 w(8580)357 1711 +y(\015ex)h(-Cf)p 516 1726 V 92 w(9.12)p 683 1726 V 50 +w(1.18)p 808 1726 V 71 w(10.30)p 975 1726 V 71 w(6200)p +1130 1726 V 51 w(62228)p 1285 1726 V 91 w(24)p 1420 1726 +V 51 w(68452)443 1761 y(lcc)p 516 1776 V 93 w(5.45)p +683 1776 V 50 w(1.22)p 808 1776 V 92 w(6.67)p 975 1776 +V 71 w(5924)p 1130 1776 V 92 w(384)p 1285 1776 V 51 w(8240)p +1420 1776 V 50 w(14548)438 1811 y(gla)p 516 1825 V 92 +w(5.11)p 683 1825 V 50 w(1.18)p 808 1825 V 92 w(6.29)p +975 1825 V 50 w(15496)p 1130 1825 V 71 w(2144)p 1285 +1825 V 72 w(108)p 1420 1825 V 50 w(17748)417 1860 y(re2c)p +516 1875 V 94 w(4.73)p 683 1875 V 50 w(1.13)p 808 1875 +V 92 w(5.86)p 975 1875 V 71 w(9800)p 1130 1875 V 134 +w(0)p 1285 1875 V 113 w(0)p 1420 1875 V 72 w(9800)373 +1910 y(re2c)g(-s)p 516 1925 V 93 w(4.85)p 683 1925 V +50 w(1.17)p 808 1925 V 92 w(6.02)p 975 1925 V 50 w(12968)p +1130 1925 V 134 w(0)p 1285 1925 V 113 w(0)p 1420 1925 +V 51 w(12968)p 292 1927 1284 2 v 871 1962 a Fi(68020)h(/)f(gc)n(c1.40)h +(-O)p 292 1978 V 317 2013 a Fr(\015ex)e(-Cem)p 516 2028 +2 50 v 50 w(117.37)p 683 2028 V 50 w(5.89)p 808 2028 +V 51 w(123.26)p 975 2028 V 70 w(7700)p 1130 2028 V 113 +w(20)p 1285 2028 V 92 w(22)p 1420 2028 V 72 w(7742)357 +2063 y(\015ex)h(-Cf)p 516 2078 V 71 w(50.93)p 683 2078 +V 50 w(5.27)p 808 2078 V 71 w(56.20)p 975 2078 V 71 w(5388)p +1130 2078 V 51 w(62228)p 1285 2078 V 91 w(22)p 1420 2078 +V 51 w(67638)443 2113 y(lcc)p 516 2128 V 72 w(33.28)p +683 2128 V 50 w(6.28)p 808 2128 V 71 w(39.56)p 975 2128 +V 71 w(4956)p 1130 2128 V 92 w(384)p 1285 2128 V 51 w(8236)p +1420 2128 V 50 w(13576)438 2163 y(gla)p 516 2177 V 71 +w(33.80)p 683 2177 V 50 w(4.20)p 808 2177 V 71 w(38.00)p +975 2177 V 50 w(13904)p 1130 2177 V 71 w(2144)p 1285 +2177 V 72 w(106)p 1420 2177 V 50 w(16154)417 2212 y(re2c)p +516 2227 V 73 w(28.92)p 683 2227 V 50 w(2.91)p 808 2227 +V 71 w(31.83)p 975 2227 V 71 w(8556)p 1130 2227 V 134 +w(0)p 1285 2227 V 113 w(0)p 1420 2227 V 72 w(8556)373 +2262 y(re2c)g(-s)p 516 2277 V 72 w(30.72)p 683 2277 V +50 w(3.19)p 808 2277 V 71 w(33.91)p 975 2277 V 71 w(9856)p +1130 2277 V 134 w(0)p 1285 2277 V 113 w(0)p 1420 2277 +V 72 w(9856)513 2352 y(T)m(able)e(1:)18 b(Comparison)12 +b(of)h(generated)j(C)d(scanners.)913 2748 y(10)p eop +%%Page: 11 11 +11 10 bop -42 195 a Fr(consists)15 b(of)d(10)h(copies)h(of)e(the)i +(source)h(to)e(James)f(Clark's)h(SGML)f(parser,)i(sgmls)1263 +180 y Fq(10)1297 195 y Fr(.)k(The)c(times)e(rep)q(orted)i(are)g(a)o(v)o +(erages)-42 245 y(for)j(10)g(trials;)h(the)g(sizes)g(rep)q(orted)h +(include)e(ev)o(erything)h(but)g(C)f(library)f(co)q(de)1251 +230 y Fq(11)1287 245 y Fr(.)28 b(\015ex)18 b(pro)o(vides)f(a)g(n)o(um)o +(b)q(er)g(of)g(table)-42 295 y(compression)e(options)g(including)f +Fm(-Cem)g Fr(for)h(tables)g(optimized)f(for)h(space,)h(and)f +Fm(-Cf)f Fr(for)h(tables)g(optimized)f(for)g(sp)q(eed.)-42 +345 y(By)f(default,)e(RE2C)h(will)f(use)h(a)g(heuristic)h(to)f(decide)h +(if)e(a)h Fm(switch)f Fr(should)h(b)q(e)g(replaced)h(with)f +Fm(if)p Fr(s:)17 b(the)c Fm(-s)e Fr(option)h(forces)-42 +394 y(RE2C)i(to)g(alw)o(a)o(ys)e(generate)k Fm(switch)p +Fr(es.)21 444 y(T)m(o)21 b(mak)o(e)g(comparisons)g(more)g(meaningful,)h +(all)e(seman)o(tic)i(pro)q(cessing)h(co)q(de)g(w)o(as)f(remo)o(v)o(ed)g +(from)e(the)j(GLA-)-42 494 y(generated)d(and)f(lcc)f(scanners,)j(and)d +(co)q(de)i(to)e(pro)o(vide)g(line)g(and)g(column)f(n)o(um)o(b)q(er)h +(information)d(w)o(as)k(added)g(to)f(the)-42 544 y(RE2C)c(sp)q +(eci\014cation.)19 b(The)14 b(remaining)e(di\013erences)k(of)d(note)h +(b)q(et)o(w)o(een)i(the)e(scanners)i(include:)21 627 +y Fk(\017)k Fr(The)15 b(\015ex-generated)g(scanners)h(do)d(not)h(pro)o +(vide)g(line)f(or)h(column)e(n)o(um)o(b)q(er)i(information.)21 +710 y Fk(\017)20 b Fr(The)15 b(GLA-generated)f(scanner)i(assumes)d +(7-bit)h(input.)21 793 y(As)e(a)g(general)g(rule,)h(the)f +(RE2C-generated)h(scanners)h(w)o(ere)f(the)f(fastest,)h(follo)o(w)o(ed) +e(b)o(y)h(the)g(GLA-generated)h(scanner)-42 843 y(and)j(then)g(the)g +(lcc)g(scanner.)24 b(The)15 b(\015ex-generated)i(scanners)h(w)o(ere)e +(signi\014can)o(tly)e(slo)o(w)o(er.)23 b(Only)15 b(the)h +(space-optimized)-42 892 y(\015ex)i(scanner)h(w)o(as)e(smaller)f(than)h +(the)h(default)f(RE2C)g(scanner,)i(and)e(only)g(b)o(y)g(a)g(narro)o(w)g +(margin.)26 b(There)19 b(are)e(some)-42 942 y(arc)o(hitectures,)j +(notably)d(the)g(IBM)h(370,)f(on)g(whic)o(h)g(table)g(driv)o(en)g +(scanners)i(will)d(probably)h(pro)q(duce)h(b)q(etter)h(results:)-42 +992 y(IBM)c(370)e(compilers)g(t)o(ypically)f(generate)j(p)q(o)q(or)f +(co)q(de)h(for)f(large)f(routines.)21 1042 y(The)22 b(v)n(arious)f +(scanners)j(and)d(input)h(\014les)g(used)h(for)e(the)i(tests)g(are)f(a) +o(v)n(ailable)e(for)h(anon)o(ymous)f(ftp)i(from)e Ff(csg.-)-42 +1092 y(u)o(w)o(aterlo)q(o.ca)10 b Fr(in)f Ff(/pub/p)q +(eter/re2c/sampler.ta)o(r.Z)p Fr(.)i(\015ex)f(is)f(a)o(v)n(ailable)e +(for)i(anon)o(ymous)e(ftp)i(from)f Ff(ftp.uu.net)i Fr(as)f +Ff(/pack)o(ages/-)-42 1142 y(gnu/\015ex-2.3.7.ta)o(r.Z)p +Fr(,)14 b(GLA)h(is)g(a)o(v)n(ailable)e(for)i(anon)o(ymous)f(ftp)h(from) +f Ff(ftp.cs.colo)o(rado.edu)i Fr(as)f(part)g(of)g(the)h(Eli)f(pac)o(k)n +(age)-42 1191 y Ff(/pub/cs/distribs/eli/Eli3.4.2.ta)o(r.Z)p +Fr(,)i(and)h(the)g(lcc)h(fron)o(t)e(end)i(is)f(a)o(v)n(ailable)e(for)h +(anon)o(ymous)g(ftp)g(from)g Ff(p)o(rinceton.edu)-42 +1241 y Fr(as)f Ff(/pub/lcc/lccfe-1.9.ta)o(r.Z)p Fr(.)g(An)f(alpha)g(v)o +(ersion)g(of)g(RE2C)g(will)f(so)q(on)i(b)q(e)g(made)e(a)o(v)n(ailable)f +(for)i(anon)o(ymous)f(ftp)h(from)-42 1291 y Ff(csg.u)o(w)o(aterlo)q +(o.ca)g Fr(as)f Ff(/pub/p)q(eter/re2c/re2c-0.5.ta)o(r.Z)p +Fr(.)-42 1428 y Fs(5)67 b(Related)23 b(W)-6 b(ork)-42 +1519 y Fr(The)18 b(k)o(ey)g(to)f(the)h(p)q(erformance)f(and)g +(\015exibilit)o(y)e(of)i(an)g(RE2C-generated)h(scanner)h(is)e(the)h +(approac)o(h)f(used)h(to)f(deter-)-42 1569 y(mine)e(when)i(the)g +(bu\013er)g(needs)g(\014lling.)23 b(In)o(terestingly)m(,)16 +b(the)h(lcc)g(scanner)g([5)o(])f(uses)h(a)f(similar)e(approac)o(h)i +(\(with)g(certain)-42 1619 y(concessions)g(to)e(k)o(eep)g(the)h(b)q(o)q +(okk)o(eeping)e(manageable.\))-42 1735 y Fj(5.1)56 b(Comparison)18 +b(With)g(GLA)-42 1812 y Fr(It)h(is)f(natural)f(to)h(compare)f(RE2C)h +(to)g(GLA)f([7])g(as)h(it)g(also)f(generates)j(directly)f(executable)g +(scanners.)32 b(RE2C)18 b(and)-42 1861 y(GLA)d(ha)o(v)o(e)g(man)o(y)e +(di\013erences)k(simply)c(b)q(ecause)j(they)g(are)f(targeted)h(for)e +(di\013eren)o(t)i(t)o(yp)q(es)g(of)e(users:)22 b(GLA)14 +b(is)h(in)o(tended)-42 1911 y(for)g(p)q(eople)h(who)f(simply)e(wish)i +(to)f(lev)o(erage)i(their)f(e\013orts)i(with)d(existing)h(to)q(ols)g +(and)g(libraries;)g(RE2C)f(is)h(in)o(tended)h(for)-42 +1961 y(p)q(eople)d(that)g(ha)o(v)o(e)f(more)g(sp)q(ecialized)h(needs)h +(and)e(are)h(willing)d(to)j(pro)o(vide)f(their)h(o)o(wn)f(supp)q(ort)h +(routines.)18 b(F)m(or)12 b(example,)-42 2011 y(GLA)h(pro)o(vides)h(a)f +(go)q(o)q(d)f(bu\013ering)i(mec)o(hanism,)c(RE2C)j(users)i(m)o(ust)d +(supply)h(their)h(o)o(wn.)j(These)d(di\013erences,)i(ho)o(w)o(ev)o(er,) +-42 2061 y(are)f(not)f(unique)f(to)h(GLA)g(and)f(ha)o(v)o(e)h(b)q(een)h +(addressed)h(for)d(the)i(most)e(part)h(in)f(previous)h(sections.)21 +2111 y(Of)j(more)f(in)o(terest)i(is)f(the)h(di\013erences)i(in)c(the)i +(co)q(de)g(that)f(RE2C)g(and)g(GLA)g(generate.)29 b(Scanners)18 +b(generated)h(b)o(y)-42 2160 y(RE2C)14 b(and)g(GLA)f(di\013er)h +(primarily)e(in)h(t)o(w)o(o)h(asp)q(ects:)19 b(ho)o(w)14 +b(they)g(determine)g(when)h(the)f(bu\013er)h(needs)g(\014lling,)d(and)i +(ho)o(w)-42 2210 y(they)h(generate)g(co)q(de)g(for)e +Fm(switch)p Fr(es.)21 2260 y(GLA)d(uses)i(the)f(ASCI)q(I)g(NUL)f(c)o +(haracter)i(as)f(the)g(sen)o(tinel)g(to)f(determine)h(when)g(the)g +(bu\013er)g(needs)h(\014lling.)j(T)m(o)10 b(impro)o(v)o(e)-42 +2310 y(the)j(sp)q(eed)h(and)e(reduce)i(the)f(size)g(of)e(the)i +(generated)g(scanners)h(GLA)e(bu\013ers)i(only)d(complete)h(lines)g +(and)g(restricts)i(tok)o(ens)-42 2360 y(to)d(those)g(that)f(do)g(not)g +(con)o(tain)g(newline)g(\(ASCI)q(I)h(LF\))f(c)o(haracters)1013 +2345 y Fq(12)1050 2360 y Fr(.)17 b(If)10 b(a)g(tok)o(en)g(with)g(an)g +(em)o(b)q(edded)h(newline)f(c)o(haracter)-42 2409 y(\(suc)o(h)k(as)f(a) +f(commen)o(t\))f(is)h(required)i(it)e(m)o(ust)f(b)q(e)j(recognized)g +(with)e(an)g(auxiliary)f(scanner)j(written)f(in)f(C.)g(This)h(co)q(de)g +(has)-42 2459 y(to)h(p)q(erform)f(the)i(bu\013ering-related)f(b)q(o)q +(okk)o(eeping)g(that)g(is)g(done)g(automatically)d(b)o(y)i +(GLA-generated)i(co)q(de.)p -42 2494 780 2 v -11 2521 +a Fn(10)22 2532 y Fo(Av)n(ailable)10 b(for)h(anon)o(ymous)d(ftp)j(from) +f Fe(ftp.uu.net)i Fo(as)f Fe(/pub/text-p)o(ro)q(cessing/sg)o(ml/sgmls-) +o(1.1.)o(ta)o(r.Z)o Fo(.)-11 2560 y Fn(11)22 2572 y Fo(The)h +(GLA-generated)c(scanner)i(sizes)h(also)f(do)h(not)g(include)f(the)g +(size)h(of)g(an)g(error)g(rep)q(orting)e(mo)q(dule)g +Fg(err.o)p Fo(.)-11 2600 y Fn(12)22 2612 y Fo(This)j(is)f(discussed)f +(in)h(more)f(detail)g(in)h(Section)f(3.3.1.)913 2748 +y Fr(11)p eop +%%Page: 12 12 +12 11 bop 21 195 a Fr(The)20 b(mec)o(hanism)e(RE2C)h(uses)i(to)f +(re\014ll)g(the)g(bu\013er)h(eliminates)d(these)k(restrictions)f(and)e +(y)o(et)i(allo)o(ws)d(RE2C)i(to)-42 245 y(generate)15 +b(faster)f(and)g(smaller)e(scanners.)19 b(RE2C)13 b(also)g(allo)o(ws)g +(b)q(oth)g(auxiliary)f(and)h(primary)f(scanners)j(to)f(b)q(e)g(sp)q +(eci\014ed)-42 295 y(using)g(regular)g(expressions.)20 +b(F)m(or)13 b(example,)f(App)q(endix)i(A)g(con)o(tains)g(an)g +(auxiliary)e(scanner)j(for)f(commen)o(ts.)21 345 y(Lik)o(e)i(RE2C,)g +(GLA)h(usually)f(replaces)i Fm(switch)p Fr(es)e(with)h +Fm(if)p Fr(s.)27 b(Unlik)o(e)16 b(RE2C,)g(GLA)g(do)q(es)i(not)f(use)g +(a)g Fm(case)p Fr(-based)-42 394 y(heuristic)f(to)f(decide)h(whic)o(h)f +Fm(switch)p Fr(es)g(to)g(replace:)21 b(rather,)16 b(it)f(alw)o(a)o(ys)f +(generates)j(a)e Fm(switch)e Fr(for)i(the)h(start)g(state)g(and)-42 +444 y(uses)g Fm(if)p Fr(s)d(for)h(the)g(rest.)20 b(GLA)13 +b(replaces)i Fm(switch)p Fr(es)f(with)f(co)q(de)i(sequences)h(of)e(the) +g(form:)138 518 y Fm(if\(*YYCURSOR)20 b Fi(in)i Fl(S)505 +524 y Fq(1)524 518 y Fm(\))f(goto)g(L)698 524 y Fq(1)717 +518 y Fm(;)226 562 y(.)226 579 y(.)226 595 y(.)138 645 +y(if\(*YYCURSOR)f Fi(in)i Fl(S)505 651 y Fd(n)528 645 +y Fm(\))f(goto)g(L)702 651 y Fd(n)725 645 y Fm(;)-42 +737 y Fr(Bit)12 b(v)o(ectors)h(are)f(used)h(for)e(all)f(mem)o(b)q +(ership)g(tests)k(in)o(v)o(olving)9 b(sets)k(with)e(more)g(than)g(one)h +(elemen)o(t.)17 b(As)12 b(an)g(optimization,)-42 787 +y(if)k(a)f(state)i(has)f(a)g(transition)g(to)g(itself)f(the)i(test)g +(as)f(to)g(whether)h(to)f(remain)f(in)g(the)i(same)e(state)i(or)f(not)g +(is)g(p)q(erformed)-42 837 y(\014rst.)25 b(F)m(or)16 +b(example,)e(Figure)i(12)f(sho)o(ws)i(the)f(GLA-generated)h(co)q(de)f +(for)g(state)g(8)g(in)f(Figure)h(2)1506 822 y Fq(13)1541 +837 y Fr(.)73 b(Note)16 b(the)g(use)h(of)291 926 y Fm(static)j +(unsigned)g(char)h(yytable[])f(=)i Fk(f)291 976 y Fm(0x00,)e(0x00,)h +(0x00,)g(0x00,)g(/*)65 b(0.)g(1.)g(2.)f(3.)22 b(*/)291 +1025 y Fl(:)7 b(:)g(:)291 1075 y Fm(0x00,)20 b(0x00,)h(0x00,)g(0x00,)g +(/*)43 b(,)g(-)h(.)f(/)22 b(*/)291 1125 y(0x01,)e(0x01,)h(0x01,)g +(0x01,)g(/*)43 b(0)g(1)h(2)f(3)22 b(*/)291 1175 y(0x01,)e(0x01,)h +(0x01,)g(0x01,)g(/*)43 b(4)g(5)h(6)f(7)22 b(*/)291 1225 +y(0x01,)e(0x01,)h(0x00,)g(0x00,)g(/*)43 b(8)g(9)h(:)f(;)22 +b(*/)291 1275 y(0x00,)e(0x00,)h(0x00,)g(0x00,)g(/*)43 +b(<)g(=)h(>)f(?)22 b(*/)291 1324 y Fl(:)7 b(:)g(:)291 +1374 y Fm(0x00,)20 b(0x00,)h(0x00,)g(0x00)g Fk(g)p Fm(;)g(/*)43 +b(|)h Fk(g)108 b Fm(127.)21 b(*/)378 1419 y(.)378 1435 +y(.)378 1452 y(.)291 1502 y(L8:)g(if\(yytable[\(*YYC)o(URSOR)o(++\)+0)o +(])e(&)j(1<<0\))e(goto)h(L8;--YYCURSOR;)291 1552 y(goto)g(A3;)527 +1631 y Fr(Figure)14 b(12:)j(GLA)d(co)q(de)h(for)e(state)i(8)e(in)h +(Figure)g(2.)-42 1731 y(128)i(elemen)o(t)f(en)o(tries)i(for)e(the)i +(bit)f(v)o(ectors)h(to)e(reduce)j(the)e(scanner)i(size:)k(A)16 +b(GLA-generated)h(scanner)g(will)e(crash)h(or)-42 1781 +y(otherwise)f(b)q(eha)o(v)o(e)g(unpredictably)f(if)f(a)h(non-ASCI)q(I)f +(c)o(haracter)j(app)q(ears)e(in)g(the)g(source)1395 1766 +y Fq(14)1432 1781 y Fr(.)21 1831 y(In)k(some)g(sense)j(the)e(results)h +(of)e(Section)h(4)f(are)i(a)e(bit)g(misleading:)26 b(the)19 +b(GLA)f(sp)q(eci\014cation)i(that)e(w)o(as)h(used)h(to)-42 +1880 y(obtain)15 b(the)g(\014gures)h(in)e(T)m(able)g(1)h(is)g(not)f(a)h +(t)o(ypical)f(GLA)g(sp)q(eci\014cation.)22 b(Usually)14 +b(scanners)j(implem)o(en)o(ted)c(using)i(GLA)-42 1930 +y(will)h(handle)i(k)o(eyw)o(ords)f(as)h(iden)o(ti\014ers)g(as)g(GLA)f +(has)g(b)q(een)i(optimized)d(for)h(this)g([7)o(].)29 +b(T)m(able)16 b(2)h(presen)o(ts)j(a)d(more)f(fair)-42 +1980 y(comparison:)h(the)e(k)o(eyw)o(ord)f(matc)o(hing)e(rules)j(w)o +(ere)g(remo)o(v)o(ed)e(from)f(b)q(oth)j(the)f(GLA)g(and)g(RE2C)f(sp)q +(eci\014cations.)39 b(The)-42 2030 y(RE2C-generated)18 +b(scanners)g(w)o(ere)f(still)e(faster)i(and)g(smaller)d(except)k(on)e +(the)h(MIPS)g(R4000,)e(where)i(the)g(cc-compiled)-42 +2080 y(GLA)d(scanner)h(w)o(as)f(sligh)o(tly)f(faster.)21 +2130 y(Note)k(ho)o(w)o(ev)o(er,)g(that)g(the)g(RE2C)g(sp)q +(eci\014cation)g(can)g(b)q(e)g(substan)o(tially)f(sp)q(ed)i(up)f(b)o(y) +f(using)h(a)f(tec)o(hnique)i(akin)e(to)-42 2179 y(lo)q(op)e(unrolling.) +i(Replacing)d(the)i(original)d(k)o(eyw)o(ord)h(matc)o(hing)f(rule)j(in) +e(the)i(RE2C)e(sp)q(eci\014cation)1548 2164 y Fq(15)138 +2252 y Fm(L)22 b(I*)435 b Fk(f)22 b Fm(RET\(ID\);)e Fk(g)-42 +2345 y Fr(with)14 b(the)h(follo)o(wing)c(rules)p -42 +2380 780 2 v -11 2407 a Fn(13)22 2419 y Fo(Actually)m(,)f(GLA)i(w)o +(ould)f(generate)e(a)i Fg(while)f Fo(statemen)o(t.)j(Most)e(compilers)e +(will)j(generate)d(the)i(same)f(ob)r(ject)g(co)q(de)g(for)h(b)q(oth.) +-11 2446 y Fn(14)22 2458 y Fo(No)h(c)o(hec)o(ks)e(are)h(made)f(to)h +(ensure)f(that)g(only)h(7-bit)f(c)o(haracters)f(app)q(ear)h(in)h(the)g +(input.)-11 2486 y Fn(15)22 2498 y Fg(L)e Fo(=)i Fg([a-zA-Z)p +215 2498 11 2 v 10 w(])g Fo(and)g Fg(I)e Fo(=)i Fg([a-zA-Z)p +514 2498 V 10 w(0-9])n Fo(.)913 2748 y Fr(12)p eop +%%Page: 13 13 +13 12 bop 727 776 a Fr(time)387 b(space)380 826 y(program)p +557 841 2 50 v 61 w(user)72 b(sys)65 b(total)p 974 841 +V 62 w(text)58 b(data)e(bss)64 b(total)p 355 842 1158 +2 v 850 877 a Fi(R4000)16 b(/)f(gc)n(c2.3.3)g(-O)p 355 +894 V 479 929 a Fr(gla)p 557 944 2 50 v 71 w(2.63)p 703 +944 V 51 w(0.58)p 828 944 V 71 w(3.21)p 974 944 V 50 +w(5040)p 1109 944 V 50 w(2496)p 1243 944 V 51 w(144)p +1357 944 V 71 w(7680)458 979 y(re2c)p 557 994 V 73 w(2.50)p +703 994 V 51 w(0.65)p 828 994 V 71 w(3.15)p 974 994 V +50 w(6448)p 1109 994 V 71 w(512)p 1243 994 V 92 w(0)p +1357 994 V 72 w(6960)414 1028 y(re2c)g(-s)p 557 1043 +V 72 w(2.49)p 703 1043 V 51 w(0.67)p 828 1043 V 71 w(3.16)p +974 1043 V 50 w(4976)p 1109 1043 V 50 w(4224)p 1243 1043 +V 92 w(0)p 1357 1043 V 72 w(9200)382 1078 y(re2c)g(-s)f +Fk(y)p 557 1093 V 72 w Fr(2.08)p 703 1093 V 51 w(0.59)p +828 1093 V 71 w(2.67)p 974 1093 V 50 w(5792)p 1109 1093 +V 50 w(4224)p 1243 1093 V 92 w(0)p 1357 1093 V 52 w(10016)p +355 1095 1158 2 v 726 1130 a Fi(R4000)i(/)f(c)n(c2.11.2)g(-O)g(-Olimit) +e(5000)p 355 1146 V 479 1181 a Fr(gla)p 557 1196 2 50 +v 71 w(2.43)p 703 1196 V 51 w(0.64)p 828 1196 V 71 w(3.07)p +974 1196 V 50 w(6512)p 1109 1196 V 50 w(2416)p 1243 1196 +V 51 w(128)p 1357 1196 V 71 w(9056)458 1231 y(re2c)p +557 1246 V 73 w(2.93)p 703 1246 V 51 w(0.67)p 828 1246 +V 71 w(3.60)p 974 1246 V 50 w(8048)p 1109 1246 V 71 w(528)p +1243 1246 V 92 w(0)p 1357 1246 V 72 w(8576)414 1281 y(re2c)i(-s)p +557 1296 V 72 w(3.04)p 703 1296 V 51 w(0.64)p 828 1296 +V 71 w(3.68)p 974 1296 V 50 w(9952)p 1109 1296 V 50 w(2208)p +1243 1296 V 92 w(0)p 1357 1296 V 52 w(12160)p 355 1297 +1158 2 v 838 1332 a Fi(SP)m(AR)o(C)g(/)g(gc)n(c2.3.3)g(-O)p +355 1349 V 479 1384 a Fr(gla)p 557 1399 2 50 v 71 w(4.08)p +703 1399 V 51 w(1.65)p 828 1399 V 71 w(5.73)p 974 1399 +V 50 w(5472)p 1109 1399 V 50 w(1656)p 1243 1399 V 51 +w(136)p 1357 1399 V 71 w(7264)458 1434 y(re2c)p 557 1449 +V 73 w(3.77)p 703 1449 V 51 w(1.67)p 828 1449 V 71 w(5.44)p +974 1449 V 50 w(7008)p 1109 1449 V 113 w(0)p 1243 1449 +V 92 w(0)p 1357 1449 V 72 w(7008)414 1483 y(re2c)g(-s)p +557 1498 V 72 w(3.66)p 703 1498 V 51 w(2.37)p 828 1498 +V 71 w(6.03)p 974 1498 V 50 w(9112)p 1109 1498 V 113 +w(0)p 1243 1498 V 92 w(0)p 1357 1498 V 72 w(9112)p 355 +1500 1158 2 v 869 1535 a Fi(i486)g(/)g(gc)n(c2.4.5)g(-O)p +355 1551 V 479 1586 a Fr(gla)p 557 1601 2 50 v 71 w(5.04)p +703 1601 V 51 w(1.15)p 828 1601 V 71 w(6.19)p 974 1601 +V 50 w(5368)p 1109 1601 V 50 w(1632)p 1243 1601 V 51 +w(108)p 1357 1601 V 71 w(7108)458 1636 y(re2c)p 557 1651 +V 73 w(4.75)p 703 1651 V 51 w(1.17)p 828 1651 V 71 w(5.92)p +974 1651 V 50 w(5448)p 1109 1651 V 113 w(0)p 1243 1651 +V 92 w(0)p 1357 1651 V 72 w(5448)414 1686 y(re2c)g(-s)p +557 1701 V 72 w(5.06)p 703 1701 V 51 w(1.13)p 828 1701 +V 71 w(6.19)p 974 1701 V 50 w(8248)p 1109 1701 V 113 +w(0)p 1243 1701 V 92 w(0)p 1357 1701 V 72 w(8248)p 355 +1703 1158 2 v 860 1737 a Fi(68020)h(/)f(gc)n(c1.40)h(-O)p +355 1754 V 479 1789 a Fr(gla)p 557 1804 2 50 v 51 w(32.69)p +703 1804 V 50 w(3.37)p 828 1804 V 50 w(36.06)p 974 1804 +V 50 w(4772)p 1109 1804 V 50 w(1632)p 1243 1804 V 51 +w(106)p 1357 1804 V 71 w(6510)458 1839 y(re2c)p 557 1854 +V 53 w(29.86)p 703 1854 V 50 w(3.74)p 828 1854 V 50 w(33.60)p +974 1854 V 50 w(4468)p 1109 1854 V 113 w(0)p 1243 1854 +V 92 w(0)p 1357 1854 V 72 w(4468)414 1889 y(re2c)f(-s)p +557 1904 V 52 w(28.77)p 703 1904 V 50 w(3.55)p 828 1904 +V 50 w(32.32)p 974 1904 V 50 w(5616)p 1109 1904 V 113 +w(0)p 1243 1904 V 92 w(0)p 1357 1904 V 72 w(5616)108 +1978 y(T)m(able)i(2:)24 b(Scanner)18 b(p)q(erformance)f(with)g(k)o(eyw) +o(ords)g(treated)h(as)f(iden)o(ti\014ers.)29 b Fk(y)17 +b Fr(uses)h(an)f(\\unrolled")108 2028 y(sp)q(eci\014cation.)913 +2748 y(13)p eop +%%Page: 14 14 +14 13 bop 138 185 a Fm(L)501 b Fk(f)22 b Fm(RET\(ID\);)e +Fk(g)138 235 y Fm(L)i(I)457 b Fk(f)22 b Fm(RET\(ID\);)e +Fk(g)138 284 y Fm(L)i(I)g(I)413 b Fk(f)22 b Fm(RET\(ID\);)e +Fk(g)138 334 y Fm(L)i(I)g(I)f(I)370 b Fk(f)22 b Fm(RET\(ID\);)e +Fk(g)138 384 y Fm(L)i(I)g(I)f(I)h(I)326 b Fk(f)22 b Fm(RET\(ID\);)e +Fk(g)138 434 y Fm(L)i(I)g(I)f(I)h(I)f(I)283 b Fk(f)22 +b Fm(RET\(ID\);)e Fk(g)138 484 y Fm(L)i(I)g(I)f(I)h(I)f(I)h(I)239 +b Fk(f)22 b Fm(RET\(ID\);)e Fk(g)138 533 y Fm(L)i(I)g(I)f(I)h(I)f(I)h +(I)f(I)196 b Fk(f)22 b Fm(RET\(ID\);)e Fk(g)138 583 y +Fm(L)i(I*)435 b Fk(f)22 b Fm(RET\(ID\);)e Fk(g)-42 677 +y Fr(reduces)f(the)e(n)o(um)o(b)q(er)f(of)g(end-of-bu\013er)h(c)o(hec)o +(ks)h(and)e(results)i(in)e(a)g(signi\014can)o(t)g(sp)q(eed)i(impro)o(v) +o(emen)o(t)13 b(o)o(v)o(er)k(the)g(GLA-)-42 726 y(generated)f(scanner.) +-42 864 y Fs(6)67 b(Summary)24 b(and)f(F)-6 b(urther)25 +b(W)-6 b(ork)-42 955 y Fr(This)16 b(pap)q(er)h(has)f(describ)q(ed)h +(RE2C,)e(a)h(to)q(ol)f(for)g(creating)h(lexical)f(analyzers.)24 +b(Unlik)o(e)16 b(other)g(suc)o(h)h(to)q(ols,)e(RE2C)g(con-)-42 +1004 y(cen)o(trates)i(solely)d(on)g(generating)g(e\016cien)o(t)h(co)q +(de)g(for)f(matc)o(hing)f(regular)h(expressions.)21 b(Not)14 +b(only)g(do)q(es)h(this)g(singleness)-42 1054 y(of)h(purp)q(ose)i(mak)o +(e)c(RE2C)i(more)g(suitable)g(for)g(a)g(wider)g(v)n(ariet)o(y)g(of)g +(applications,)f(it)h(allo)o(ws)f(it)h(to)g(generate)i(scanners)-42 +1104 y(whic)o(h)c(approac)o(h)g(hand-crafted)h(scanners)g(in)f(terms)g +(of)f(size)i(and)e(sp)q(eed.)20 b(Compared)13 b(to)h(scanners)i +(generated)f(b)o(y)f(\015ex,)-42 1154 y(and)g(GLA,)f(RE2C-generated)i +(scanners)g(are)g(faster)f(and)g(in)f(man)o(y)f(cases)k(smaller)c(as)i +(w)o(ell.)21 1204 y(While)g(RE2C-generated)h(scanners)h(p)q(erform)e(w) +o(ell,)g(there)i(is)e(still)g(ro)q(om)f(for)h(impro)o(v)o(emen)o(t.)k +(Near)d(term)f(impro)o(v)o(e-)-42 1254 y(men)o(ts)g(include)g(using)f +(GLA's)h(bit)f(v)o(ectors)i(to)f(simplify)d(some)i Fm(switch)p +Fr(es)h(and)f(adding)g(a)h(state)h(unrolling)d(op)q(erator.)21 +1303 y(In)i(the)g(longer)g(term,)f(inline)g(actions)h(will)e(b)q(e)i +(added)h(to)e(RE2C.)g(F)m(or)h(example,)e(a)h(sp)q(eci\014cation)i(lik) +o(e)138 1386 y Fm(D)22 b Fk(f)p Fm(c)f(=)h($)p Fk(g)f +Fm(\(D)h Fk(f)p Fm(c)f(=)h(10*c)e(+)i($)p Fk(g)p Fm(\)*)-42 +1469 y Fr(migh)o(t)15 b(b)q(e)i(used)g(to)f(obtain)g(the)h(v)n(alue)f +(of)g(a)g(previously)g(scanned)i(in)o(teger.)26 b(T)o(ypically)m(,)14 +b(these)k(sorts)g(of)d(sp)q(eci\014cations)-42 1519 y(w)o(ould)f(b)q(e) +g(used)h(as)f(an)f(action)h(in)f(some)g(other)i(sp)q(eci\014cation.)-42 +1656 y Fs(7)67 b(Ac)n(kno)n(wledgmen)n(ts)-42 1747 y +Fr(The)15 b(authors)f(thank)g(the)g(referees)j(for)c(their)h(man)o(y)e +(v)n(aluable)h(commen)o(ts)f(and)i(suggestions.)913 2748 +y(14)p eop +%%Page: 15 15 +15 14 bop -42 195 a Fs(A)68 b(C)22 b(Scanner)-42 276 +y Fg(#define)16 b(BSIZE)192 b(8192)-42 315 y(#define)16 +b(RET\(i\))174 b({s->cur)15 b(=)i(cursor;)e(return)h(i;})-42 +394 y(#define)g(YYCTYPE)156 b(uchar)-42 433 y(#define)16 +b(YYCURSOR)138 b(cursor)-42 473 y(#define)16 b(YYLIMIT)156 +b(s->lim)-42 512 y(#define)16 b(YYMARKER)138 b(s->ptr)-42 +552 y(#define)16 b(YYFILL\(n\))120 b({cursor)15 b(=)i(fill\(s,)e +(cursor\);})-42 631 y(typedef)h(struct)f(Scanner)g({)29 +670 y(int)299 b(fd;)29 709 y(uint)281 b(line;)29 749 +y(uchar)263 b(*bot,)16 b(*tok,)g(*ptr,)f(*cur,)h(*pos,)g(*lim,)g(*top,) +g(*eof;)-42 788 y(})i(Scanner;)-42 867 y(uchar)e(*fill\(Scann)o(er)e +(*s,)j(uchar)f(*cursor\){)29 907 y(if\(!s->eof)o(\){)100 +946 y(uint)g(cnt)g(=)i(s->tok)d(-)i(s->bot;)100 985 y(if\(cnt\){)d(/*)j +(move)g(partial)e(token)h(to)g(bottom)g(*/)170 1025 y(memcpy\(s->b)o +(ot,)e(s->tok,)h(s->lim)g(-)j(s->tok\);)d(s->tok)g(=)i(s->bot;)170 +1064 y(s->ptr)f(-=)h(cnt;)f(cursor)f(-=)i(cnt;)f(s->pos)g(-=)h(cnt;)f +(s->lim)g(-=)h(cnt;)100 1104 y(})100 1143 y(if\(\(s->to)o(p)e(-)i +(s->lim\))e(<)i(BSIZE\){)f(/*)g(buffer)g(needs)g(to)h(be)g(expanded)d +(*/)170 1183 y(uchar)i(*buf)g(=)i(\(uchar*\))c(malloc\(\(\(s-)o(>li)o +(m)h(-)i(s->bot\))e(+)i(BSIZE\)*size)o(of\()o(uch)o(ar\))o(\);)170 +1222 y(memcpy\(buf,)d(s->tok,)h(s->lim)h(-)h(s->tok\);)e(s->tok)g(=)i +(buf;)170 1262 y(s->ptr)f(=)h(&buf[s->pt)o(r)e(-)i(s->bot];)e(cursor)g +(=)j(&buf[curs)o(or)c(-)k(s->bot];)170 1301 y(s->pos)e(=)h(&buf[s->po)o +(s)e(-)i(s->bot];)e(s->lim)g(=)j(&buf[s->l)o(im)c(-)k(s->bot];)170 +1340 y(s->top)e(=)h(&s->lim[BS)o(IZE)o(];)170 1380 y(free\(s->bot)o +(\);)d(s->bot)i(=)h(buf;)100 1419 y(})100 1459 y(if\(\(cnt)e(=)i +(read\(s->fd)o(,)e(\(char*\))g(s->lim,)g(BSIZE\)\))g(!=)i(BSIZE\){)e +(/*)i(EOF)g(*/)170 1498 y(s->eof)f(=)h(&s->lim[cn)o(t];)d(*\(s->eof\)+) +o(+)h(=)i('\\n';)100 1538 y(})100 1577 y(s->lim)e(+=)i(cnt;)29 +1616 y(})29 1656 y(return)f(cursor;)-42 1695 y(})-42 +1774 y(int)h(scan\(Scann)o(er)d(*s\){)100 1814 y(uchar)h(*cursor)h(=)h +(s->cur;)-42 1853 y(std:)70 b(s->tok)15 b(=)i(cursor;)-42 +1892 y(/*!re2c)100 1932 y("/*")157 b({)17 b(goto)f(comment;)f(})-42 +2013 y Fc(:)6 b(:)g(:)11 b Fb(mor)n(e)j(rules)e Fc(:)6 +b(:)g(:)100 2086 y Fg([)17 b(\\t\\v\\f]+)50 b({)17 b(goto)f(std;)h(}) +100 2125 y("\\n")157 b({)17 b(if\(cursor)e(==)i(s->eof\))e(RET\(EOI\);) +f(s->pos)i(=)h(cursor;)e(s->line++;)364 2164 y(goto)h(std;)h(})100 +2204 y([\\000-\\37)o(7])32 b({)17 b(printf\("une)o(xpe)o(cte)o(d)d +(character:)h('\045c'\\n",)f(*s->tok\);)364 2243 y(goto)i(std;)h(})-42 +2283 y(*/)-42 2322 y(comment:)-42 2362 y(/*!re2c)100 +2401 y("*/")157 b({)17 b(goto)f(std;)h(})100 2440 y("\\n")157 +b({)17 b(if\(cursor)e(==)i(s->eof\))e(RET\(EOI\);)f(s->tok)i(=)h +(s->pos)e(=)j(cursor;)d(s->line++;)364 2480 y(goto)h(comment;)f(})100 +2519 y([\\000-\\37)o(7])32 b({)17 b(goto)f(comment;)f(})-42 +2559 y(*/)-42 2598 y(})913 2748 y Fr(15)p eop +%%Page: 16 16 +16 15 bop -42 195 a Fs(References)-21 286 y Fr([1])20 +b Fa(Aho,)d(A.)g(V.,)f(Sethi,)h(R.,)h(and)f(Ullman,)h(J.)e(D.)21 +b Fi(Compilers:)e(principles,)c(te)n(chniques,)h(and)g(to)n(ols)p +Fr(.)k(Addison-)44 336 y(W)m(esley)m(,)13 b(1988.)k(Reprin)o(ted)d +(with)f(corrections.)-21 419 y([2])20 b Fa(Bernstein,)c(R.)f(L.)k +Fr(Pro)q(ducing)13 b(go)q(o)q(d)g(co)q(de)i(for)e(the)h(case)g +(statemen)o(t.)j Fi(Softwar)n(e{Pr)n(actic)n(e)d(and)h(Exp)n(erienc)n +(e)g(15)p Fr(,)44 469 y(10)e(\(Octob)q(er)j(1985\),)c(1021{1024.)-21 +552 y([3])20 b Fa(DeRemer,)e(F.,)f(and)g(Pennello,)i(T.)h +Fr(E\016cien)o(t)15 b(computation)e(of)h Fl(LALR)p Fr(\(1\))h(lo)q +(ok-ahead)f(sets.)21 b Fi(A)o(CM)15 b(T)m(r)n(ans-)44 +602 y(actions)g(on)g(Pr)n(o)n(gr)n(amming)g(L)n(anguages)h(and)f +(Systems)g(4)p Fr(,)f(4)g(\(Octob)q(er)h(1982\),)e(615{649.)-21 +685 y([4])20 b Fa(Ellis,)c(M.,)g(and)g(Str)o(oustr)o(up,)h(B.)i +Fi(The)c(A)o(nnotate)n(d)h(C++)e(R)n(efer)n(enc)n(e)h(Manual)p +Fr(.)j(Addison-W)m(esley)m(,)13 b(1990.)-21 768 y([5])20 +b Fa(Fraser,)c(C.)f(W.,)h(and)g(Hanson,)h(D.)f(R.)i Fr(A)c +(retargetable)g(compiler)e(for)h(ANSI)h(C.)j Fi(SIGPLAN)e(Notic)n(es)f +(26)p Fr(,)g(10)44 817 y(\(Octob)q(er)h(1991\),)e(29{43.)-21 +900 y([6])20 b Fa(Garey,)g(M.)d(R.,)i(and)g(Johnson,)h(D.)e(S.)25 +b Fi(Computers)16 b(and)h(Intr)n(actability:)k(A)c(Guide)g(to)f(the)h +(The)n(ory)f(of)h(NP-)44 950 y(Completeness)p Fr(.)h(W.)13 +b(H.)g(F)m(reeman)g(and)h(Compan)o(y)m(,)d(1991.)-21 +1033 y([7])20 b Fa(Gra)m(y,)14 b(R.)e(W.)g Fl(\015)r +Fr(-GLA)e(-)g(A)g(generator)g(for)g(lexical)f(analyzers)h(that)g +(programmers)e(can)i(use.)i Fi(USENIX)g(Confer)n(enc)n(e)44 +1083 y(Pr)n(o)n(c)n(e)n(e)n(dings)17 b Fr(\(June)e(1988\),)d(147{160.) +-21 1166 y([8])20 b Fa(Gra)m(y,)c(R.)f(W.,)g(Heuring,)g(V.)f(P.,)h +(Levi,)h(S.)f(P.,)g(Slo)o(ane,)i(A.)d(M.,)h(and)g(W)-5 +b(aite,)15 b(W.)g(M.)h Fr(Eli:)h(A)c(complete,)44 1216 +y(\015exible)h(compiler)e(construction)j(system.)j Fi(Communic)n +(ations)d(of)g(the)g(A)o(CM)f(35)p Fr(,)g(2)g(\(F)m(ebruary)g(1992\),)f +(121{131.)-21 1299 y([9])20 b Fa(Gr)o(osch,)e(J.)i Fr(E\016cien)o(t)15 +b(generation)g(of)f(lexical)f(analysers.)21 b Fi(Softwar)n(e{Pr)n +(actic)n(e)15 b(and)h(Exp)n(erienc)n(e)g(19)p Fr(,)f(11)f(\(1989\),)44 +1349 y(1089{1103.)-42 1432 y([10])20 b Fa(Harrison,)c(M.)g(A.)j +Fi(Intr)n(o)n(duction)c(to)g(F)m(ormal)f(L)n(anguage)i(The)n(ory)p +Fr(.)i(Addison-W)m(esley)m(,)13 b(1978.)-42 1515 y([11])20 +b Fa(Hennessy,)15 b(J.)e(L.,)i(and)f(Mendelsohn,)i(N.)f +Fr(Compilation)8 b(of)j(the)h(Pascal)g(case)g(statemen)o(t.)i +Fi(Softwar)n(e{Pr)n(actic)n(e)44 1565 y(and)h(Exp)n(erienc)n(e)h(12)p +Fr(,)d(9)h(\(Septem)o(b)q(er)h(1982\),)d(879{882.)-42 +1648 y([12])20 b Fa(Horspool,)c(R.)g(N.,)f(and)g(Whitney,)h(M.)h +Fr(Ev)o(en)d(faster)g(LR)e(parsing.)k Fi(Softwar)n(e{Pr)n(actic)n(e)d +(and)i(Exp)n(erienc)n(e)g(20)p Fr(,)44 1697 y(6)e(\(1990\),)g(515{535.) +-42 1780 y([13])20 b Fa(Ja)o(cobson,)d(V.)i Fr(T)m(uning)14 +b(UNIX)g(Lex)h(or)f(it's)f(NOT)i(true)g(what)f(they)h(sa)o(y)f(ab)q +(out)g(Lex.)19 b(In)14 b Fi(USENIX)i(Confer)n(enc)n(e)44 +1830 y(Pr)n(o)n(c)n(e)n(e)n(dings)h Fr(\(W)m(ashington,)12 +b(DC,)h(Win)o(ter)h(1987\),)f(pp.)g(163{164.)j(Abstract)f(only)m(.)-42 +1913 y([14])20 b Fa(Kernighan,)h(B.)e(W.,)h(and)g(Ritchie,)f(D.)h(M.)28 +b Fi(The)18 b(C)f(Pr)n(o)n(gr)n(amming)g(L)n(anguage,)i(2nd)g(Ed.)28 +b Fr(Pren)o(tice-Hall,)44 1963 y(Inc.,)13 b(1988.)-42 +2046 y([15])20 b Fa(Lesk,)25 b(M.)e(E.)38 b Fr(LEX)20 +b({)g(a)g(lexical)g(analyzer)g(generator.)38 b(Computing)18 +b(Science)k(T)m(ec)o(hnical)e(Rep)q(ort)h(39,)g(Bell)44 +2096 y(T)m(elephone)14 b(Lab)q(oratories,)g(Murra)o(y)g(Hill,)e(NJ,)h +(1975.)-42 2179 y([16])20 b Fa(P)l(axson,)e(V.)h Fr(\015ex)14 +b({)g(man)e(pages,)i(1988.)j(In)d Ff(\015ex-2.3.7.ta)o(r.Z)p +Fr(.)e(Av)n(ailable)g(for)i(anon)o(ymous)e(ftp)i(from)e +Ff(ftp.uu.net)j Fr(in)44 2229 y Ff(/pack)o(ages/gnu)p +Fr(.)-42 2312 y([17])20 b Fa(Pennello,)k(T.)d(J.)33 b +Fr(V)m(ery)19 b(fast)g(LR)f(parsing.)33 b(In)19 b Fi(Pr)n(o)n(c)n(e)n +(e)n(dings)g(of)g(the)h(A)o(CM)f(SIGPLAN'86)h(Symp)n(osium)g(on)44 +2362 y(Compiler)14 b(Construction)j Fr(\(July)c(1986\),)g(A)o(CM.)-42 +2445 y([18])20 b Fa(Sale,)g(A.)25 b Fr(The)17 b(implemen)o(tatio)o(n)c +(of)j(case)h(statemen)o(ts)g(in)e(Pascal.)25 b Fi(Softwar)n(e{Pr)n +(actic)n(e)16 b(and)i(Exp)n(erienc)n(e)f(11)p Fr(,)g(9)44 +2494 y(\(Septem)o(b)q(er)d(1981\),)f(929{942.)913 2748 +y(16)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/2017_trofimovich_tagged_deterministic_finite_automata_with_lookahead.pdf b/2017_trofimovich_tagged_deterministic_finite_automata_with_lookahead.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d3eb80bf19d58a8d7d8727264e6b1fdb0f51a456 GIT binary patch literal 835629 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 z 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�#n^M=$F!&wlhrcB&Fo8Bbd-`& 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 L2r0Tz^+N%Q--zfC!W!8F>gPL#Rq2#J& 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