浏览代码

Adicionando filtro de partículas

capellaresumo 7 年之前
父节点
当前提交
e50e316fbd
共有 100 个文件被更改,包括 34495 次插入1 次删除
  1. 二进制
      HistogramFilter/bin/MainProgram.class
  2. 1 1
      HistogramFilter/src/MainProgram.java
  3. 二进制
      ParticleFilter/1.pdf
  4. 80 0
      ParticleFilter/1.txt
  5. 二进制
      ParticleFilter/2.pdf
  6. 80 0
      ParticleFilter/2.txt
  7. 二进制
      ParticleFilter/3.pdf
  8. 80 0
      ParticleFilter/3.txt
  9. 二进制
      ParticleFilter/4.pdf
  10. 80 0
      ParticleFilter/4.txt
  11. 二进制
      ParticleFilter/5.pdf
  12. 80 0
      ParticleFilter/5.txt
  13. 45 0
      ParticleFilter/map.js
  14. 1 0
      ParticleFilter/node_modules/.bin/acorn
  15. 1 0
      ParticleFilter/node_modules/.bin/brfs
  16. 1 0
      ParticleFilter/node_modules/.bin/escodegen
  17. 1 0
      ParticleFilter/node_modules/.bin/esgenerate
  18. 1 0
      ParticleFilter/node_modules/.bin/esparse
  19. 1 0
      ParticleFilter/node_modules/.bin/esvalidate
  20. 1 0
      ParticleFilter/node_modules/.bin/quote-stream
  21. 77 0
      ParticleFilter/node_modules/acorn/AUTHORS
  22. 468 0
      ParticleFilter/node_modules/acorn/CHANGELOG.md
  23. 19 0
      ParticleFilter/node_modules/acorn/LICENSE
  24. 467 0
      ParticleFilter/node_modules/acorn/README.md
  25. 69 0
      ParticleFilter/node_modules/acorn/bin/_acorn.js
  26. 4 0
      ParticleFilter/node_modules/acorn/bin/acorn
  27. 21 0
      ParticleFilter/node_modules/acorn/bin/run_test262.js
  28. 409 0
      ParticleFilter/node_modules/acorn/bin/test262.whitelist
  29. 0 0
      ParticleFilter/node_modules/acorn/dist/.keep
  30. 29 0
      ParticleFilter/node_modules/acorn/dist/acorn.es.js
  31. 35 0
      ParticleFilter/node_modules/acorn/dist/acorn.js
  32. 1424 0
      ParticleFilter/node_modules/acorn/dist/acorn_loose.es.js
  33. 1434 0
      ParticleFilter/node_modules/acorn/dist/acorn_loose.js
  34. 432 0
      ParticleFilter/node_modules/acorn/dist/walk.es.js
  35. 452 0
      ParticleFilter/node_modules/acorn/dist/walk.js
  36. 341 0
      ParticleFilter/node_modules/acorn/package.json
  37. 58 0
      ParticleFilter/node_modules/amdefine/LICENSE
  38. 171 0
      ParticleFilter/node_modules/amdefine/README.md
  39. 301 0
      ParticleFilter/node_modules/amdefine/amdefine.js
  40. 36 0
      ParticleFilter/node_modules/amdefine/intercept.js
  41. 85 0
      ParticleFilter/node_modules/amdefine/package.json
  42. 21 0
      ParticleFilter/node_modules/ast-transform/LICENSE.md
  43. 53 0
      ParticleFilter/node_modules/ast-transform/README.md
  44. 43 0
      ParticleFilter/node_modules/ast-transform/index.js
  45. 1 0
      ParticleFilter/node_modules/ast-transform/node_modules/.bin/escodegen
  46. 1 0
      ParticleFilter/node_modules/ast-transform/node_modules/.bin/esgenerate
  47. 1 0
      ParticleFilter/node_modules/ast-transform/node_modules/.bin/esparse
  48. 1 0
      ParticleFilter/node_modules/ast-transform/node_modules/.bin/esvalidate
  49. 20 0
      ParticleFilter/node_modules/ast-transform/node_modules/escodegen/.jshintrc
  50. 19 0
      ParticleFilter/node_modules/ast-transform/node_modules/escodegen/LICENSE.BSD
  51. 27 0
      ParticleFilter/node_modules/ast-transform/node_modules/escodegen/LICENSE.source-map
  52. 112 0
      ParticleFilter/node_modules/ast-transform/node_modules/escodegen/README.md
  53. 45 0
      ParticleFilter/node_modules/ast-transform/node_modules/escodegen/bin/escodegen.js
  54. 45 0
      ParticleFilter/node_modules/ast-transform/node_modules/escodegen/bin/esgenerate.js
  55. 58 0
      ParticleFilter/node_modules/ast-transform/node_modules/escodegen/component.json
  56. 0 0
      ParticleFilter/node_modules/ast-transform/node_modules/escodegen/escodegen.browser.min.js
  57. 2188 0
      ParticleFilter/node_modules/ast-transform/node_modules/escodegen/escodegen.js
  58. 67 0
      ParticleFilter/node_modules/ast-transform/node_modules/escodegen/gulpfile.js
  59. 109 0
      ParticleFilter/node_modules/ast-transform/node_modules/escodegen/package.json
  60. 73 0
      ParticleFilter/node_modules/ast-transform/node_modules/esprima/README.md
  61. 117 0
      ParticleFilter/node_modules/ast-transform/node_modules/esprima/bin/esparse.js
  62. 177 0
      ParticleFilter/node_modules/ast-transform/node_modules/esprima/bin/esvalidate.js
  63. 179 0
      ParticleFilter/node_modules/ast-transform/node_modules/esprima/esprima.js
  64. 104 0
      ParticleFilter/node_modules/ast-transform/node_modules/esprima/package.json
  65. 239 0
      ParticleFilter/node_modules/ast-transform/node_modules/esprima/test/compat.js
  66. 422 0
      ParticleFilter/node_modules/ast-transform/node_modules/esprima/test/reflect.js
  67. 66 0
      ParticleFilter/node_modules/ast-transform/node_modules/esprima/test/run.js
  68. 387 0
      ParticleFilter/node_modules/ast-transform/node_modules/esprima/test/runner.js
  69. 20238 0
      ParticleFilter/node_modules/ast-transform/node_modules/esprima/test/test.js
  70. 16 0
      ParticleFilter/node_modules/ast-transform/node_modules/estraverse/.jshintrc
  71. 19 0
      ParticleFilter/node_modules/ast-transform/node_modules/estraverse/LICENSE.BSD
  72. 70 0
      ParticleFilter/node_modules/ast-transform/node_modules/estraverse/README.md
  73. 689 0
      ParticleFilter/node_modules/ast-transform/node_modules/estraverse/estraverse.js
  74. 92 0
      ParticleFilter/node_modules/ast-transform/node_modules/estraverse/package.json
  75. 16 0
      ParticleFilter/node_modules/ast-transform/node_modules/esutils/.jshintrc
  76. 8 0
      ParticleFilter/node_modules/ast-transform/node_modules/esutils/.travis.yml
  77. 80 0
      ParticleFilter/node_modules/ast-transform/node_modules/esutils/README.md
  78. 31 0
      ParticleFilter/node_modules/ast-transform/node_modules/esutils/lib/code.js
  79. 117 0
      ParticleFilter/node_modules/ast-transform/node_modules/esutils/lib/keyword.js
  80. 32 0
      ParticleFilter/node_modules/ast-transform/node_modules/esutils/lib/utils.js
  81. 90 0
      ParticleFilter/node_modules/ast-transform/node_modules/esutils/package.json
  82. 167 0
      ParticleFilter/node_modules/ast-transform/node_modules/esutils/test/code.coffee
  83. 204 0
      ParticleFilter/node_modules/ast-transform/node_modules/esutils/test/keyword.coffee
  84. 2 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/.npmignore
  85. 4 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/.travis.yml
  86. 194 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/CHANGELOG.md
  87. 28 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/LICENSE
  88. 166 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/Makefile.dryice.js
  89. 475 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/README.md
  90. 56 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/build/assert-shim.js
  91. 152 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/build/mini-require.js
  92. 20 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/build/prefix-source-map.jsm
  93. 18 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/build/prefix-utils.jsm
  94. 8 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/build/suffix-browser.js
  95. 6 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/build/suffix-source-map.jsm
  96. 21 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/build/suffix-utils.jsm
  97. 8 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/build/test-prefix.js
  98. 3 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/build/test-suffix.js
  99. 8 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/lib/source-map.js
  100. 97 0
      ParticleFilter/node_modules/ast-transform/node_modules/source-map/lib/source-map/array-set.js

二进制
HistogramFilter/bin/MainProgram.class


+ 1 - 1
HistogramFilter/src/MainProgram.java

@@ -350,7 +350,7 @@ public class MainProgram extends JPanel implements KeyListener, WindowListener,
 
 		LineMap map = Map.makeMap();
 		Robot robotv = new VirtualRobot(map);
-		Robot robotbt = new BluetoothRobot("NXT02");
+		Robot robotbt = new BluetoothRobot("NXT");
 		String s = "LCPRobot";
 
 		Object[] possibleValues = { robotv, robotbt, s };

二进制
ParticleFilter/1.pdf


+ 80 - 0
ParticleFilter/1.txt

@@ -0,0 +1,80 @@
+CIRCLE 436.31189155099986 1369.2518351961423 165.92668170705912
+CIRCLE 64.60525088880442 1138.6924492933679 133.08604106061847
+CIRCLE 2186.8901904306617 1803.8807618195904 101.37602693222209
+REC [ 693.8458813494335, 123.03993048075444 ] [ 992.2757787311416, 359.6953782507075 ] [ 1159.3994481444056, 627.2072138483759 ] [ 779.586025843105, 400.67496752269307 ]
+REC [ 486.39350017095495, 1842.3662743268128 ] [ 770.514411819193, 1891.4577673306399 ] [ 708.0185778237345, 2005.3930872683243 ] [ 511.8707554892971, 1974.5342310345986 ]
+REC [ 2173.49437550524, 355.149863187651 ] [ 2515.064971803816, 296.67372026302974 ] [ 2447.254154560368, 722.2989766458327 ] [ 2147.8023030576114, 505.493051566674 ]
+REC [ 78.45673700378796, 2265.7675067127802 ] [ 419.86075665897044, 2115.6623869911896 ] [ 382.97652801397476, 2622.644497318517 ] [ 136.1536532948589, 2540.134967747879 ]
+TRIANGLE [ 360.5843661511397, 644.2390563937739 ] [ 783.7960472684522, 537.5662586849699 ] [ 758.1002351631931, 1018.739940965887 ]
+REC [ 303.40729787949925, 1765.5014337065957 ] [ 687.9547255541872, 1785.9004610331622 ] [ 861.0989642715688, 2249.0269502792607 ] [ 588.2812572616116, 2302.2411097969652 ]
+CIRCLE 3255.4407024845455 0.00886339290253492 250.07134792019826
+CIRCLE 1446.7175613669501 791.5804870263024 64.9914481111949
+TRIANGLE [ 2188.6467213997444, 990.0852036737623 ] [ 2269.1891485226556, 720.1149042470333 ] [ 2413.002993340455, 1201.3964286556484 ]
+CIRCLE 707.4204668328146 2204.8991114471396 42.53812882757275
+TRIANGLE [ 2056.3082491197697, 179.45620052248006 ] [ 2337.5320027128073, 226.2734775363249 ] [ 2329.2790341618693, 477.2160330311988 ]
+CIRCLE 464.6761109396587 2060.6288457650094 63.045693313370236
+REC [ 280.2713910880248, 1150.7550555756534 ] [ 822.0591713753345, 1148.3438901333473 ] [ 822.7690654538972, 1450.114993146378 ] [ 495.6731995163416, 1532.6617829014858 ]
+CIRCLE 1520.508840510815 1745.3077140299877 269.30564565655664
+TRIANGLE [ 1414.1162804217547, 601.2580463471187 ] [ 1764.3055512192389, 478.44990809734287 ] [ 1548.0423367567485, 841.6640006674743 ]
+CIRCLE 1075.053064204924 2359.764013637888 269.1086738627239
+CIRCLE 64.68089247269394 1382.1134151255908 221.04060282667132
+TRIANGLE [ 1975.372516729795, 1069.148195486239 ] [ 2117.249598215698, 1162.3185592329658 ] [ 2043.7595822992073, 1329.5283339997006 ]
+CIRCLE 3289.195040449958 1412.422447806602 262.38676122738286
+TRIANGLE [ 1876.6312936216077, 1712.3072715387316 ] [ 2390.4839613077847, 1701.7896835280612 ] [ 2303.1610562381884, 2225.013376772227 ]
+CIRCLE 3287.721308333529 1787.006261079754 229.3668870277705
+REC [ 768.3810454060061, 866.8195274531926 ] [ 954.3284491451213, 718.8033304828866 ] [ 1055.385192197044, 937.3337694163034 ] [ 660.182127771163, 921.7168571782179 ]
+REC [ 1685.0544115554121, 256.2700697447886 ] [ 2097.893189507373, 161.28733359490954 ] [ 2231.1165481692774, 558.3655166137466 ] [ 1879.8636972612062, 674.8310482993327 ]
+CIRCLE 2457.035195932026 1857.0563233169569 298.3826259677677
+CIRCLE 914.8714888084361 803.2796923980233 311.590217897365
+REC [ 315.6142913318863, 979.6394748913858 ] [ 360.68256094982667, 1041.8562700306773 ] [ 620.2734518195474, 1388.941395262963 ] [ 80.13145149360594, 1299.5043041044823 ]
+CIRCLE 490.847784357547 425.034533823623 113.75809410076546
+CIRCLE 1242.4666157493532 1178.9864138361665 319.95212277930915
+CIRCLE 383.80139414314647 867.8325643953341 167.86034239039364
+CIRCLE 3318.132706949451 2218.747721791934 124.0793463548002
+CIRCLE 27.843170835020306 2315.6496010754595 277.29075878645426
+TRIANGLE [ 3113.2261179076986, 1083.5215035587353 ] [ 3574.8814450620457, 940.0497942686759 ] [ 3506.1054067390264, 1221.761680282291 ]
+TRIANGLE [ 3294.8099246743664, 714.7648229667424 ] [ 3562.5121227775003, 649.4361180681536 ] [ 3534.076683793358, 825.1286992443413 ]
+REC [ 2004.2103214476856, 285.5730311889978 ] [ 2240.378111308889, 271.6594925367604 ] [ 2502.536803063016, 800.3940833819512 ] [ 1988.8839237066743, 810.7309527838868 ]
+CIRCLE 1614.1275229639498 366.39951599223275 257.62375507321406
+CIRCLE 732.3368099316183 1023.9285435137178 171.1930001252143
+REC [ 701.0634039122307, 97.65991775547539 ] [ 975.2467129273136, 207.5504929712448 ] [ 771.8129543507014, 337.0294168015361 ] [ 584.7353729942738, 586.5897124451498 ]
+REC [ 2714.218733215657, 8.02417353663941 ] [ 3148.6195712978497, 31.05308506119394 ] [ 3056.4357404076663, 393.8923184377711 ] [ 2810.914167342672, 393.3864642532593 ]
+CIRCLE 2107.28036923834 1590.4924055574631 229.81585331373347
+REC [ 736.0469605723331, -130.6473535568437 ] [ 1249.552268909627, 137.5309102383799 ] [ 1066.2000928599155, 251.2365099380785 ] [ 853.1696403876047, 205.65222125761483 ]
+REC [ 2488.7501694064026, 1748.7147455102076 ] [ 2656.3906658657934, 1838.8292861334699 ] [ 2755.124993124686, 1924.0712678045252 ] [ 2473.4042860153772, 2158.6186232524165 ]
+CIRCLE 2265.6575260109557 1338.6798688160413 230.77839545503392
+REC [ 1637.3964595478622, 971.4379702735949 ] [ 1809.7038725697794, 1035.979104352932 ] [ 1862.2899153318263, 1388.6890532236152 ] [ 1687.970611877451, 1356.2673916780466 ]
+TRIANGLE [ 2395.5513995845095, 1124.6057949266126 ] [ 2692.8174998218155, 1288.972845270012 ] [ 2612.396770079816, 1543.4069391101586 ]
+TRIANGLE [ 1051.228361035062, 1078.360699670586 ] [ 1450.3220864292027, 1152.1134730355034 ] [ 1601.5621212748913, 1570.1651001167008 ]
+CIRCLE 3326.0835758089697 2161.4766964733544 42.966596469235746
+REC [ 2156.849650911749, 1105.6520962540894 ] [ 2343.7552397076274, 1112.1830051224551 ] [ 2308.592034985899, 1213.3394208318255 ] [ 2211.3540243182842, 1265.8255672140272 ]
+TRIANGLE [ 2982.9431721860838, 2267.3572336357647 ] [ 3288.4619337601493, 2051.8175511487902 ] [ 3412.606159316928, 2573.853628746765 ]
+REC [ 875.4580214002926, 0.5275323170334616 ] [ 1351.0011985583508, -76.48575194046603 ] [ 1374.868930013899, 237.1767665967751 ] [ 1076.4250730600859, 472.52341567589076 ]
+CIRCLE 2254.5253577042963 1334.1515057864747 59.98651548034228
+TRIANGLE [ 678.8481780722252, 1537.328969980097 ] [ 939.8310475085527, 1636.948247233191 ] [ 1005.9183419091461, 1993.8364166032457 ]
+CIRCLE 1478.216997979939 1980.493535853362 201.44435792624816
+CIRCLE 1078.9037137446492 772.3751304933786 205.6329994342468
+CIRCLE 3233.440593079805 959.4702555772075 189.2881922770928
+TRIANGLE [ 2782.290442393629, 2131.229153274502 ] [ 3091.5947457377833, 2056.317829349206 ] [ 3060.894636906618, 2490.9110663382744 ]
+CIRCLE 3221.0740170666522 1388.5194883866081 298.3074193210416
+CIRCLE 1833.9040874872605 983.7328916652876 213.6735817442309
+CIRCLE 2884.3550738626436 1772.5129450516645 176.09750372035592
+TRIANGLE [ 2024.3599088784197, 344.856091800516 ] [ 2537.7936770439064, 439.90634225563844 ] [ 2268.8366750901664, 635.2857867496325 ]
+CIRCLE 1921.2771769601463 685.5094998519743 75.91412320749771
+REC [ 3136.1766159011813, 1674.7682920905427 ] [ 3511.7676966133436, 1896.0978424909658 ] [ 3515.995735430631, 2125.020716627268 ] [ 3205.6564362014915, 2185.8855087728866 ]
+CIRCLE 706.4443573963217 2250.5641498927685 54.76821447530311
+CIRCLE 3087.6715685452423 20.972185529266458 183.31120476639768
+CIRCLE 2167.1814346161113 278.9169711136722 327.7905104203125
+TRIANGLE [ -62.66698469958101, 1046.4806841635952 ] [ 326.38186112499915, 1212.9840666812827 ] [ 187.12875306739028, 1404.7253157036203 ]
+REC [ 1512.4708493385574, 1120.1418618119483 ] [ 1861.3181993138783, 1106.430573178433 ] [ 1610.0039175267593, 1627.4110284724052 ] [ 1415.5916981348612, 1588.9187796081028 ]
+TRIANGLE [ 1000.7987099622391, 131.46030675911965 ] [ 1070.8969657095251, 291.0102062245502 ] [ 1156.947570816788, 681.7294695286325 ]
+CIRCLE 285.6232391730938 2258.2640163782507 242.45399932876407
+CIRCLE 1470.115119641001 1585.3998454095379 217.8374715586554
+REC [ 939.7338134280242, 1292.6042417105098 ] [ 1176.5570811350287, 1180.154328399205 ] [ 1241.984619063766, 1546.085056023069 ] [ 752.707693161834, 1503.3416894044467 ]
+CIRCLE 2641.72458217083 758.8681536974192 329.34773416231394
+TRIANGLE [ 1637.4089304437457, 1389.9000521724734 ] [ 1901.511733569667, 1339.1888128208316 ] [ 1933.390794428867, 1667.6564667016637 ]
+REC [ 2334.2771189400046, 118.64132981202454 ] [ 2603.104108975397, -40.887161734238475 ] [ 2611.5758809528916, 372.0898703996529 ] [ 2341.503216781243, 314.8969870538559 ]
+CIRCLE 2941.759855989758 457.39733536417464 186.8324407140342
+TRIANGLE [ -22.892876412619955, 667.5061756583721 ] [ 389.223757532241, 915.2449007626217 ] [ 209.14893612946557, 974.4375864092071 ]
+CIRCLE 3209.7969624826355 223.01499689941082 224.09650544084116
+TRIANGLE [ 166.78466186611934, 303.0177635966035 ] [ 664.2404629923822, 372.2983146789126 ] [ 410.8280510746692, 669.1065669537531 ]

二进制
ParticleFilter/2.pdf


+ 80 - 0
ParticleFilter/2.txt

@@ -0,0 +1,80 @@
+REC [ 2699.6705340132485, 1958.7922938595768 ] [ 2828.733741194955, 2064.8387621465617 ] [ 2801.729674593862, 2135.978326027871 ] [ 2451.8098851354384, 2153.962483158614 ]
+TRIANGLE [ 1556.1549613612951, 1889.5073016541028 ] [ 2079.278358085404, 1734.735024136638 ] [ 1934.4801354659162, 2013.4530749411097 ]
+CIRCLE 1933.5108948073246 1512.0622398783316 210.40455080236498
+CIRCLE 110.73526043090374 2296.861886312079 193.24316998919574
+TRIANGLE [ 2739.130675790674, 1302.6388202641035 ] [ 3064.350073765111, 1258.26439450631 ] [ 3311.814192799665, 1601.6661950836917 ]
+CIRCLE 2653.171714700665 468.70989688672216 196.8636138387579
+TRIANGLE [ -20.512877000253212, 450.90695841878636 ] [ 274.6033227619255, 507.91271234548367 ] [ 447.94258956182557, 763.990698860018 ]
+REC [ 496.2289894678122, 464.201757677374 ] [ 912.2220297557899, 270.12683188678795 ] [ 670.5960543149042, 628.6037154135165 ] [ 338.38384337873873, 826.1607822552778 ]
+CIRCLE 1555.0794523888264 331.73847563865746 145.2927740628815
+CIRCLE 2270.416019324977 695.4944898222157 192.83675979624596
+CIRCLE 3137.4035381598615 1116.8838257717623 283.53502353455656
+CIRCLE 1026.6147407762878 1934.9981065019658 268.2132291877414
+TRIANGLE [ -56.138169960313846, 1192.8884048278026 ] [ 165.29768842685257, 1086.2018006726028 ] [ 90.5743351187613, 1237.54555099442 ]
+CIRCLE 3239.3348359295705 730.8612866473204 144.48491316851926
+REC [ 1297.5371561807256, 2283.187159894724 ] [ 1539.2871784992979, 2154.896611532412 ] [ 1713.4631328988285, 2547.3952742875326 ] [ 1260.2759803234828, 2504.0785346146445 ]
+CIRCLE 1340.2393198515504 1485.8155926227548 241.53644792985287
+CIRCLE 1764.0588219970552 1119.8074500881737 224.99893071255485
+REC [ 1219.6484808465073, 1784.9308078265713 ] [ 1404.8683565288882, 1856.0139992035245 ] [ 1280.8114131743505, 2200.7042228386213 ] [ 1112.416245829441, 1979.9943458398814 ]
+TRIANGLE [ 2764.621097344938, 671.6339952028274 ] [ 3074.067994763886, 438.9971686921897 ] [ 3080.9376402409516, 826.016466755236 ]
+CIRCLE 2226.0129961495277 1120.9245739371797 157.2979494261445
+CIRCLE 39.87852555919776 91.40774693723985 300.6311650738976
+TRIANGLE [ 589.6580003668586, 1734.997649061434 ] [ 816.8041016243477, 1576.4948254400704 ] [ 810.2683990847993, 1841.7508422320725 ]
+CIRCLE 211.52498008056745 601.7961984168079 295.5152064093918
+CIRCLE 1303.7188179230582 2343.68772634171 329.47298044460564
+CIRCLE 754.4969359319537 1912.857904167489 82.24927523479172
+REC [ 1673.6563607787964, 1541.0391151490478 ] [ 2091.0733187625247, 1465.0277439930508 ] [ 2099.098173764353, 1930.0557382324535 ] [ 1672.7097869356307, 2024.1017308241417 ]
+CIRCLE 3090.525441170255 1947.6812306705326 138.56195970387802
+CIRCLE 1797.6855282252347 539.0484866162382 166.25603520812558
+CIRCLE 657.3177569718994 2321.679330644497 49.20316517150058
+TRIANGLE [ 1363.477747665658, 533.5839486337511 ] [ 1691.1140421324742, 502.7862505232617 ] [ 1624.8890515337598, 736.6949040596248 ]
+REC [ 293.3046078738188, 1854.5416339336934 ] [ 624.8821161324381, 1606.6626384930892 ] [ 772.3270773108479, 2178.7092553012562 ] [ 515.6673950166593, 2085.127779856757 ]
+TRIANGLE [ 1401.6968658004917, 84.65513982293763 ] [ 1822.02023563485, -141.0218389303111 ] [ 1616.2547970911965, 153.66001685700755 ]
+REC [ 716.2773797797112, 9.872494270441166 ] [ 1047.0133603608022, 145.5853823280917 ] [ 1159.145578953116, 408.1134300250227 ] [ 745.93432750433, 516.0918327049906 ]
+CIRCLE 578.8208249102166 1957.5010078199118 253.01419637110362
+TRIANGLE [ 2335.8302481085007, 359.1430405334412 ] [ 2778.063132758855, 389.1477335771581 ] [ 2557.119598301518, 543.1647173118038 ]
+REC [ 686.95497605522, 761.9754267807574 ] [ 811.0895218863806, 902.3856414290462 ] [ 1000.2828750511318, 1003.3149478043176 ] [ 651.8578597307483, 1027.041216523936 ]
+REC [ 1535.003886479169, 472.04140365852413 ] [ 1713.1994682710713, 223.90339907049042 ] [ 1864.4976751688057, 695.2799613478378 ] [ 1480.7049353586124, 769.5773140647373 ]
+CIRCLE 2487.910541781198 2373.3229833959067 128.55498577661817
+CIRCLE 3125.707400422459 1339.0161499356007 194.16049616388295
+REC [ 1781.3592437794805, 73.50707650813743 ] [ 2107.200963529285, -79.91478469556881 ] [ 1897.8676744307518, 256.10510093809705 ] [ 1684.1369971180038, 173.22514692235615 ]
+CIRCLE 1852.2151068882324 1466.1298287909729 161.38999130312217
+REC [ 2436.6739289199677, 116.46111443166538 ] [ 2602.6367210143126, 78.02986341800477 ] [ 2491.198192112759, 449.64660039788697 ] [ 2181.717789964039, 420.37891688623614 ]
+CIRCLE 1606.5145100965763 1742.053912336481 289.1921317587919
+TRIANGLE [ 842.0803638757709, 1965.2186449258832 ] [ 1157.582440386322, 2046.3501759748128 ] [ 1140.3964604732994, 2273.3137171337075 ]
+TRIANGLE [ 1378.8549430467594, 1205.3050210233935 ] [ 1729.6589264733486, 1237.0280511935648 ] [ 1757.4934912941496, 1432.6137968620217 ]
+TRIANGLE [ 780.1291382174054, 1394.3240805476478 ] [ 1134.4555323032887, 1512.2289418002272 ] [ 1247.1218016865955, 1841.4996731324813 ]
+TRIANGLE [ 1068.0085657588, 107.87972354710884 ] [ 1548.1531479343691, -134.67001241425035 ] [ 1352.5797863247133, 243.91393760426786 ]
+TRIANGLE [ 710.8305485212475, 1307.7414142293658 ] [ 1055.692346248054, 1217.3287671711967 ] [ 996.6117975777166, 1723.1417278319718 ]
+TRIANGLE [ 659.0034383325719, 1960.1642367766485 ] [ 1121.826694191868, 2018.3383934891297 ] [ 944.276576613133, 2367.254296621768 ]
+TRIANGLE [ 2563.8292235582126, 1974.1745154360278 ] [ 2975.8656903328433, 1716.8708342295167 ] [ 2944.628722429769, 2062.222466632281 ]
+TRIANGLE [ 203.5179680882874, 1712.5719542484132 ] [ 482.6211435051205, 1802.5975152954052 ] [ 389.2184952999853, 2151.8529803798097 ]
+REC [ -274.185486589158, 2028.169537605193 ] [ 32.70180724076448, 2219.4345569232573 ] [ 197.36062738167635, 2379.454946901767 ] [ -200.9331043562245, 2498.942342070496 ]
+CIRCLE 1038.9612508833798 152.62233962249405 259.4444185553724
+REC [ 1436.3177415107057, 282.49247185015327 ] [ 1539.3116027096264, 421.60698846041464 ] [ 1729.1274676469222, 566.2922609044166 ] [ 1347.4241727006374, 657.7952996065886 ]
+REC [ 349.51486674325565, 1978.5068449860019 ] [ 645.1631157927219, 1951.291637255958 ] [ 705.279793683364, 2287.809961711408 ] [ 236.1928459052459, 2109.8605946918724 ]
+REC [ 3092.4421117941583, 1064.2422170163 ] [ 3526.7515210450238, 1214.8849922887182 ] [ 3510.837160369203, 1490.2185188729813 ] [ 3140.994752058183, 1614.0095464691785 ]
+TRIANGLE [ 2582.828650162235, 2240.3750010924614 ] [ 2880.112188951819, 2336.860736132364 ] [ 3031.704459142087, 2444.8139010114164 ]
+TRIANGLE [ 230.02087296904338, 1696.3531035261647 ] [ 541.6377284140434, 1425.5093777531301 ] [ 340.5194353318558, 1779.2013739278852 ]
+CIRCLE 3017.038891589436 1356.5727811895963 171.85546423283483
+REC [ 32.066883945965586, 850.5497130853589 ] [ 157.23045656932774, 582.740642401257 ] [ 183.0150950027117, 879.8514583525779 ] [ 71.4973856000613, 1135.738611626181 ]
+TRIANGLE [ 2687.5780008983343, 1765.4870320868217 ] [ 3075.594582252177, 1828.7936255556192 ] [ 2801.536142578354, 2029.9983492493736 ]
+CIRCLE 476.2771021954421 1839.8471439692266 86.07074011700404
+TRIANGLE [ -70.77468982044363, 1649.243468010953 ] [ 273.2407985524926, 1806.8521517385095 ] [ 340.14814743449534, 1938.1908568473705 ]
+REC [ 460.8252401929725, 628.4857763215853 ] [ 938.9176807172432, 447.7836592193029 ] [ 833.9956061422832, 948.4801206327361 ] [ 716.4459100926757, 932.0216816098351 ]
+REC [ 1729.6814792247958, 1310.7469933522389 ] [ 2241.0789342407425, 1521.0938985677744 ] [ 2266.3714039716924, 1875.917175885572 ] [ 1994.1882198116753, 1725.9349007358533 ]
+CIRCLE 1866.2860495232615 1448.1876381117493 243.4473051412633
+TRIANGLE [ 2296.6213191321613, 433.9340344397833 ] [ 2627.0101632298897, 537.9023618776398 ] [ 2444.59642252784, 817.3392092715533 ]
+CIRCLE 2619.9882812067553 1093.7752156499575 102.52111030764064
+CIRCLE 2878.4294591630364 1420.5538919451667 328.18925546668055
+TRIANGLE [ 1454.083086130603, 2037.0275221319432 ] [ 1736.8652580868954, 1970.906719181183 ] [ 1595.662884735879, 2441.8988477919634 ]
+CIRCLE 3137.8562196957737 1175.7837574143928 118.92305589169337
+REC [ 2496.6394307882238, 1099.876638200463 ] [ 2724.0001121584323, 1249.8520928729965 ] [ 2952.406513369906, 1313.7407579909839 ] [ 2535.6397166351912, 1323.2477615030427 ]
+TRIANGLE [ 2450.3238321302715, 1756.8511413214044 ] [ 2742.1448388239837, 1551.7846031334495 ] [ 2698.330359839878, 1855.9991849433197 ]
+TRIANGLE [ 1392.8676596796895, 1056.377970696072 ] [ 1418.8458015862748, 876.3583081116085 ] [ 1712.169210337806, 1381.2116662637875 ]
+REC [ 3023.9048234450443, 459.96739179463236 ] [ 3514.96034103304, 670.2383163533781 ] [ 3445.937782973415, 779.5610301556638 ] [ 3152.0320501897845, 799.816073696651 ]
+REC [ 2445.089614208352, 2072.448857784657 ] [ 2863.4138204911633, 1898.27245023441 ] [ 2806.6552051822955, 2428.1825924605732 ] [ 2436.518171307243, 2227.8909451158474 ]
+REC [ 2650.2817952129285, 2138.6305675712465 ] [ 3015.6207969982183, 2114.2659445060135 ] [ 2853.467705641002, 2330.7084366665044 ] [ 2710.727243732698, 2338.8035710230033 ]
+TRIANGLE [ 2408.6965381640407, -53.10959223375748 ] [ 2510.084308213306, 28.126910020685102 ] [ 2744.1108772366956, 226.94729869082906 ]
+REC [ 1641.8527407475128, 444.9430892994465 ] [ 1938.4741989380893, 602.0365801341677 ] [ 2007.1628031904513, 834.6653203691227 ] [ 1681.3132144651308, 742.1187344405705 ]
+CIRCLE 963.5926461439717 1156.6456366229675 321.94986170909397

二进制
ParticleFilter/3.pdf


+ 80 - 0
ParticleFilter/3.txt

@@ -0,0 +1,80 @@
+REC [ 1104.6730699340585 830.5057939656335 ] [ 1320.832535070465 617.5415378053157 ] [ 1387.7704969565602 1024.23998372566 ] [ 1237.6363445825668 1001.8382846306054 ]
+REC [ 3085.6492684721134 1893.0268439906552 ] [ 3425.0274913735448 1963.77319231255 ] [ 3493.756922229999 2303.1633918405714 ] [ 3254.7836684905487 2188.1175736247847 ]
+REC [ 1210.8047256183424 228.7433329047821 ] [ 1602.070541170874 142.0814022043292 ] [ 1323.4572465267702 431.8790083238405 ] [ 1218.402008543643 376.04969012280844 ]
+REC [ 2361.133682258148 1813.12749545644 ] [ 2842.0668992478604 1761.4013280159402 ] [ 2708.6816259923407 2302.6289506154403 ] [ 2511.914377794249 2080.5962007516273 ]
+CIRCLE 594.4583813632944 1789.0382588821224 147.62611441226574 
+CIRCLE 1185.1713930447213 546.5682154594017 301.80159199296065 
+REC [ -32.22039072452529 389.25290159194526 ] [ 302.13305064817416 463.1453754446829 ] [ 343.3957816912903 620.1796240084099 ] [ 22.359066168682233 636.4653127564892 ]
+REC [ 309.57187843348834 836.6572700062502 ] [ 733.5022085883973 642.9400519650662 ] [ 630.7430091717697 1170.9625784000064 ] [ 214.70767877112957 1043.2356271824274 ]
+REC [ 2609.5360494025595 284.033309945373 ] [ 3029.635950446159 173.34425564686228 ] [ 3177.8250360354054 553.3530264763142 ] [ 2830.4639815630967 476.1011337243683 ]
+CIRCLE 1299.3780194548217 1699.0704562739747 119.1374022124006 
+REC [ 1376.9490999048403 870.2676581236497 ] [ 1647.149105920938 976.5992967738515 ] [ 1748.9429895017613 1206.3433886902496 ] [ 1366.055489036164 1374.8198821237424 ]
+REC [ 2983.242008695752 117.8272960093573 ] [ 3327.9412146128957 320.58270618211964 ] [ 3448.6108828854235 645.2599593363085 ] [ 2974.8348027497086 437.80793460063035 ]
+TRIANGLE [ 2965.375518118367 1035.3236827768972 ] [ 3162.1968352117874 1163.921790610253 ] [ 3216.6233101757634 1273.0432063442724 ]
+CIRCLE 1863.3996800267153 1180.6865865697555 158.41833649955439 
+REC [ 1796.307559063655 1853.108450303287 ] [ 2174.038256736053 1775.9853985184138 ] [ 2217.09410410984 2263.571332190696 ] [ 1933.7463447645268 2344.9564048442535 ]
+CIRCLE 1704.9732228850467 987.6807817360965 63.04166924912162 
+CIRCLE 2749.5650794669214 686.145160268612 256.2893039615028 
+REC [ 2683.418487593392 694.3254528484541 ] [ 3122.5141211628716 556.3315371321748 ] [ 3178.8461748368572 970.2191440019034 ] [ 2849.445712367016 861.1943923714934 ]
+TRIANGLE [ -35.36955640309906 1341.5599998095447 ] [ 297.83928165465215 1356.9466824411916 ] [ 302.64291450516697 1575.433552692164 ]
+CIRCLE 1575.4918882608383 580.9122560485814 188.00617432429317 
+REC [ 610.1099330741641 1764.8055989568938 ] [ 673.4181864760476 1506.941800019231 ] [ 642.0577224556789 1949.0802121697798 ] [ 532.4260435072896 1912.790360475796 ]
+CIRCLE 1986.3173887785313 521.720239726158 89.69310555160277 
+CIRCLE 2190.786425187669 224.3939990375569 228.35974704056167 
+REC [ 2680.0542019637496 325.21248751402743 ] [ 2913.3914577740884 364.893773354108 ] [ 2972.815757631966 684.0980643310708 ] [ 2735.1767057183383 713.6549686064567 ]
+TRIANGLE [ 627.1432963127548 1582.058881469409 ] [ 897.7836955419742 1387.162175143546 ] [ 740.2668612062788 1838.500950781953 ]
+CIRCLE 2341.5123063638234 666.5672103166613 116.49044031531241 
+CIRCLE 2460.367114851833 1908.9691576129076 223.88827833583971 
+REC [ 1311.5191158178263 1921.5512355425942 ] [ 1561.0398319917163 2087.297043537401 ] [ 1534.7090051022453 2244.2662294845527 ] [ 1213.0531229086755 2393.729192749086 ]
+TRIANGLE [ 2899.2773914837876 1919.0522299682127 ] [ 3133.415016627577 1679.3040674598342 ] [ 3170.250690182953 2121.88934581857 ]
+CIRCLE 435.6211438325009 2156.1623112101383 130.91787238327828 
+CIRCLE 2920.847973232951 756.9467487652578 251.08599679668794 
+TRIANGLE [ 2291.4278452832245 134.56794432911033 ] [ 2739.3316159790174 247.169689995343 ] [ 2582.461248781076 690.6455054032926 ]
+CIRCLE 2988.752895225475 339.08837702368686 181.3012290234833 
+TRIANGLE [ 307.68765590986493 2054.773189235596 ] [ 763.2342491410477 1872.6702612729075 ] [ 684.0194342647115 2122.854631155637 ]
+REC [ 2075.9185684860736 1975.3198991985712 ] [ 2583.432369270447 1854.7267076925355 ] [ 2483.2240953160344 2255.2400402063404 ] [ 2106.6981874615035 2019.3375809051952 ]
+TRIANGLE [ -54.218780019697164 1220.7971727238055 ] [ 343.5038973285504 1349.9450984831976 ] [ 381.264033519599 1480.9640582790755 ]
+TRIANGLE [ 1106.9819525992314 1455.848692462999 ] [ 1555.8094545135157 1415.1217757045474 ] [ 1669.70624865567 1634.4183643477222 ]
+CIRCLE 246.29438892117025 1725.6995715299588 133.64923045749453 
+REC [ 268.7559896059096 1667.1569873106778 ] [ 509.9453304669002 1723.506306074187 ] [ 358.25542883340336 2022.4261657941956 ] [ 88.52342830747682 2156.7225812332695 ]
+CIRCLE 308.117398552392 756.8570787260674 95.60969989136629 
+REC [ 1992.6515990985324 71.66119782570905 ] [ 2139.7870140883574 254.66937311877274 ] [ 2375.4004673905174 442.22147380530214 ] [ 1858.7651212278772 268.42354945223985 ]
+CIRCLE 725.7243788810902 2154.9490704873665 38.46271560562117 
+REC [ 1720.8562639523252 1750.0661576528062 ] [ 2131.420076108801 1566.2954620676232 ] [ 2069.149898745436 1918.5626178125808 ] [ 1624.348736873166 2060.5351911048756 ]
+CIRCLE 2066.4640935819643 2320.7027521201267 159.89294212671547 
+TRIANGLE [ 1573.785117526005 149.74240885666882 ] [ 1588.3636498192636 365.2965258951063 ] [ 1866.1448934233674 584.0329462476798 ]
+TRIANGLE [ 2028.3394148984423 954.9911388663935 ] [ 2276.0042496117717 947.6330124026927 ] [ 2478.0052497120337 990.5869931160878 ]
+REC [ 623.0873758793824 537.6057671674444 ] [ 903.8696469226024 333.0484938398845 ] [ 1030.346430853346 803.7600637586735 ] [ 632.6871350989926 731.0449371434792 ]
+REC [ 1040.3871780803308 29.506490368495918 ] [ 1178.7486381328602 97.64053037256963 ] [ 1424.874317690954 333.7113209211211 ] [ 883.7999254411119 603.9101077348064 ]
+REC [ 2065.313951717186 1690.0421701411597 ] [ 2402.061611262751 1460.311587774234 ] [ 2476.1481500207483 1895.1394573867917 ] [ 2004.4866422876169 1825.5414494072884 ]
+TRIANGLE [ 1418.8981723647667 213.9500505669742 ] [ 1709.4115700910204 181.85514301631613 ] [ 1730.0798938030716 503.5640032084615 ]
+TRIANGLE [ 2881.953819080865 2036.6009089707993 ] [ 3157.391132503779 1885.5639253001734 ] [ 3119.7574634358753 2386.065450235793 ]
+TRIANGLE [ 3188.0143694309068 1975.0795776256705 ] [ 3418.0120480897713 2230.0407316133196 ] [ 3211.0321456989395 2359.164082212198 ]
+TRIANGLE [ 2274.731750925179 -9.395931360358997 ] [ 2798.185848255651 -102.98827688776831 ] [ 2614.359594505513 277.8290975437958 ]
+TRIANGLE [ 1367.0825163556874 725.9656599749683 ] [ 1431.1648176088834 957.6520266295042 ] [ 1637.929698385684 1070.8290315397637 ]
+REC [ 60.951011510097686 1974.2321638173642 ] [ 494.9603887171745 1771.4394467597185 ] [ 389.22694264773236 2174.4492556100827 ] [ 87.93983942913184 2264.184425398248 ]
+REC [ 3325.672983840059 1574.0156751255547 ] [ 3577.7376680607013 1506.494665109592 ] [ 3591.0961072505916 1797.1958611268017 ] [ 3249.1461642815675 1787.0778820440992 ]
+CIRCLE 2011.9729344103662 2331.40049568302 250.3527578120743 
+TRIANGLE [ 3124.4350299165794 1456.4986520970206 ] [ 3339.0151647428434 1360.821620904606 ] [ 3468.1050035480307 1665.6176724951224 ]
+TRIANGLE [ 762.8344452045361 798.3159779557661 ] [ 936.1990939997949 859.7180229353286 ] [ 1131.2017198074325 1105.8757197776256 ]
+REC [ 3180.7476856160742 2023.8627599054535 ] [ 3619.4596931536703 2162.7213913880364 ] [ 3555.7284067572737 2339.7324703159543 ] [ 3160.124911075279 2421.3461926596337 ]
+REC [ -60.767160902118654 1554.8451739166403 ] [ 70.28060919876347 1512.9309575180148 ] [ 176.51203067540916 1684.651049779091 ] [ -180.50897121829794 1885.682077708419 ]
+TRIANGLE [ -10.669992028004543 624.0699765375666 ] [ 348.35584325796964 497.62378730437166 ] [ 88.20724187154633 724.7194474625926 ]
+CIRCLE 1314.2713744165942 2092.8842554167995 180.51305551173922 
+CIRCLE 2174.309431847855 1055.812841162661 293.53423321784777 
+REC [ 133.7641666288451 1599.4103662269652 ] [ 278.1610636401616 1656.9353183006917 ] [ 342.0985345875167 1920.202096716525 ] [ 80.3109190593713 1862.2479485888307 ]
+CIRCLE 287.5889385844061 379.96932576166296 182.11318334835488 
+REC [ 2006.1865265977456 299.85836473220485 ] [ 2458.436984571951 121.91178821439146 ] [ 2461.9484542157466 520.639985385303 ] [ 2043.862229590724 396.0866212312926 ]
+REC [ 1289.2255686827596 717.1189726941136 ] [ 1438.5570019413278 838.8459605968184 ] [ 1397.8696726252367 1079.4412324997377 ] [ 1363.2348469494345 894.0199655610227 ]
+CIRCLE 563.3223015782418 1396.7180830856469 108.7440659240511 
+CIRCLE 3286.2392576829798 1712.6259091694087 70.20901673826447 
+CIRCLE 769.2717085315122 570.4708150679702 309.93537471336936 
+REC [ 2078.0148504913227 -12.10007309888067 ] [ 2328.5014801986636 186.67359760490834 ] [ 2420.611970558808 440.54336477190805 ] [ 1934.3612971773773 343.1247322797016 ]
+TRIANGLE [ 2594.1875036642737 2078.9764698521126 ] [ 2913.4278593212043 2132.085450535376 ] [ 2885.7915726662427 2283.3992349807822 ]
+TRIANGLE [ 3062.2441282947325 2096.4047172918936 ] [ 3367.6269263748463 2164.302073009263 ] [ 3466.0948123303338 2337.447329348817 ]
+CIRCLE 2352.824588105245 2063.317735661612 158.21152403897747 
+REC [ 3072.3904086732314 843.0366681567609 ] [ 3146.3906338999186 725.8341859368535 ] [ 3164.128948315878 928.8115624326826 ] [ 3035.4168659784127 1074.4991470147538 ]
+TRIANGLE [ 1891.8662493678457 1791.0120900794097 ] [ 2319.6825541676717 2008.4307002885362 ] [ 2201.666260451779 2058.033517842357 ]
+CIRCLE 53.612758639672485 1187.1378203696443 292.7500984671262 
+CIRCLE 610.1421458350096 162.00898838497847 81.27863861529471 
+REC [ 631.9772462821603 829.6519217281209 ] [ 748.934438552403 787.7400020673148 ] [ 792.6219344330199 1105.545546022954 ] [ 509.59383258088405 1197.8342758290607 ]

二进制
ParticleFilter/4.pdf


+ 80 - 0
ParticleFilter/4.txt

@@ -0,0 +1,80 @@
+TRIANGLE [ 3137.7636323001475, 576.560615462425 ] [ 3207.1550390057023, 533.2950830591976 ] [ 3440.4511619075356, 864.4098932864533 ]
+TRIANGLE [ 2983.7223406779276, 1846.5658894008413 ] [ 3311.6254746068676, 1700.2169613810927 ] [ 3138.756752963077, 2224.8699252284787 ]
+TRIANGLE [ 2872.38384930007, 1431.0102002474682 ] [ 3424.786864023089, 1426.9660505142353 ] [ 3241.5937710380126, 1881.7455375606253 ]
+CIRCLE 3269.022508284203 722.5963693832128 245.81365906431483
+REC [ 39.409652203799396, 958.6398745320578 ] [ 530.3127273176874, 901.7875443231806 ] [ 387.9704492934833, 1401.5018101904607 ] [ 225.54351566680992, 1405.573770699541 ]
+REC [ 739.9606292884796, 173.10721313160042 ] [ 1069.8103336238012, 7.535419993984874 ] [ 1087.8193211272803, 391.3295363852732 ] [ 737.1572876141333, 190.76359940067977 ]
+TRIANGLE [ 40.10759726773159, 881.602324621025 ] [ 533.1537890671607, 976.3291336997293 ] [ 504.5445520247644, 1203.6573748243143 ]
+TRIANGLE [ 2415.8823659661084, 1119.170834913099 ] [ 2632.9986232387646, 1119.0279033118813 ] [ 2681.149120942881, 1406.1350333821479 ]
+TRIANGLE [ 1952.7611893140147, 809.9498495550183 ] [ 2199.499264938652, 932.1398399554056 ] [ 2185.771983528359, 1210.665806210553 ]
+CIRCLE 709.3336241867559 1077.8952001360844 223.66499095423853
+REC [ 180.72814241925252, 1151.4656996908066 ] [ 667.6196358974989, 1071.908058900545 ] [ 508.2989218892891, 1533.9321985525223 ] [ 236.02102060157955, 1463.3573045950964 ]
+CIRCLE 2538.4412552072095 1941.7517667779696 113.90767140926465
+CIRCLE 1935.5491732319974 1755.385283436889 254.25177419087237
+TRIANGLE [ 916.9000397094594, 1469.9249145170652 ] [ 1234.0628364760162, 1346.91619550902 ] [ 1032.8207116571148, 1731.758402618024 ]
+TRIANGLE [ 1616.630284091842, 1984.9345881936888 ] [ 1884.6045013876092, 2075.942286444512 ] [ 1752.4008333210315, 2503.6597607291014 ]
+CIRCLE 2239.560133548195 1686.86225943641 126.85195440128834
+TRIANGLE [ 2961.075933723296, -170.1927257177473 ] [ 3059.7443115344663, 76.04565556214509 ] [ 3061.5195419064694, 236.77444486165896 ]
+CIRCLE 2813.9199928777675 1480.9255637901945 151.1521303177447
+CIRCLE 1833.993066035356 1776.1217997299673 193.93944954867567
+CIRCLE 3094.2896320325904 1057.3874510578657 213.3741215182119
+CIRCLE 809.6088096667384 677.4928622768929 326.81894963881825
+TRIANGLE [ 2169.163556810202, 1722.4272125216385 ] [ 2599.29741260716, 1732.5309250698122 ] [ 2534.3481654595835, 2070.1724508625034 ]
+REC [ 1381.5602127436814, 357.4154133008024 ] [ 1682.3089837926523, 390.0219617848789 ] [ 1759.5974139601017, 514.3179678566916 ] [ 1537.4505756620365, 433.45256932286895 ]
+CIRCLE 974.0344860394946 571.628382587691 105.91967978305394
+CIRCLE 211.55461990650903 2033.306817428001 324.62022503732425
+CIRCLE 2988.4492526043027 527.1519957109919 230.58902283885575
+TRIANGLE [ 346.9336315383745, 1119.9650470209594 ] [ 592.7878768958212, 1320.7702380995627 ] [ 560.6473363169933, 1505.3440647797993 ]
+CIRCLE 1852.026770071196 732.0193640624657 223.7941300914779
+TRIANGLE [ 3245.812610745584, 996.3400743594127 ] [ 3412.781714717734, 851.7826215509774 ] [ 3542.5420191294297, 1120.9962251646195 ]
+CIRCLE 308.1270021489642 2214.645271550502 206.92140085515658
+TRIANGLE [ 1630.1154497771668, 267.0719242811808 ] [ 1907.8415357162116, 101.47213588858529 ] [ 2021.6911868564166, 368.36034538168417 ]
+TRIANGLE [ 977.8656625565808, 1780.8372315871509 ] [ 1154.935716746724, 1540.5752352591257 ] [ 1067.9598761417158, 1854.9209959202797 ]
+TRIANGLE [ 2849.610554087416, -155.35068322672194 ] [ 3041.6736886689464, -114.22195365172891 ] [ 3030.020244694464, 68.93434423478519 ]
+CIRCLE 3062.2595294038206 460.6258918671062 76.40093349298607
+CIRCLE 1601.668518673181 63.13041973550382 316.344824781629
+REC [ 1005.6848257848968, 221.151608096943 ] [ 1319.194844672293, 84.7292765377394 ] [ 1406.3749122333088, 497.9185349202826 ] [ 1065.289054990885, 532.4305028395825 ]
+TRIANGLE [ 1719.9902682273741, 1812.3821456785322 ] [ 2095.948082606425, 1674.5091862162783 ] [ 2030.5072261772027, 1968.6299992839517 ]
+REC [ -107.55035000607043, 1723.8216054352904 ] [ 253.24540304943977, 1625.1259630793982 ] [ 411.76909278220114, 1853.007504685863 ] [ 131.2023751527517, 1842.5364113777491 ]
+CIRCLE 2596.7942444334353 350.1575698680991 72.5789172306747
+REC [ 2219.5690852048747, 2079.740682610314 ] [ 2595.755378398771, 2183.9652792980432 ] [ 2582.0653438778327, 2590.919746884712 ] [ 2400.4924790513733, 2490.470483427142 ]
+CIRCLE 900.5994832284825 1214.357091453164 312.59327926091
+REC [ 2625.680456593228, 1861.793704091371 ] [ 2994.7048480555713, 1756.3671370800673 ] [ 2869.2341886395634, 2234.7991778688483 ] [ 2683.0767337034113, 2038.8629266723467 ]
+CIRCLE 153.51988316415103 780.643871714 208.81731587661446
+REC [ 365.2499491411886, 1602.4761909795109 ] [ 872.5601503767455, 1752.1639791654852 ] [ 870.5131311967841, 2088.855897821407 ] [ 559.6074739487975, 1976.4140035094242 ]
+REC [ 1573.1224089659495, 339.23611408963245 ] [ 1789.3122643917927, 208.45467101500623 ] [ 1758.151452845738, 484.654696578608 ] [ 1488.970966628815, 698.9087175076004 ]
+CIRCLE 2549.3576443864013 1265.59892512276 269.8901673196638
+CIRCLE 2202.786965605276 2140.7186678381427 230.32102964001098
+CIRCLE 2420.1813396351213 1535.7469600661439 315.3733281896341
+CIRCLE 35.668721330825186 852.4151991346622 322.1697453471462
+CIRCLE 1341.37061501414 651.841593728632 243.77450693989698
+TRIANGLE [ 423.66601671452753, 1654.5459675037614 ] [ 761.8237434845989, 1514.0408009683458 ] [ 503.9859618621499, 1803.2246308864383 ]
+REC [ 325.9955004045911, 563.1353972152347 ] [ 548.9581235756569, 640.5984769170295 ] [ 443.3736739925938, 905.0446752667057 ] [ 185.21169452475527, 826.9128876879857 ]
+REC [ 1145.0618831041777, 1096.0405497793267 ] [ 1380.3673463435653, 899.9804366888721 ] [ 1454.1999322087463, 1259.1002664492069 ] [ 937.7772523498911, 1218.6105716510197 ]
+TRIANGLE [ 750.9278675931644, 676.1067740469592 ] [ 1038.4570808290687, 737.2684449903905 ] [ 1046.978710407523, 901.5068876332925 ]
+REC [ 175.87505919659384, 108.23759605716481 ] [ 233.10216172524548, 196.4385868432665 ] [ 327.6438879563168, 399.65641266630564 ] [ 158.9689725601675, 472.69145734325315 ]
+CIRCLE 3288.860715832394 2300.8638817595843 226.7477945376589
+CIRCLE 534.5980265250905 38.87021673351623 144.2860985417672
+TRIANGLE [ 123.16138868304627, -139.24543513106252 ] [ 371.29678858854163, -12.719356840690239 ] [ 434.65407164156534, 138.26896388767898 ]
+CIRCLE 832.8675367073488 688.0138613544262 98.12954005906529
+TRIANGLE [ 575.0586017111268, 773.9602527183936 ] [ 935.2057362471201, 844.5971742138346 ] [ 880.4098798894137, 1017.8780329965067 ]
+TRIANGLE [ 3146.5946649934713, 128.86233139043748 ] [ 3352.8269085235383, 89.73766081755595 ] [ 3592.01956832676, 300.7111307006421 ]
+REC [ 1097.9402065271815, 1956.828463694871 ] [ 1616.1042839029972, 1874.9805302962084 ] [ 1507.18721661417, 2190.310225177278 ] [ 1111.29832098791, 2089.730381398069 ]
+TRIANGLE [ 1086.0517333622652, 425.5381904537572 ] [ 1396.0683521072162, 305.842806142656 ] [ 1483.2728862613349, 622.0884057374185 ]
+REC [ 2439.5440582079423, 1790.4092115410592 ] [ 2625.8292836220894, 1658.1511077780003 ] [ 2587.5962375087133, 2084.5684663134007 ] [ 2323.2194439233594, 1991.0922052757164 ]
+CIRCLE 1707.0274689330602 39.671727624656185 52.612508110503455
+CIRCLE 569.6226866597505 1848.5663402785983 218.91217043117982
+TRIANGLE [ 875.7701222292437, 1562.1394354708025 ] [ 1026.1532526111248, 1674.6601230016997 ] [ 1123.3701401293245, 2093.3983734508543 ]
+TRIANGLE [ -196.53038991474645, 1200.2118797571154 ] [ 211.99065844788402, 1308.3854535030284 ] [ 258.6498100649922, 1698.0284093932864 ]
+TRIANGLE [ 2816.3989941325553, 88.00068821476319 ] [ 2982.1972027707434, -165.97466345013902 ] [ 2972.7421253824227, 147.5080558345678 ]
+REC [ 2614.6682672671714, 1850.7664288274468 ] [ 3202.029067508974, 1715.701918749497 ] [ 3110.035311660537, 1950.77155028824 ] [ 2810.268989446677, 2135.182831457136 ]
+REC [ 807.9241830812033, 1405.3790172771357 ] [ 900.2655894405317, 1259.5130284120962 ] [ 964.113390574242, 1597.3259874861408 ] [ 658.8815546222132, 1512.8776243391885 ]
+TRIANGLE [ 99.89072001624157, 667.0735426850985 ] [ 651.6747750210113, 693.0063741314812 ] [ 690.3534738951383, 963.0393790312039 ]
+TRIANGLE [ 266.00304165162544, -12.3201030785564 ] [ 601.6367786432508, 14.621918764340649 ] [ 653.4983034143022, 387.39836371417107 ]
+CIRCLE 1431.2992910183564 2323.9514197190874 294.22073984181753
+TRIANGLE [ 993.080587995848, -12.591093795504474 ] [ 1401.7023152150473, -147.12624738962117 ] [ 1219.6158830212928, 161.03293946564693 ]
+CIRCLE 968.1184952039592 569.7915145536052 238.26442034023816
+TRIANGLE [ 1825.7189426016687, 701.7884207637652 ] [ 2062.326647810004, 563.7273627643418 ] [ 2149.0555848101603, 960.4482694811945 ]
+TRIANGLE [ -152.38420353124152, 321.52000486112746 ] [ 171.08712682476713, 376.92224893710556 ] [ 152.02127489364474, 682.3393384389906 ]
+TRIANGLE [ 259.3910672031524, 348.47343336006776 ] [ 537.0499958711088, 392.86331028472546 ] [ 376.2428519572747, 736.0136971491509 ]
+REC [ 3116.6784962617107, 1265.1783577388335 ] [ 3494.4332494921487, 1288.2718637356556 ] [ 3249.050661596573, 1538.7188481459514 ] [ 3136.003463163712, 1394.8134383560857 ]

二进制
ParticleFilter/5.pdf


+ 80 - 0
ParticleFilter/5.txt

@@ -0,0 +1,80 @@
+CIRCLE 2481.5653326646798 1027.0273381072027 274.77966679699887
+CIRCLE 3156.437458907596 1322.7172578685236 299.2702874264074
+REC [ 1561.6818279527931, 1461.1281334859482 ] [ 1828.3485876903726, 1459.6836667873995 ] [ 1733.9741348300815, 1749.1120555621662 ] [ 1459.0739715050415, 1918.7731460895093 ]
+CIRCLE 1341.7419184985674 2294.2447453010377 99.67328938534996
+TRIANGLE [ 66.20249484904298, 1871.8918996741781 ] [ 329.51349414932656, 1810.4201376650658 ] [ 326.71054780798727, 2179.996742049409 ]
+CIRCLE 3207.9373668815406 81.48001743775637 68.87928295637244
+CIRCLE 3044.9993382532843 1663.0993732079708 129.43501717172597
+TRIANGLE [ 2993.1126693155666, 965.972123176643 ] [ 3247.1427148451257, 1075.8031734851227 ] [ 3245.659494996233, 1351.9708745902499 ]
+TRIANGLE [ 1135.383227199458, 2077.7399365612428 ] [ 1524.193341455656, 2178.710851587204 ] [ 1264.9077227993273, 2253.419491036305 ]
+TRIANGLE [ 391.6276606062593, 2088.5836309454025 ] [ 737.703988563396, 2173.55041971531 ] [ 602.2771278989884, 2377.562225556822 ]
+CIRCLE 2322.069385655711 2101.2227847729473 96.96985213794615
+TRIANGLE [ 3182.9368425917783, 1507.138960313754 ] [ 3367.184020698023, 1345.5409214909423 ] [ 3400.954564519501, 1768.8361577982512 ]
+CIRCLE 610.5119394710298 646.282693453018 304.8142284250189
+CIRCLE 2972.8471601536335 1481.978679259148 35.93262534750967
+CIRCLE 2143.5765907592845 2226.3837803038446 60.2544301014686
+CIRCLE 1184.1383716420005 2308.1596799544795 95.71756923216807
+TRIANGLE [ 316.5282542981683, 587.7088219710049 ] [ 470.71845893572436, 662.2677336236698 ] [ 477.66254325711094, 883.8345113723825 ]
+CIRCLE 15.193783025960446 304.1919775541181 263.3692999434426
+TRIANGLE [ 824.7845309909313, 2038.8495172258029 ] [ 907.8819709743556, 1822.862677712077 ] [ 1046.8589335305132, 2346.382770071407 ]
+TRIANGLE [ 1271.1835420634015, 1556.0960147657681 ] [ 1636.224499158122, 1683.3934110494179 ] [ 1572.9573628830692, 2047.9027522449678 ]
+CIRCLE 1421.7010193879084 497.1699703363958 89.60129340694031
+CIRCLE 3356.4780221964743 1924.2693752778882 194.3963126243167
+TRIANGLE [ 1074.134839834468, 397.6703195264879 ] [ 1528.1670583500336, 393.6463809309412 ] [ 1518.4670690825099, 627.2003896576069 ]
+TRIANGLE [ 3273.442732273315, 913.3026515400666 ] [ 3467.2094466200633, 859.2334715542579 ] [ 3495.8093721101977, 1346.7398324108767 ]
+REC [ 2409.197598790658, 2169.4582329153286 ] [ 2973.4863194075683, 2113.788855609941 ] [ 2839.948166500307, 2282.6055856550943 ] [ 2563.917350911151, 2331.881102947278 ]
+CIRCLE 1114.3556403460623 501.39539777550095 295.7692769225534
+CIRCLE 2834.7771826042367 1684.8844191875148 39.6344830965053
+REC [ 2431.9882710526626, 259.3244706410692 ] [ 2933.739251507925, 168.78461195231387 ] [ 2827.8113409731727, 597.0114682830362 ] [ 2556.3357945926477, 643.6543057028106 ]
+TRIANGLE [ 2502.647304244243, 1084.787441213387 ] [ 2969.8986158943344, 894.9657758371818 ] [ 2774.4442509050596, 1183.5268879268021 ]
+CIRCLE 1233.332051209139 120.01766114516339 244.621937498376
+REC [ 1765.1218871899582, 364.22484106283616 ] [ 2232.046910087967, 602.4407118215685 ] [ 2176.74291092454, 763.2324419121209 ] [ 1740.2696521649784, 705.3773754625574 ]
+CIRCLE 3031.6351184968667 734.1996638869001 225.25360788027382
+CIRCLE 1038.8388055855291 1495.5274385686673 321.75187777374686
+TRIANGLE [ 1469.1973497784377, 1703.2686656883393 ] [ 1756.9890004218048, 1901.201348527532 ] [ 1738.0459561668665, 1959.309547001852 ]
+REC [ 1006.5516339174551, 84.98743254067278 ] [ 1317.3885021476194, 273.8638935304133 ] [ 1471.386527066245, 373.09913226378404 ] [ 1069.6264358593808, 454.0455953769024 ]
+REC [ 405.7815374399286, 1915.4014987447827 ] [ 707.3231179134689, 2059.415242555189 ] [ 561.4014274336423, 2405.786094639568 ] [ 304.41769151462165, 2405.9900111751786 ]
+CIRCLE 3147.230970149727 1273.7425418689652 222.04953381683336
+REC [ 922.480161350664, 1595.847703705676 ] [ 1359.7862982267482, 1531.0301727077556 ] [ 1267.6643688417116, 1808.6218365323427 ] [ 931.1667770625802, 1720.9932491029444 ]
+REC [ 2371.616968772316, 156.5293438129509 ] [ 2588.9881238082835, 382.4988207611001 ] [ 2740.558480559223, 600.2327661223246 ] [ 2385.7054489241855, 532.994951832758 ]
+CIRCLE 2466.768162475227 320.1731623236503 138.18054710039553
+TRIANGLE [ 1069.1296925789761, 506.8891544977404 ] [ 1480.2692537686157, 402.95422029359565 ] [ 1546.0182276311043, 947.3815471243344 ]
+CIRCLE 3367.077550631625 380.4217433655636 258.17736314262436
+CIRCLE 172.82917188370587 2093.860235750139 140.30550106906486
+CIRCLE 2463.5931745085154 1198.3734300592937 324.20686152098756
+CIRCLE 2682.060943660314 1966.3442236125081 271.97212575421895
+REC [ 388.4855937317085, 1585.7393398002744 ] [ 756.0343261697229, 1793.6285076972767 ] [ 668.0575181385659, 1993.2426051310497 ] [ 433.08883205824515, 1840.4826029446351 ]
+CIRCLE 2033.0633896689499 225.70667627134532 143.04616991248685
+REC [ 2101.2990404784687, 598.6491956570117 ] [ 2283.962592361773, 526.010792433687 ] [ 2212.1031516889943, 655.4556123121151 ] [ 2113.425067649134, 660.4138537239897 ]
+REC [ 2648.501725711188, 1010.0532476557845 ] [ 2990.7489884908045, 1054.1606092454667 ] [ 2998.6966403311117, 1336.7711874634433 ] [ 2642.4747925704387, 1466.23262515861 ]
+CIRCLE 1478.0058100740466 1637.9694930110254 135.205731080077
+TRIANGLE [ 1974.1826957933445, 687.8338122994833 ] [ 2390.135277251504, 722.6390942438429 ] [ 2343.4489195600095, 1039.637946652724 ]
+CIRCLE 281.7916466839661 1195.2926751233242 247.38618242032618
+CIRCLE 1031.1243377932526 1438.4048210625322 185.94450707802147
+TRIANGLE [ 426.13069160497787, 617.6709268373553 ] [ 1019.7530339030588, 428.79673459731816 ] [ 760.4645059694761, 755.6471535744251 ]
+CIRCLE 919.8380748716528 2194.7130557346845 143.30112918490607
+TRIANGLE [ 397.9624598681164, 924.9678562397576 ] [ 618.1785132167216, 941.9777355798947 ] [ 692.9701158480867, 1274.0008565610644 ]
+REC [ 2908.3139247189224, 1810.8486669040449 ] [ 3438.0001686788987, 1921.1892172581925 ] [ 3430.0236585648913, 2128.6205726786266 ] [ 3117.2929708115603, 2079.212372211291 ]
+REC [ 2348.661941349325, 206.55835880381852 ] [ 2739.3566697877363, 218.89520601708276 ] [ 2670.616304120924, 382.9762577196657 ] [ 2215.6864347106934, 506.68993970151496 ]
+TRIANGLE [ 1105.8905913607693, 546.6746247979609 ] [ 1307.9357465844348, 533.5195641029158 ] [ 1230.4328182018885, 896.8181785927443 ]
+REC [ 61.8226465507412, 1078.4109971145879 ] [ 227.02434372328767, 988.1085521759452 ] [ 325.8047743284285, 1227.881754434119 ] [ -66.07408728401677, 1189.956073445552 ]
+CIRCLE 725.1676871224912 2246.2444337736943 77.24780106839066
+CIRCLE 1956.2450107828945 1742.2395741430046 116.11752068308354
+TRIANGLE [ 2914.1055431217596, 685.4418117932531 ] [ 3204.9701199468195, 709.8556385266119 ] [ 3384.3879386283006, 823.1052253710642 ]
+CIRCLE 2301.866528731268 1834.8603884139497 76.63215351402025
+TRIANGLE [ 2598.9765387306493, -139.48288492272013 ] [ 2867.1846393633327, 86.20656247158438 ] [ 2840.8012073867835, 424.2526445591227 ]
+REC [ 2239.676171778122, 1001.588582993541 ] [ 2531.34704231805, 1069.3527004685957 ] [ 2545.9348248692704, 1483.8999653099509 ] [ 2373.046755606569, 1256.8376952309684 ]
+TRIANGLE [ 1864.5057838135788, 1739.8451436312057 ] [ 2326.5806359216836, 1841.6066322474096 ] [ 2302.1219839306646, 2143.182437187623 ]
+REC [ 1785.7214054230992, 551.586049529144 ] [ 2140.40247050642, 628.2585424158444 ] [ 2241.5428293700047, 894.8990811363614 ] [ 1968.9963063825514, 943.0399528684177 ]
+TRIANGLE [ -26.645821571260768, 272.22277564593486 ] [ 367.7543622044242, 276.5415780590656 ] [ 294.6353097320518, 576.6898992011452 ]
+TRIANGLE [ 3155.506523069746, 1032.2114354173914 ] [ 3272.8471639584213, 1077.662005413227 ] [ 3271.980908906947, 1303.1453406727521 ]
+CIRCLE 374.6085086690936 361.55800675239226 95.31322610775008
+REC [ 1266.5880608533644, 1858.8311900530332 ] [ 1671.4923624329865, 1928.5774355146552 ] [ 1549.2806626842344, 2162.668106180663 ] [ 1210.33536464591, 2267.545724054409 ]
+REC [ 2973.366529423214, 983.7658559071193 ] [ 3392.830034766705, 905.5463639128968 ] [ 3310.3702435067894, 1371.4962412679324 ] [ 3172.53279454251, 1416.9975864423336 ]
+REC [ 234.58102044274335, 1483.761086433939 ] [ 412.0552955496671, 1366.7849966660297 ] [ 362.73899465564955, 1868.046370636501 ] [ 90.29742113360336, 1934.8283674219279 ]
+CIRCLE 1185.5753301131665 1274.1095452353863 83.8056345365181
+CIRCLE 1174.2317562406158 1959.328929814488 114.51281264139014
+CIRCLE 2533.238630282108 233.3195697416028 90.76485714837986
+TRIANGLE [ 1770.322870265507, 1760.2052016579503 ] [ 1989.7081841862212, 2027.7824019946001 ] [ 2092.2628150522864, 2354.3207389295753 ]
+CIRCLE 2889.2083465423934 758.4735829645422 94.62383525912124
+TRIANGLE [ 2084.694258264977, 731.3814073651156 ] [ 2358.320209396411, 982.5912192047115 ] [ 2307.8378064841327, 1070.735298709637 ]

+ 45 - 0
ParticleFilter/map.js

@@ -0,0 +1,45 @@
+var PDFDocument = require('pdfkit');
+var fs = require('fs');
+var factor = 300;
+
+var doc = new PDFDocument({layout: 'landscape', size: 'A0'});
+
+doc.pipe(fs.createWriteStream('output.pdf'));
+// background
+doc.polygon([0,0], [4000, 0], [4000,2500], [0, 2500]).fill("#000");
+// doc.polygon([100, 200], [600, 200], [600,1600], [100, 1600]).fill("#fff");
+
+for (var i = 0; i < 80; i++) {
+   var width = doc._pageBuffer[0].width;
+   var height = doc._pageBuffer[0].height;
+
+   var x = Math.random()*width;
+   var y = Math.random()*height;
+
+   var figure_prob = Math.random();
+   if (figure_prob < 1/3.0) {
+      // rectangle
+      var a = [x-factor*Math.random(), y-factor*Math.random()];
+      var b = [x+factor*Math.random(), y-factor*Math.random()];
+      var c = [x+factor*Math.random(), y+factor*Math.random()];
+      var d = [x-factor*Math.random(), y+factor*Math.random()];
+      doc.polygon(a, b, c, d).fill("#fff");
+      console.log("REC", a, b, c, d);
+   } else if (figure_prob < 2/3.0) {
+      var radius = factor*Math.random()+factor/10;
+      doc.circle(x, y, radius).fill("#fff");
+      console.log("CIRCLE", x, y, radius);
+   } else {
+      // triangle
+      var a = [x-factor*Math.random(), y-factor*Math.random()];
+      var b = [x+factor*Math.random(), y-factor*Math.random()];
+      var c = [x+factor*Math.random(), y+factor*Math.random()];
+      doc.polygon(a, b, c).fill("#fff");
+      console.log("TRIANGLE", a, b, c);
+   }
+}
+
+
+
+
+doc.end();

+ 1 - 0
ParticleFilter/node_modules/.bin/acorn

@@ -0,0 +1 @@
+../acorn/bin/acorn

+ 1 - 0
ParticleFilter/node_modules/.bin/brfs

@@ -0,0 +1 @@
+../brfs/bin/cmd.js

+ 1 - 0
ParticleFilter/node_modules/.bin/escodegen

@@ -0,0 +1 @@
+../escodegen/bin/escodegen.js

+ 1 - 0
ParticleFilter/node_modules/.bin/esgenerate

@@ -0,0 +1 @@
+../escodegen/bin/esgenerate.js

+ 1 - 0
ParticleFilter/node_modules/.bin/esparse

@@ -0,0 +1 @@
+../esprima/bin/esparse.js

+ 1 - 0
ParticleFilter/node_modules/.bin/esvalidate

@@ -0,0 +1 @@
+../esprima/bin/esvalidate.js

+ 1 - 0
ParticleFilter/node_modules/.bin/quote-stream

@@ -0,0 +1 @@
+../quote-stream/bin/cmd.js

+ 77 - 0
ParticleFilter/node_modules/acorn/AUTHORS

@@ -0,0 +1,77 @@
+List of Acorn contributors. Updated before every release.
+
+Adrian Heine
+Adrian Rakovsky
+Alistair Braidwood
+Amila Welihinda
+Andres Suarez
+Angelo
+Aparajita Fishman
+Arian Stolwijk
+Artem Govorov
+Boopesh Mahendran
+Bradley Heinz
+Brandon Mills
+Charles Hughes
+Charmander
+Chris McKnight
+Conrad Irwin
+Daniel Tschinder
+David Bonnet
+Domenico Matteo
+ehmicky
+Eugene Obrezkov
+Felix Maier
+Forbes Lindesay
+Gilad Peleg
+impinball
+Ingvar Stepanyan
+Jackson Ray Hamilton
+Jesse McCarthy
+Jiaxing Wang
+Joel Kemp
+Johannes Herr
+John-David Dalton
+Jordan Klassen
+Jürg Lehni
+Kai Cataldo
+keeyipchan
+Keheliya Gallaba
+Kevin Irish
+Kevin Kwok
+krator
+laosb
+Marek
+Marijn Haverbeke
+Martin Carlberg
+Mat Garcia
+Mathias Bynens
+Mathieu 'p01' Henri
+Matthew Bastien
+Max Schaefer
+Max Zerzouri
+Mihai Bazon
+Mike Rennie
+naoh
+Nicholas C. Zakas
+Nick Fitzgerald
+Olivier Thomann
+Oskar Schöldström
+Paul Harper
+Peter Rust
+PlNG
+Prayag Verma
+ReadmeCritic
+r-e-d
+Richard Gibson
+Rich Harris
+Sebastian McKenzie
+Shahar Soel
+Sheel Bedi
+Simen Bekkhus
+Teddy Katz
+Timothy Gu
+Toru Nagashima
+Victor Homyakov
+Wexpo Lyu
+zsjforcn

+ 468 - 0
ParticleFilter/node_modules/acorn/CHANGELOG.md

@@ -0,0 +1,468 @@
+## 5.6.1 (2018-06-01)
+
+### Bug fixes
+
+Fix regression when passing `null` as fourth argument to `walk.recursive`.
+
+## 5.6.0 (2018-05-31)
+
+### Bug fixes
+
+Fix a bug in the walker that caused a crash when walking an object pattern spread.
+
+### New features
+
+Allow U+2028 and U+2029 in string when ECMAVersion >= 10.
+
+Allow binding-less catch statements when ECMAVersion >= 10.
+
+Add `allowAwaitOutsideFunction` option for parsing top-level `await`.
+
+## 5.5.3 (2018-03-08)
+
+### Bug fixes
+
+A _second_ republish of the code in 5.5.1, this time with yarn, to hopefully get valid timestamps.
+
+## 5.5.2 (2018-03-08)
+
+### Bug fixes
+
+A republish of the code in 5.5.1 in an attempt to solve an issue with the file timestamps in the npm package being 0.
+
+## 5.5.1 (2018-03-06)
+
+### Bug fixes
+
+Fix regression in walker causing property values in object patterns to be walked as expressions.
+
+Fix misleading error message for octal escapes in template strings.
+
+## 5.5.0 (2018-02-27)
+
+### Bug fixes
+
+Support object spread in the AST walker.
+
+### New features
+
+The identifier character categorization is now based on Unicode version 10.
+
+Acorn will now validate the content of regular expressions, including new ES9 features.
+
+## 5.4.1 (2018-02-02)
+
+### Bug fixes
+
+5.4.0 somehow accidentally included an old version of walk.js.
+
+## 5.4.0 (2018-02-01)
+
+### Bug fixes
+
+Disallow duplicate or escaped flags on regular expressions.
+
+Disallow octal escapes in strings in strict mode.
+
+### New features
+
+Add support for async iteration.
+
+Add support for object spread and rest.
+
+## 5.3.0 (2017-12-28)
+
+### Bug fixes
+
+Fix parsing of floating point literals with leading zeroes in loose mode.
+
+Allow duplicate property names in object patterns.
+
+Don't allow static class methods named `prototype`.
+
+Disallow async functions directly under `if` or `else`.
+
+Parse right-hand-side of `for`/`of` as an assignment expression.
+
+Stricter parsing of `for`/`in`.
+
+Don't allow unicode escapes in contextual keywords.
+
+### New features
+
+Parsing class members was factored into smaller methods to allow plugins to hook into it.
+
+## 5.2.1 (2017-10-30)
+
+### Bug fixes
+
+Fix a token context corruption bug.
+
+## 5.2.0 (2017-10-30)
+
+### Bug fixes
+
+Fix token context tracking for `class` and `function` in property-name position.
+
+Make sure `%*` isn't parsed as a valid operator.
+
+The `full` and `fullAncestor` walkers no longer visit nodes multiple times.
+
+Allow shorthand properties `get` and `set` to be followed by default values.
+
+Disallow `super` when not in callee or object position.
+
+### New features
+
+Support [`directive` property](https://github.com/estree/estree/compare/b3de58c9997504d6fba04b72f76e6dd1619ee4eb...1da8e603237144f44710360f8feb7a9977e905e0) on directive expression statements.
+
+## 5.1.2 (2017-09-04)
+
+### Bug fixes
+
+Disable parsing of legacy HTML-style comments in modules.
+
+Fix parsing of async methods whose names are keywords.
+
+## 5.1.1 (2017-07-06)
+
+### Bug fixes
+
+Fix problem with disambiguating regexp and division after a class.
+
+## 5.1.0 (2017-07-05)
+
+### Bug fixes
+
+Fix tokenizing of regexps in an object-desctructuring `for`/`of` loop and after `yield`.
+
+Parse zero-prefixed numbers with non-octal digits as decimal.
+
+Allow object/array patterns in rest parameters.
+
+Don't error when `yield` is used as a property name.
+
+Allow `async` as a shorthand object property.
+
+Make the ES module version of the loose parser actually work.
+
+### New features
+
+Implement the [template literal revision proposal](https://github.com/tc39/proposal-template-literal-revision) for ES9.
+
+New walker functions `full` and `fullAncestor`.
+
+## 5.0.3 (2017-04-01)
+
+### Bug fixes
+
+Fix spurious duplicate variable definition errors for named functions.
+
+## 5.0.2 (2017-03-30)
+
+### Bug fixes
+
+A binary operator after a parenthesized arrow expression is no longer incorrectly treated as an error.
+
+## 5.0.0 (2017-03-28)
+
+### Bug fixes
+
+Raise an error for duplicated lexical bindings.
+
+Fix spurious error when an assignement expression occurred after a spread expression.
+
+Accept regular expressions after `of` (in `for`/`of`), `yield` (in a generator), and braced arrow functions.
+
+Allow labels in front or `var` declarations, even in strict mode.
+
+### Breaking changes
+
+Parse declarations following `export default` as declaration nodes, not expressions. This means that class and function declarations nodes can now have `null` as their `id`.
+
+## 4.0.11 (2017-02-07)
+
+### Bug fixes
+
+Allow all forms of member expressions to be parenthesized as lvalue.
+
+## 4.0.10 (2017-02-07)
+
+### Bug fixes
+
+Don't expect semicolons after default-exported functions or classes,
+even when they are expressions.
+
+Check for use of `'use strict'` directives in non-simple parameter
+functions, even when already in strict mode.
+
+## 4.0.9 (2017-02-06)
+
+### Bug fixes
+
+Fix incorrect error raised for parenthesized simple assignment
+targets, so that `(x) = 1` parses again.
+
+## 4.0.8 (2017-02-03)
+
+### Bug fixes
+
+Solve spurious parenthesized pattern errors by temporarily erring on
+the side of accepting programs that our delayed errors don't handle
+correctly yet.
+
+## 4.0.7 (2017-02-02)
+
+### Bug fixes
+
+Accept invalidly rejected code like `(x).y = 2` again.
+
+Don't raise an error when a function _inside_ strict code has a
+non-simple parameter list.
+
+## 4.0.6 (2017-02-02)
+
+### Bug fixes
+
+Fix exponential behavior (manifesting itself as a complete hang for
+even relatively small source files) introduced by the new 'use strict'
+check.
+
+## 4.0.5 (2017-02-02)
+
+### Bug fixes
+
+Disallow parenthesized pattern expressions.
+
+Allow keywords as export names.
+
+Don't allow the `async` keyword to be parenthesized.
+
+Properly raise an error when a keyword contains a character escape.
+
+Allow `"use strict"` to appear after other string literal expressions.
+
+Disallow labeled declarations.
+
+## 4.0.4 (2016-12-19)
+
+### Bug fixes
+
+Fix issue with loading acorn_loose.js with an AMD loader.
+
+Fix crash when `export` was followed by a keyword that can't be
+exported.
+
+## 4.0.3 (2016-08-16)
+
+### Bug fixes
+
+Allow regular function declarations inside single-statement `if`
+branches in loose mode. Forbid them entirely in strict mode.
+
+Properly parse properties named `async` in ES2017 mode.
+
+Fix bug where reserved words were broken in ES2017 mode.
+
+## 4.0.2 (2016-08-11)
+
+### Bug fixes
+
+Don't ignore period or 'e' characters after octal numbers.
+
+Fix broken parsing for call expressions in default parameter values
+of arrow functions.
+
+## 4.0.1 (2016-08-08)
+
+### Bug fixes
+
+Fix false positives in duplicated export name errors.
+
+## 4.0.0 (2016-08-07)
+
+### Breaking changes
+
+The default `ecmaVersion` option value is now 7.
+
+A number of internal method signatures changed, so plugins might need
+to be updated.
+
+### Bug fixes
+
+The parser now raises errors on duplicated export names.
+
+`arguments` and `eval` can now be used in shorthand properties.
+
+Duplicate parameter names in non-simple argument lists now always
+produce an error.
+
+### New features
+
+The `ecmaVersion` option now also accepts year-style version numbers
+(2015, etc).
+
+Support for `async`/`await` syntax when `ecmaVersion` is >= 8.
+
+Support for trailing commas in call expressions when `ecmaVersion`
+is >= 8.
+
+## 3.3.0 (2016-07-25)
+
+### Bug fixes
+
+Fix bug in tokenizing of regexp operator after a function declaration.
+
+Fix parser crash when parsing an array pattern with a hole.
+
+### New features
+
+Implement check against complex argument lists in functions that
+enable strict mode in ES7.
+
+## 3.2.0 (2016-06-07)
+
+### Bug fixes
+
+Improve handling of lack of unicode regexp support in host
+environment.
+
+Properly reject shorthand properties whose name is a keyword.
+
+Don't crash when the loose parser is called without options object.
+
+### New features
+
+Visitors created with `visit.make` now have their base as _prototype_,
+rather than copying properties into a fresh object.
+
+Make it possible to use `visit.ancestor` with a walk state.
+
+## 3.1.0 (2016-04-18)
+
+### Bug fixes
+
+Fix issue where the loose parser created invalid TemplateElement nodes
+for unclosed template literals.
+
+Properly tokenize the division operator directly after a function
+expression.
+
+Allow trailing comma in destructuring arrays.
+
+### New features
+
+The walker now allows defining handlers for `CatchClause` nodes.
+
+## 3.0.4 (2016-02-25)
+
+### Fixes
+
+Allow update expressions as left-hand-side of the ES7 exponential
+operator.
+
+## 3.0.2 (2016-02-10)
+
+### Fixes
+
+Fix bug that accidentally made `undefined` a reserved word when
+parsing ES7.
+
+## 3.0.0 (2016-02-10)
+
+### Breaking changes
+
+The default value of the `ecmaVersion` option is now 6 (used to be 5).
+
+Support for comprehension syntax (which was dropped from the draft
+spec) has been removed.
+
+### Fixes
+
+`let` and `yield` are now “contextual keywords”, meaning you can
+mostly use them as identifiers in ES5 non-strict code.
+
+A parenthesized class or function expression after `export default` is
+now parsed correctly.
+
+### New features
+
+When `ecmaVersion` is set to 7, Acorn will parse the exponentiation
+operator (`**`).
+
+The identifier character ranges are now based on Unicode 8.0.0.
+
+Plugins can now override the `raiseRecoverable` method to override the
+way non-critical errors are handled.
+
+## 2.7.0 (2016-01-04)
+
+### Fixes
+
+Stop allowing rest parameters in setters.
+
+Make sure the loose parser always attaches a `local` property to
+`ImportNamespaceSpecifier` nodes.
+
+Disallow `y` rexexp flag in ES5.
+
+Disallow `\00` and `\000` escapes in strict mode.
+
+Raise an error when an import name is a reserved word.
+
+## 2.6.4 (2015-11-12)
+
+### Fixes
+
+Fix crash in loose parser when parsing invalid object pattern.
+
+### New features
+
+Support plugins in the loose parser.
+
+## 2.6.2 (2015-11-10)
+
+### Fixes
+
+Don't crash when no options object is passed.
+
+## 2.6.0 (2015-11-09)
+
+### Fixes
+
+Add `await` as a reserved word in module sources.
+
+Disallow `yield` in a parameter default value for a generator.
+
+Forbid using a comma after a rest pattern in an array destructuring.
+
+### New features
+
+Support parsing stdin in command-line tool.
+
+## 2.5.2 (2015-10-27)
+
+### Fixes
+
+Fix bug where the walker walked an exported `let` statement as an
+expression.
+
+## 2.5.0 (2015-10-27)
+
+### Fixes
+
+Fix tokenizer support in the command-line tool.
+
+In the loose parser, don't allow non-string-literals as import
+sources.
+
+Stop allowing `new.target` outside of functions.
+
+Remove legacy `guard` and `guardedHandler` properties from try nodes.
+
+Stop allowing multiple `__proto__` properties on an object literal in
+strict mode.
+
+Don't allow rest parameters to be non-identifier patterns.
+
+Check for duplicate paramter names in arrow functions.

+ 19 - 0
ParticleFilter/node_modules/acorn/LICENSE

@@ -0,0 +1,19 @@
+Copyright (C) 2012-2018 by various contributors (see AUTHORS)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.

+ 467 - 0
ParticleFilter/node_modules/acorn/README.md

@@ -0,0 +1,467 @@
+# Acorn
+
+[![Build Status](https://travis-ci.org/acornjs/acorn.svg?branch=master)](https://travis-ci.org/acornjs/acorn)
+[![NPM version](https://img.shields.io/npm/v/acorn.svg)](https://www.npmjs.com/package/acorn)
+[![CDNJS](https://img.shields.io/cdnjs/v/acorn.svg)](https://cdnjs.com/libraries/acorn)  
+[Author funding status: ![maintainer happiness](https://marijnhaverbeke.nl/fund/status_s.png?force)](https://marijnhaverbeke.nl/fund/)
+
+A tiny, fast JavaScript parser, written completely in JavaScript.
+
+## Community
+
+Acorn is open source software released under an
+[MIT license](https://github.com/acornjs/acorn/blob/master/LICENSE).
+
+You are welcome to
+[report bugs](https://github.com/acornjs/acorn/issues) or create pull
+requests on [github](https://github.com/acornjs/acorn). For questions
+and discussion, please use the
+[Tern discussion forum](https://discuss.ternjs.net).
+
+## Installation
+
+The easiest way to install acorn is with [`npm`][npm].
+
+[npm]: https://www.npmjs.com/
+
+```sh
+npm install acorn
+```
+
+Alternately, you can download the source and build acorn yourself:
+
+```sh
+git clone https://github.com/acornjs/acorn.git
+cd acorn
+npm install
+npm run build
+```
+
+## Components
+
+When run in a CommonJS (node.js) or AMD environment, exported values
+appear in the interfaces exposed by the individual files, as usual.
+When loaded in the browser (Acorn works in any JS-enabled browser more
+recent than IE5) without any kind of module management, a single
+global object `acorn` will be defined, and all the exported properties
+will be added to that.
+
+### Main parser
+
+This is implemented in `dist/acorn.js`, and is what you get when you
+`require("acorn")` in node.js.
+
+**parse**`(input, options)` is used to parse a JavaScript program.
+The `input` parameter is a string, `options` can be undefined or an
+object setting some of the options listed below. The return value will
+be an abstract syntax tree object as specified by the
+[ESTree spec][estree].
+
+When  encountering   a  syntax   error,  the   parser  will   raise  a
+`SyntaxError` object with a meaningful  message. The error object will
+have a `pos` property that indicates the character offset at which the
+error occurred,  and a `loc`  object that contains a  `{line, column}`
+object referring to that same position.
+
+[estree]: https://github.com/estree/estree
+
+- **ecmaVersion**: Indicates the ECMAScript version to parse. Must be
+  either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018) or 10 (2019, partial
+  support). This influences support for strict mode, the set of
+  reserved words, and support for new syntax features. Default is 7.
+
+  **NOTE**: Only 'stage 4' (finalized) ECMAScript features are being
+  implemented by Acorn.
+
+- **sourceType**: Indicate the mode the code should be parsed in. Can be
+  either `"script"` or `"module"`. This influences global strict mode
+  and parsing of `import` and `export` declarations.
+
+- **onInsertedSemicolon**: If given a callback, that callback will be
+  called whenever a missing semicolon is inserted by the parser. The
+  callback will be given the character offset of the point where the
+  semicolon is inserted as argument, and if `locations` is on, also a
+  `{line, column}` object representing this position.
+
+- **onTrailingComma**: Like `onInsertedSemicolon`, but for trailing
+  commas.
+
+- **allowReserved**: If `false`, using a reserved word will generate
+  an error. Defaults to `true` for `ecmaVersion` 3, `false` for higher
+  versions. When given the value `"never"`, reserved words and
+  keywords can also not be used as property names (as in Internet
+  Explorer's old parser).
+
+- **allowReturnOutsideFunction**: By default, a return statement at
+  the top level raises an error. Set this to `true` to accept such
+  code.
+
+- **allowImportExportEverywhere**: By default, `import` and `export`
+  declarations can only appear at a program's top level. Setting this
+  option to `true` allows them anywhere where a statement is allowed.
+  
+- **allowAwaitOutsideFunction**: By default, `await` expressions can only appear inside `async` functions. Setting this option to `true` allows to have top-level `await` expressions. They are still not allowed in non-`async` functions, though.
+
+- **allowHashBang**: When this is enabled (off by default), if the
+  code starts with the characters `#!` (as in a shellscript), the
+  first line will be treated as a comment.
+
+- **locations**: When `true`, each node has a `loc` object attached
+  with `start` and `end` subobjects, each of which contains the
+  one-based line and zero-based column numbers in `{line, column}`
+  form. Default is `false`.
+
+- **onToken**: If a function is passed for this option, each found
+  token will be passed in same format as tokens returned from
+  `tokenizer().getToken()`.
+
+  If array is passed, each found token is pushed to it.
+
+  Note that you are not allowed to call the parser from the
+  callback—that will corrupt its internal state.
+
+- **onComment**: If a function is passed for this option, whenever a
+  comment is encountered the function will be called with the
+  following parameters:
+
+  - `block`: `true` if the comment is a block comment, false if it
+    is a line comment.
+  - `text`: The content of the comment.
+  - `start`: Character offset of the start of the comment.
+  - `end`: Character offset of the end of the comment.
+
+  When the `locations` options is on, the `{line, column}` locations
+  of the comment’s start and end are passed as two additional
+  parameters.
+
+  If array is passed for this option, each found comment is pushed
+  to it as object in Esprima format:
+
+  ```javascript
+  {
+    "type": "Line" | "Block",
+    "value": "comment text",
+    "start": Number,
+    "end": Number,
+    // If `locations` option is on:
+    "loc": {
+      "start": {line: Number, column: Number}
+      "end": {line: Number, column: Number}
+    },
+    // If `ranges` option is on:
+    "range": [Number, Number]
+  }
+  ```
+
+  Note that you are not allowed to call the parser from the
+  callback—that will corrupt its internal state.
+
+- **ranges**: Nodes have their start and end characters offsets
+  recorded in `start` and `end` properties (directly on the node,
+  rather than the `loc` object, which holds line/column data. To also
+  add a [semi-standardized][range] `range` property holding a
+  `[start, end]` array with the same numbers, set the `ranges` option
+  to `true`.
+
+- **program**: It is possible to parse multiple files into a single
+  AST by passing the tree produced by parsing the first file as the
+  `program` option in subsequent parses. This will add the toplevel
+  forms of the parsed file to the "Program" (top) node of an existing
+  parse tree.
+
+- **sourceFile**: When the `locations` option is `true`, you can pass
+  this option to add a `source` attribute in every node’s `loc`
+  object. Note that the contents of this option are not examined or
+  processed in any way; you are free to use whatever format you
+  choose.
+
+- **directSourceFile**: Like `sourceFile`, but a `sourceFile` property
+  will be added (regardless of the `location` option) directly to the
+  nodes, rather than the `loc` object.
+
+- **preserveParens**: If this option is `true`, parenthesized expressions
+  are represented by (non-standard) `ParenthesizedExpression` nodes
+  that have a single `expression` property containing the expression
+  inside parentheses.
+
+[range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678
+
+**parseExpressionAt**`(input, offset, options)` will parse a single
+expression in a string, and return its AST. It will not complain if
+there is more of the string left after the expression.
+
+**getLineInfo**`(input, offset)` can be used to get a `{line,
+column}` object for a given program string and character offset.
+
+**tokenizer**`(input, options)` returns an object with a `getToken`
+method that can be called repeatedly to get the next token, a `{start,
+end, type, value}` object (with added `loc` property when the
+`locations` option is enabled and `range` property when the `ranges`
+option is enabled). When the token's type is `tokTypes.eof`, you
+should stop calling the method, since it will keep returning that same
+token forever.
+
+In ES6 environment, returned result can be used as any other
+protocol-compliant iterable:
+
+```javascript
+for (let token of acorn.tokenizer(str)) {
+  // iterate over the tokens
+}
+
+// transform code to array of tokens:
+var tokens = [...acorn.tokenizer(str)];
+```
+
+**tokTypes** holds an object mapping names to the token type objects
+that end up in the `type` properties of tokens.
+
+#### Note on using with [Escodegen][escodegen]
+
+Escodegen supports generating comments from AST, attached in
+Esprima-specific format. In order to simulate same format in
+Acorn, consider following example:
+
+```javascript
+var comments = [], tokens = [];
+
+var ast = acorn.parse('var x = 42; // answer', {
+	// collect ranges for each node
+	ranges: true,
+	// collect comments in Esprima's format
+	onComment: comments,
+	// collect token ranges
+	onToken: tokens
+});
+
+// attach comments using collected information
+escodegen.attachComments(ast, comments, tokens);
+
+// generate code
+console.log(escodegen.generate(ast, {comment: true}));
+// > 'var x = 42;    // answer'
+```
+
+[escodegen]: https://github.com/estools/escodegen
+
+### dist/acorn_loose.js ###
+
+This file implements an error-tolerant parser. It exposes a single
+function. The loose parser is accessible in node.js via `require("acorn/dist/acorn_loose")`.
+
+**parse_dammit**`(input, options)` takes the same arguments and
+returns the same syntax tree as the `parse` function in `acorn.js`,
+but never raises an error, and will do its best to parse syntactically
+invalid code in as meaningful a way as it can. It'll insert identifier
+nodes with name `"✖"` as placeholders in places where it can't make
+sense of the input. Depends on `acorn.js`, because it uses the same
+tokenizer.
+
+### dist/walk.js ###
+
+Implements an abstract syntax tree walker. Will store its interface in
+`acorn.walk` when loaded without a module system.
+
+**simple**`(node, visitors, base, state)` does a 'simple' walk over
+a tree. `node` should be the AST node to walk, and `visitors` an
+object with properties whose names correspond to node types in the
+[ESTree spec][estree]. The properties should contain functions
+that will be called with the node object and, if applicable the state
+at that point. The last two arguments are optional. `base` is a walker
+algorithm, and `state` is a start state. The default walker will
+simply visit all statements and expressions and not produce a
+meaningful state. (An example of a use of state is to track scope at
+each point in the tree.)
+
+```js
+const acorn = require("acorn")
+const walk = require("acorn/dist/walk")
+
+walk.simple(acorn.parse("let x = 10"), {
+  Literal(node) {
+    console.log(`Found a literal: ${node.value}`)
+  }
+})
+```
+
+**ancestor**`(node, visitors, base, state)` does a 'simple' walk over
+a tree, building up an array of ancestor nodes (including the current node)
+and passing the array to the callbacks as a third parameter.
+
+```js
+const acorn = require("acorn")
+const walk = require("acorn/dist/walk")
+
+walk.ancestor(acorn.parse("foo('hi')"), {
+  Literal(_, ancestors) {
+    console.log("This literal's ancestors are:",
+                ancestors.map(n => n.type))
+  }
+})
+```
+
+**recursive**`(node, state, functions, base)` does a 'recursive'
+walk, where the walker functions are responsible for continuing the
+walk on the child nodes of their target node. `state` is the start
+state, and `functions` should contain an object that maps node types
+to walker functions. Such functions are called with `(node, state, c)`
+arguments, and can cause the walk to continue on a sub-node by calling
+the `c` argument on it with `(node, state)` arguments. The optional
+`base` argument provides the fallback walker functions for node types
+that aren't handled in the `functions` object. If not given, the
+default walkers will be used.
+
+**make**`(functions, base)` builds a new walker object by using the
+walker functions in `functions` and filling in the missing ones by
+taking defaults from `base`.
+
+**full**`(node, callback, base, state)` does a 'full'
+walk over a tree, calling the callback with the arguments (node, state, type)
+for each node
+
+**fullAncestor**`(node, callback, base, state)` does a 'full' walk over
+a tree, building up an array of ancestor nodes (including the current node)
+and passing the array to the callbacks as a third parameter.
+
+```js
+const acorn = require("acorn")
+const walk = require("acorn/dist/walk")
+
+walk.full(acorn.parse("1 + 1"), node => {
+  console.log(`There's a ${node.type} node at ${node.ch}`)
+})
+```
+
+**findNodeAt**`(node, start, end, test, base, state)` tries to
+locate a node in a tree at the given start and/or end offsets, which
+satisfies the predicate `test`. `start` and `end` can be either `null`
+(as wildcard) or a number. `test` may be a string (indicating a node
+type) or a function that takes `(nodeType, node)` arguments and
+returns a boolean indicating whether this node is interesting. `base`
+and `state` are optional, and can be used to specify a custom walker.
+Nodes are tested from inner to outer, so if two nodes match the
+boundaries, the inner one will be preferred.
+
+**findNodeAround**`(node, pos, test, base, state)` is a lot like
+`findNodeAt`, but will match any node that exists 'around' (spanning)
+the given position.
+
+**findNodeAfter**`(node, pos, test, base, state)` is similar to
+`findNodeAround`, but will match all nodes *after* the given position
+(testing outer nodes before inner nodes).
+
+## Command line interface
+
+The `bin/acorn` utility can be used to parse a file from the command
+line. It accepts as arguments its input file and the following
+options:
+
+- `--ecma3|--ecma5|--ecma6|--ecma7|--ecma8|--ecma9|--ecma10`: Sets the ECMAScript version
+  to parse. Default is version 7.
+
+- `--module`: Sets the parsing mode to `"module"`. Is set to `"script"` otherwise.
+
+- `--locations`: Attaches a "loc" object to each node with "start" and
+  "end" subobjects, each of which contains the one-based line and
+  zero-based column numbers in `{line, column}` form.
+
+- `--allow-hash-bang`: If the code starts with the characters #! (as in a shellscript), the first line will be treated as a comment.
+
+- `--compact`: No whitespace is used in the AST output.
+
+- `--silent`: Do not output the AST, just return the exit status.
+
+- `--help`: Print the usage information and quit.
+
+The utility spits out the syntax tree as JSON data.
+
+## Build system
+
+Acorn is written in ECMAScript 6, as a set of small modules, in the
+project's `src` directory, and compiled down to bigger ECMAScript 3
+files in `dist` using [Browserify](http://browserify.org) and
+[Babel](http://babeljs.io/). If you are already using Babel, you can
+consider including the modules directly.
+
+The command-line test runner (`npm test`) uses the ES6 modules. The
+browser-based test page (`test/index.html`) uses the compiled modules.
+The `bin/build-acorn.js` script builds the latter from the former.
+
+If you are working on Acorn, you'll probably want to try the code out
+directly, without an intermediate build step. In your scripts, you can
+register the Babel require shim like this:
+
+    require("babel-core/register")
+
+That will allow you to directly `require` the ES6 modules.
+
+## Plugins
+
+Acorn is designed support allow plugins which, within reasonable
+bounds, redefine the way the parser works. Plugins can add new token
+types and new tokenizer contexts (if necessary), and extend methods in
+the parser object. This is not a clean, elegant API—using it requires
+an understanding of Acorn's internals, and plugins are likely to break
+whenever those internals are significantly changed. But still, it is
+_possible_, in this way, to create parsers for JavaScript dialects
+without forking all of Acorn. And in principle it is even possible to
+combine such plugins, so that if you have, for example, a plugin for
+parsing types and a plugin for parsing JSX-style XML literals, you
+could load them both and parse code with both JSX tags and types.
+
+A plugin should register itself by adding a property to
+`acorn.plugins`, which holds a function. Calling `acorn.parse`, a
+`plugins` option can be passed, holding an object mapping plugin names
+to configuration values (or just `true` for plugins that don't take
+options). After the parser object has been created, the initialization
+functions for the chosen plugins are called with `(parser,
+configValue)` arguments. They are expected to use the `parser.extend`
+method to extend parser methods. For example, the `readToken` method
+could be extended like this:
+
+```javascript
+parser.extend("readToken", function(nextMethod) {
+  return function(code) {
+    console.log("Reading a token!")
+    return nextMethod.call(this, code)
+  }
+})
+```
+
+The `nextMethod` argument passed to `extend`'s second argument is the
+previous value of this method, and should usually be called through to
+whenever the extended method does not handle the call itself.
+
+Similarly, the loose parser allows plugins to register themselves via
+`acorn.pluginsLoose`.  The extension mechanism is the same as for the
+normal parser:
+
+```javascript
+looseParser.extend("readToken", function(nextMethod) {
+  return function() {
+    console.log("Reading a token in the loose parser!")
+    return nextMethod.call(this)
+  }
+})
+```
+
+### Existing plugins
+
+ - [`acorn-jsx`](https://github.com/RReverser/acorn-jsx): Parse [Facebook JSX syntax extensions](https://github.com/facebook/jsx)
+ - [`acorn-objj`](https://github.com/cappuccino/acorn-objj): [Objective-J](http://www.cappuccino-project.org/learn/objective-j.html) language parser built as Acorn plugin
+ 
+ Plugins for ECMAScript proposals:
+ 
+ - [`acorn-stage3`](https://github.com/acornjs/acorn-stage3): Parse most stage 3 proposals, bundling:
+   - [`acorn-async-iteration`](https://github.com/acornjs/acorn-async-iteration): Parse [async iteration proposal](https://github.com/tc39/proposal-async-iteration)
+   - [`acorn-bigint`](https://github.com/acornjs/acorn-bigint): Parse [BigInt proposal](https://github.com/tc39/proposal-bigint)
+   - [`acorn-class-fields`](https://github.com/acornjs/acorn-class-fields): Parse [class fields proposal](https://github.com/tc39/proposal-class-fields)
+   - [`acorn-dynamic-import`](https://github.com/kesne/acorn-dynamic-import): Parse [import() proposal](https://github.com/tc39/proposal-dynamic-import)
+   - [`acorn-import-meta`](https://github.com/acornjs/acorn-import-meta): Parse [import.meta proposal](https://github.com/tc39/proposal-import-meta)
+   - [`acorn-numeric-separator`](https://github.com/acornjs/acorn-numeric-separator): Parse [numeric separator proposal](https://github.com/tc39/proposal-numeric-separator)
+   - [`acorn-optional-catch-binding`](https://github.com/acornjs/acorn-optional-catch-binding): Parse [optional catch binding proposal](https://github.com/tc39/proposal-optional-catch-binding)
+   - [`acorn-private-methods`](https://github.com/acornjs/acorn-private-methods): parse [private methods, getters and setters proposal](https://github.com/tc39/proposal-private-methods)
+   - [`acorn5-object-spread`](https://github.com/adrianheine/acorn5-object-spread): Parse [Object Rest/Spread Properties proposal](https://github.com/tc39/proposal-object-rest-spread)
+ - [`acorn-object-rest-spread`](https://github.com/victor-homyakov/acorn-object-rest-spread): Parse [Object Rest/Spread Properties proposal](https://github.com/tc39/proposal-object-rest-spread)
+ - [`acorn-es7`](https://github.com/angelozerr/acorn-es7): Parse [decorator syntax proposal](https://github.com/wycats/javascript-decorators)
+ - [`acorn-static-class-property-initializer`](https://github.com/victor-homyakov/acorn-static-class-property-initializer): Partial support for static class properties from [ES Class Fields & Static Properties Proposal](https://github.com/tc39/proposal-class-public-fields) to support static property initializers in [React components written as ES6+ classes](https://babeljs.io/blog/2015/06/07/react-on-es6-plus)

+ 69 - 0
ParticleFilter/node_modules/acorn/bin/_acorn.js

@@ -0,0 +1,69 @@
+#!/usr/bin/env node
+'use strict';
+
+var path = require('path');
+var fs = require('fs');
+var acorn = require('../dist/acorn.js');
+
+var infile;
+var forceFile;
+var silent = false;
+var compact = false;
+var tokenize = false;
+var options = {};
+
+function help(status) {
+  var print = (status == 0) ? console.log : console.error;
+  print("usage: " + path.basename(process.argv[1]) + " [--ecma3|--ecma5|--ecma6|--ecma7|--ecma8|--ecma9|...|--ecma2015|--ecma2016|--ecma2017|--ecma2018|...]");
+  print("        [--tokenize] [--locations] [---allow-hash-bang] [--compact] [--silent] [--module] [--help] [--] [infile]");
+  process.exit(status);
+}
+
+for (var i = 2; i < process.argv.length; ++i) {
+  var arg = process.argv[i];
+  if ((arg == "-" || arg[0] != "-") && !infile) { infile = arg; }
+  else if (arg == "--" && !infile && i + 2 == process.argv.length) { forceFile = infile = process.argv[++i]; }
+  else if (arg == "--locations") { options.locations = true; }
+  else if (arg == "--allow-hash-bang") { options.allowHashBang = true; }
+  else if (arg == "--silent") { silent = true; }
+  else if (arg == "--compact") { compact = true; }
+  else if (arg == "--help") { help(0); }
+  else if (arg == "--tokenize") { tokenize = true; }
+  else if (arg == "--module") { options.sourceType = "module"; }
+  else {
+    var match = arg.match(/^--ecma(\d+)$/);
+    if (match)
+      { options.ecmaVersion = +match[1]; }
+    else
+      { help(1); }
+  }
+}
+
+function run(code) {
+  var result;
+  try {
+    if (!tokenize) {
+      result = acorn.parse(code, options);
+    } else {
+      result = [];
+      var tokenizer$$1 = acorn.tokenizer(code, options), token;
+      do {
+        token = tokenizer$$1.getToken();
+        result.push(token);
+      } while (token.type != acorn.tokTypes.eof)
+    }
+  } catch (e) {
+    console.error(e.message);
+    process.exit(1);
+  }
+  if (!silent) { console.log(JSON.stringify(result, null, compact ? null : 2)); }
+}
+
+if (forceFile || infile && infile != "-") {
+  run(fs.readFileSync(infile, "utf8"));
+} else {
+  var code = "";
+  process.stdin.resume();
+  process.stdin.on("data", function (chunk) { return code += chunk; });
+  process.stdin.on("end", function () { return run(code); });
+}

+ 4 - 0
ParticleFilter/node_modules/acorn/bin/acorn

@@ -0,0 +1,4 @@
+#!/usr/bin/env node
+'use strict';
+
+require('./_acorn.js');

+ 21 - 0
ParticleFilter/node_modules/acorn/bin/run_test262.js

@@ -0,0 +1,21 @@
+const fs = require("fs")
+const path = require("path")
+const run = require("test262-parser-runner")
+const parse = require("..").parse
+
+const unsupportedFeatures = [
+  "BigInt",
+  "class-fields",
+  "class-fields-private",
+  "class-fields-public",
+  "numeric-separator-literal"
+];
+
+run(
+  (content, {sourceType}) => parse(content, {sourceType, ecmaVersion: 10}),
+  {
+    testsDirectory: path.dirname(require.resolve("test262/package.json")),
+    skip: test => (test.attrs.features && unsupportedFeatures.some(f => test.attrs.features.includes(f))),
+    whitelist: fs.readFileSync("./bin/test262.whitelist", "utf8").split("\n").filter(v => v)
+  }
+)

+ 409 - 0
ParticleFilter/node_modules/acorn/bin/test262.whitelist

@@ -0,0 +1,409 @@
+annexB/language/function-code/block-decl-func-no-skip-try.js (default)
+annexB/language/function-code/block-decl-func-skip-early-err-block.js (default)
+annexB/language/function-code/block-decl-func-skip-early-err.js (default)
+annexB/language/function-code/block-decl-func-skip-early-err-switch.js (default)
+annexB/language/function-code/block-decl-func-skip-early-err-try.js (default)
+annexB/language/function-code/if-decl-else-decl-a-func-no-skip-try.js (default)
+annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-block.js (default)
+annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err.js (default)
+annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-switch.js (default)
+annexB/language/function-code/if-decl-else-decl-a-func-skip-early-err-try.js (default)
+annexB/language/function-code/if-decl-else-decl-b-func-no-skip-try.js (default)
+annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-block.js (default)
+annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err.js (default)
+annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-switch.js (default)
+annexB/language/function-code/if-decl-else-decl-b-func-skip-early-err-try.js (default)
+annexB/language/function-code/if-decl-else-stmt-func-no-skip-try.js (default)
+annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-block.js (default)
+annexB/language/function-code/if-decl-else-stmt-func-skip-early-err.js (default)
+annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-switch.js (default)
+annexB/language/function-code/if-decl-else-stmt-func-skip-early-err-try.js (default)
+annexB/language/function-code/if-decl-no-else-func-no-skip-try.js (default)
+annexB/language/function-code/if-decl-no-else-func-skip-early-err-block.js (default)
+annexB/language/function-code/if-decl-no-else-func-skip-early-err.js (default)
+annexB/language/function-code/if-decl-no-else-func-skip-early-err-switch.js (default)
+annexB/language/function-code/if-decl-no-else-func-skip-early-err-try.js (default)
+annexB/language/function-code/if-stmt-else-decl-func-no-skip-try.js (default)
+annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-block.js (default)
+annexB/language/function-code/if-stmt-else-decl-func-skip-early-err.js (default)
+annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-switch.js (default)
+annexB/language/function-code/if-stmt-else-decl-func-skip-early-err-try.js (default)
+annexB/language/function-code/switch-case-func-no-skip-try.js (default)
+annexB/language/function-code/switch-case-func-skip-early-err-block.js (default)
+annexB/language/function-code/switch-case-func-skip-early-err.js (default)
+annexB/language/function-code/switch-case-func-skip-early-err-switch.js (default)
+annexB/language/function-code/switch-case-func-skip-early-err-try.js (default)
+annexB/language/function-code/switch-dflt-func-no-skip-try.js (default)
+annexB/language/function-code/switch-dflt-func-skip-early-err-block.js (default)
+annexB/language/function-code/switch-dflt-func-skip-early-err.js (default)
+annexB/language/function-code/switch-dflt-func-skip-early-err-switch.js (default)
+annexB/language/function-code/switch-dflt-func-skip-early-err-try.js (default)
+annexB/language/global-code/block-decl-global-no-skip-try.js (default)
+annexB/language/global-code/block-decl-global-skip-early-err-block.js (default)
+annexB/language/global-code/block-decl-global-skip-early-err.js (default)
+annexB/language/global-code/block-decl-global-skip-early-err-switch.js (default)
+annexB/language/global-code/block-decl-global-skip-early-err-try.js (default)
+annexB/language/global-code/if-decl-else-decl-a-global-no-skip-try.js (default)
+annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-block.js (default)
+annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err.js (default)
+annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-switch.js (default)
+annexB/language/global-code/if-decl-else-decl-a-global-skip-early-err-try.js (default)
+annexB/language/global-code/if-decl-else-decl-b-global-no-skip-try.js (default)
+annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-block.js (default)
+annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err.js (default)
+annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-switch.js (default)
+annexB/language/global-code/if-decl-else-decl-b-global-skip-early-err-try.js (default)
+annexB/language/global-code/if-decl-else-stmt-global-no-skip-try.js (default)
+annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-block.js (default)
+annexB/language/global-code/if-decl-else-stmt-global-skip-early-err.js (default)
+annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-switch.js (default)
+annexB/language/global-code/if-decl-else-stmt-global-skip-early-err-try.js (default)
+annexB/language/global-code/if-decl-no-else-global-no-skip-try.js (default)
+annexB/language/global-code/if-decl-no-else-global-skip-early-err-block.js (default)
+annexB/language/global-code/if-decl-no-else-global-skip-early-err.js (default)
+annexB/language/global-code/if-decl-no-else-global-skip-early-err-switch.js (default)
+annexB/language/global-code/if-decl-no-else-global-skip-early-err-try.js (default)
+annexB/language/global-code/if-stmt-else-decl-global-no-skip-try.js (default)
+annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-block.js (default)
+annexB/language/global-code/if-stmt-else-decl-global-skip-early-err.js (default)
+annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-switch.js (default)
+annexB/language/global-code/if-stmt-else-decl-global-skip-early-err-try.js (default)
+annexB/language/global-code/switch-case-global-no-skip-try.js (default)
+annexB/language/global-code/switch-case-global-skip-early-err-block.js (default)
+annexB/language/global-code/switch-case-global-skip-early-err.js (default)
+annexB/language/global-code/switch-case-global-skip-early-err-switch.js (default)
+annexB/language/global-code/switch-case-global-skip-early-err-try.js (default)
+annexB/language/global-code/switch-dflt-global-no-skip-try.js (default)
+annexB/language/global-code/switch-dflt-global-skip-early-err-block.js (default)
+annexB/language/global-code/switch-dflt-global-skip-early-err.js (default)
+annexB/language/global-code/switch-dflt-global-skip-early-err-switch.js (default)
+annexB/language/global-code/switch-dflt-global-skip-early-err-try.js (default)
+annexB/language/statements/try/catch-redeclared-for-in-var.js (default)
+annexB/language/statements/try/catch-redeclared-for-in-var.js (strict mode)
+annexB/language/statements/try/catch-redeclared-for-var.js (default)
+annexB/language/statements/try/catch-redeclared-for-var.js (strict mode)
+annexB/language/statements/try/catch-redeclared-var-statement-captured.js (default)
+annexB/language/statements/try/catch-redeclared-var-statement-captured.js (strict mode)
+annexB/language/statements/try/catch-redeclared-var-statement.js (default)
+annexB/language/statements/try/catch-redeclared-var-statement.js (strict mode)
+language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-function-declaration.js (default)
+language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-function-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-function-declaration.js (default)
+language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-function-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js (default)
+language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-var-declaration.js (default)
+language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-var-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-generator-declaration.js (default)
+language/block-scope/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-generator-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-function-declaration.js (default)
+language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-function-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js (default)
+language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-function-declaration.js (default)
+language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-function-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js (default)
+language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-var-declaration.js (default)
+language/block-scope/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-var-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-generator-declaration.js (default)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-generator-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-generator-declaration.js (default)
+language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-generator-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js (default)
+language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-generator-declaration.js (default)
+language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-generator-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-function-declaration.js (default)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-function-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-const-declaration.js (default)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-const-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-function-declaration.js (default)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-function-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js (default)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-let-declaration.js (default)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-let-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-var-declaration.js (default)
+language/block-scope/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-var-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/block-scope/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-function-declaration.js (default)
+language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-function-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-function-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js (default)
+language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration.js (default)
+language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js (default)
+language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js (default)
+language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js (default)
+language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js (default)
+language/block-scope/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/block-scope/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-function-declaration.js (default)
+language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-function-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-function-declaration.js (default)
+language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-function-declaration.js (strict mode)
+language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js (default)
+language/block-scope/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js (strict mode)
+language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js (default)
+language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js (strict mode)
+language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js (default)
+language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js (strict mode)
+language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js (default)
+language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js (strict mode)
+language/expressions/async-function/early-errors-expression-body-contains-super-call.js (default)
+language/expressions/async-function/early-errors-expression-body-contains-super-call.js (strict mode)
+language/expressions/async-function/early-errors-expression-body-contains-super-property.js (default)
+language/expressions/async-function/early-errors-expression-body-contains-super-property.js (strict mode)
+language/expressions/async-function/early-errors-expression-formals-contains-super-call.js (default)
+language/expressions/async-function/early-errors-expression-formals-contains-super-call.js (strict mode)
+language/expressions/async-function/early-errors-expression-formals-contains-super-property.js (default)
+language/expressions/async-function/early-errors-expression-formals-contains-super-property.js (strict mode)
+language/expressions/class/method-param-dflt-yield.js (default)
+language/expressions/class/static-method-param-dflt-yield.js (default)
+language/expressions/function/early-body-super-call.js (default)
+language/expressions/function/early-body-super-call.js (strict mode)
+language/expressions/function/early-body-super-prop.js (default)
+language/expressions/function/early-body-super-prop.js (strict mode)
+language/expressions/function/early-params-super-call.js (default)
+language/expressions/function/early-params-super-call.js (strict mode)
+language/expressions/function/early-params-super-prop.js (default)
+language/expressions/function/early-params-super-prop.js (strict mode)
+language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js (default)
+language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js (strict mode)
+language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js (default)
+language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js (default)
+language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js (strict mode)
+language/expressions/object/method-definition/generator-super-call-body.js (default)
+language/expressions/object/method-definition/generator-super-call-body.js (strict mode)
+language/expressions/object/method-definition/generator-super-call-param.js (default)
+language/expressions/object/method-definition/generator-super-call-param.js (strict mode)
+language/expressions/object/prop-def-invalid-async-prefix.js (default)
+language/expressions/object/prop-def-invalid-async-prefix.js (strict mode)
+language/expressions/yield/in-iteration-stmt.js (default)
+language/expressions/yield/in-iteration-stmt.js (strict mode)
+language/expressions/yield/star-in-iteration-stmt.js (default)
+language/expressions/yield/star-in-iteration-stmt.js (strict mode)
+language/global-code/new.target-arrow.js (default)
+language/global-code/new.target-arrow.js (strict mode)
+language/global-code/super-call-arrow.js (default)
+language/global-code/super-call-arrow.js (strict mode)
+language/global-code/super-prop-arrow.js (default)
+language/global-code/super-prop-arrow.js (strict mode)
+language/module-code/early-export-global.js (default)
+language/module-code/early-export-global.js (strict mode)
+language/module-code/early-export-unresolvable.js (default)
+language/module-code/early-export-unresolvable.js (strict mode)
+language/module-code/parse-err-hoist-lex-fun.js (default)
+language/module-code/parse-err-hoist-lex-fun.js (strict mode)
+language/module-code/parse-err-hoist-lex-gen.js (default)
+language/module-code/parse-err-hoist-lex-gen.js (strict mode)
+language/statements/async-function/early-errors-declaration-body-contains-super-call.js (default)
+language/statements/async-function/early-errors-declaration-body-contains-super-call.js (strict mode)
+language/statements/async-function/early-errors-declaration-body-contains-super-property.js (default)
+language/statements/async-function/early-errors-declaration-body-contains-super-property.js (strict mode)
+language/statements/async-function/early-errors-declaration-formals-contains-super-call.js (default)
+language/statements/async-function/early-errors-declaration-formals-contains-super-call.js (strict mode)
+language/statements/async-function/early-errors-declaration-formals-contains-super-property.js (default)
+language/statements/async-function/early-errors-declaration-formals-contains-super-property.js (strict mode)
+language/expressions/async-generator/early-errors-expression-body-contains-super-call.js (default)
+language/expressions/async-generator/early-errors-expression-body-contains-super-call.js (strict mode)
+language/expressions/async-generator/early-errors-expression-body-contains-super-property.js (default)
+language/expressions/async-generator/early-errors-expression-body-contains-super-property.js (strict mode)
+language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js (default)
+language/expressions/async-generator/early-errors-expression-formals-contains-super-call.js (strict mode)
+language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js (default)
+language/expressions/async-generator/early-errors-expression-formals-contains-super-property.js (strict mode)
+language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js (default)
+language/statements/class/definition/early-errors-class-method-body-contains-super-call.js (default)
+language/statements/class/definition/early-errors-class-method-body-contains-super-call.js (strict mode)
+language/statements/class/definition/early-errors-class-method-duplicate-parameters.js (default)
+language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js (default)
+language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js (default)
+language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js (strict mode)
+language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js (default)
+language/statements/class/definition/methods-gen-yield-as-identifier-in-nested-function.js (default)
+language/statements/class/method-param-yield.js (default)
+language/statements/class/static-method-param-yield.js (default)
+language/statements/class/strict-mode/with.js (default)
+language/statements/class/syntax/early-errors/class-body-has-direct-super-missing-class-heritage.js (default)
+language/statements/class/syntax/early-errors/class-body-has-direct-super-missing-class-heritage.js (strict mode)
+language/statements/class/syntax/early-errors/class-body-method-contains-direct-super.js (default)
+language/statements/class/syntax/early-errors/class-body-method-contains-direct-super.js (strict mode)
+language/statements/class/syntax/early-errors/class-body-special-method-generator-contains-direct-super.js (default)
+language/statements/class/syntax/early-errors/class-body-special-method-generator-contains-direct-super.js (strict mode)
+language/statements/class/syntax/early-errors/class-body-special-method-get-contains-direct-super.js (default)
+language/statements/class/syntax/early-errors/class-body-special-method-get-contains-direct-super.js (strict mode)
+language/statements/class/syntax/early-errors/class-body-special-method-set-contains-direct-super.js (default)
+language/statements/class/syntax/early-errors/class-body-special-method-set-contains-direct-super.js (strict mode)
+language/statements/class/syntax/early-errors/class-body-static-method-contains-direct-super.js (default)
+language/statements/class/syntax/early-errors/class-body-static-method-contains-direct-super.js (strict mode)
+language/statements/class/syntax/early-errors/class-body-static-method-get-contains-direct-super.js (default)
+language/statements/class/syntax/early-errors/class-body-static-method-get-contains-direct-super.js (strict mode)
+language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js (default)
+language/statements/class/syntax/early-errors/class-body-static-method-set-contains-direct-super.js (strict mode)
+language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js (default)
+language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js (strict mode)
+language/statements/class/syntax/early-errors/class-definition-evaluation-scriptbody-duplicate-binding.js (default)
+language/statements/class/syntax/early-errors/class-definition-evaluation-scriptbody-duplicate-binding.js (strict mode)
+language/statements/const/syntax/const-declaring-let-split-across-two-lines.js (default)
+language/statements/do-while/labelled-fn-stmt.js (default)
+language/statements/for/head-let-bound-names-in-stmt.js (default)
+language/statements/for/head-let-bound-names-in-stmt.js (strict mode)
+language/statements/for-in/head-const-bound-names-in-stmt.js (default)
+language/statements/for-in/head-const-bound-names-in-stmt.js (strict mode)
+language/statements/for-in/head-const-bound-names-let.js (default)
+language/statements/for-in/head-let-bound-names-in-stmt.js (default)
+language/statements/for-in/head-let-bound-names-in-stmt.js (strict mode)
+language/statements/for-in/head-let-bound-names-let.js (default)
+language/statements/for-in/labelled-fn-stmt-const.js (default)
+language/statements/for-in/labelled-fn-stmt-let.js (default)
+language/statements/for-in/labelled-fn-stmt-lhs.js (default)
+language/statements/for-in/labelled-fn-stmt-var.js (default)
+language/statements/for-in/let-block-with-newline.js (default)
+language/statements/for-in/let-identifier-with-newline.js (default)
+language/statements/for/labelled-fn-stmt-expr.js (default)
+language/statements/for/labelled-fn-stmt-let.js (default)
+language/statements/for/labelled-fn-stmt-var.js (default)
+language/statements/for/let-block-with-newline.js (default)
+language/statements/for/let-identifier-with-newline.js (default)
+language/statements/for-of/head-const-bound-names-in-stmt.js (default)
+language/statements/for-of/head-const-bound-names-in-stmt.js (strict mode)
+language/statements/for-of/head-const-bound-names-let.js (default)
+language/statements/for-of/head-let-bound-names-in-stmt.js (default)
+language/statements/for-of/head-let-bound-names-in-stmt.js (strict mode)
+language/statements/for-of/head-let-bound-names-let.js (default)
+language/statements/for-of/labelled-fn-stmt-const.js (default)
+language/statements/for-of/labelled-fn-stmt-let.js (default)
+language/statements/for-of/labelled-fn-stmt-lhs.js (default)
+language/statements/for-of/labelled-fn-stmt-var.js (default)
+language/statements/for-of/let-block-with-newline.js (default)
+language/statements/for-of/let-identifier-with-newline.js (default)
+language/statements/for-await-of/let-block-with-newline.js (default)
+language/statements/for-await-of/let-identifier-with-newline.js (default)
+language/statements/function/early-body-super-call.js (default)
+language/statements/function/early-body-super-call.js (strict mode)
+language/statements/function/early-body-super-prop.js (default)
+language/statements/function/early-body-super-prop.js (strict mode)
+language/statements/function/early-params-super-call.js (default)
+language/statements/function/early-params-super-call.js (strict mode)
+language/statements/function/early-params-super-prop.js (default)
+language/statements/function/early-params-super-prop.js (strict mode)
+language/statements/if/if-gen-else-gen.js (default)
+language/statements/if/if-gen-else-stmt.js (default)
+language/statements/if/if-gen-no-else.js (default)
+language/statements/if/if-stmt-else-gen.js (default)
+language/statements/if/labelled-fn-stmt-first.js (default)
+language/statements/if/labelled-fn-stmt-lone.js (default)
+language/statements/if/labelled-fn-stmt-second.js (default)
+language/statements/if/let-block-with-newline.js (default)
+language/statements/if/let-identifier-with-newline.js (default)
+language/statements/labeled/decl-async-function.js (default)
+language/statements/labeled/let-block-with-newline.js (default)
+language/statements/labeled/let-identifier-with-newline.js (default)
+language/statements/let/syntax/identifier-let-disallowed-as-boundname.js (default)
+language/statements/let/syntax/let-let-declaration-split-across-two-lines.js (default)
+language/statements/let/syntax/let-let-declaration-with-initializer-split-across-two-lines.js (default)
+language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-function-declaration.js (default)
+language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-function-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-function-declaration.js (default)
+language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-function-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js (default)
+language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-generator-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-var-declaration.js (default)
+language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-var-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-generator-declaration.js (default)
+language/statements/switch/syntax/redeclaration/async-function-declaration-attempt-to-redeclare-with-async-generator-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-function-declaration.js (default)
+language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-function-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js (default)
+language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-function-declaration.js (default)
+language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-function-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js (default)
+language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-generator-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-var-declaration.js (default)
+language/statements/switch/syntax/redeclaration/async-generator-declaration-attempt-to-redeclare-with-var-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-generator-declaration.js (default)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-generator-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-generator-declaration.js (default)
+language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-generator-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js (default)
+language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-generator-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-generator-declaration.js (default)
+language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-generator-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-function-declaration.js (default)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-async-function-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-const-declaration.js (default)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-const-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-function-declaration.js (default)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-function-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js (default)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-generator-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-let-declaration.js (default)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-let-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-var-declaration.js (default)
+language/statements/switch/syntax/redeclaration/class-declaration-attempt-to-redeclare-with-var-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/statements/switch/syntax/redeclaration/const-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-function-declaration.js (default)
+language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-async-function-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-function-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js (default)
+language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-generator-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration.js (default)
+language/statements/switch/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js (default)
+language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-async-function-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js (default)
+language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-function-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js (default)
+language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-generator-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js (default)
+language/statements/switch/syntax/redeclaration/generator-declaration-attempt-to-redeclare-with-var-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/statements/switch/syntax/redeclaration/let-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-function-declaration.js (default)
+language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-async-function-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-class-declaration.js (default)
+language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-class-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-function-declaration.js (default)
+language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-function-declaration.js (strict mode)
+language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js (default)
+language/statements/switch/syntax/redeclaration/var-declaration-attempt-to-redeclare-with-generator-declaration.js (strict mode)
+language/statements/while/labelled-fn-stmt.js (default)
+language/statements/while/let-block-with-newline.js (default)
+language/statements/while/let-identifier-with-newline.js (default)
+language/statements/with/labelled-fn-stmt.js (default)
+language/statements/with/let-block-with-newline.js (default)
+language/statements/with/let-identifier-with-newline.js (default)
+language/white-space/mongolian-vowel-separator.js (default)
+language/white-space/mongolian-vowel-separator.js (strict mode)

+ 0 - 0
ParticleFilter/node_modules/acorn/dist/.keep


文件差异内容过多而无法显示
+ 29 - 0
ParticleFilter/node_modules/acorn/dist/acorn.es.js


文件差异内容过多而无法显示
+ 35 - 0
ParticleFilter/node_modules/acorn/dist/acorn.js


+ 1424 - 0
ParticleFilter/node_modules/acorn/dist/acorn_loose.es.js

@@ -0,0 +1,1424 @@
+import { Node, SourceLocation, Token, addLooseExports, defaultOptions, getLineInfo, isNewLine, lineBreak, lineBreakG, tokTypes, tokenizer } from './acorn.es';
+
+function noop() {}
+
+// Registered plugins
+var pluginsLoose = {};
+
+var LooseParser = function LooseParser(input, options) {
+  if ( options === void 0 ) options = {};
+
+  this.toks = tokenizer(input, options);
+  this.options = this.toks.options;
+  this.input = this.toks.input;
+  this.tok = this.last = {type: tokTypes.eof, start: 0, end: 0};
+  this.tok.validateRegExpFlags = noop;
+  this.tok.validateRegExpPattern = noop;
+  if (this.options.locations) {
+    var here = this.toks.curPosition();
+    this.tok.loc = new SourceLocation(this.toks, here, here);
+  }
+  this.ahead = []; // Tokens ahead
+  this.context = []; // Indentation contexted
+  this.curIndent = 0;
+  this.curLineStart = 0;
+  this.nextLineStart = this.lineEnd(this.curLineStart) + 1;
+  this.inAsync = false;
+  this.inFunction = false;
+  // Load plugins
+  this.options.pluginsLoose = options.pluginsLoose || {};
+  this.loadPlugins(this.options.pluginsLoose);
+};
+
+LooseParser.prototype.startNode = function startNode () {
+  return new Node(this.toks, this.tok.start, this.options.locations ? this.tok.loc.start : null)
+};
+
+LooseParser.prototype.storeCurrentPos = function storeCurrentPos () {
+  return this.options.locations ? [this.tok.start, this.tok.loc.start] : this.tok.start
+};
+
+LooseParser.prototype.startNodeAt = function startNodeAt (pos) {
+  if (this.options.locations) {
+    return new Node(this.toks, pos[0], pos[1])
+  } else {
+    return new Node(this.toks, pos)
+  }
+};
+
+LooseParser.prototype.finishNode = function finishNode (node, type) {
+  node.type = type;
+  node.end = this.last.end;
+  if (this.options.locations)
+    { node.loc.end = this.last.loc.end; }
+  if (this.options.ranges)
+    { node.range[1] = this.last.end; }
+  return node
+};
+
+LooseParser.prototype.dummyNode = function dummyNode (type) {
+  var dummy = this.startNode();
+  dummy.type = type;
+  dummy.end = dummy.start;
+  if (this.options.locations)
+    { dummy.loc.end = dummy.loc.start; }
+  if (this.options.ranges)
+    { dummy.range[1] = dummy.start; }
+  this.last = {type: tokTypes.name, start: dummy.start, end: dummy.start, loc: dummy.loc};
+  return dummy
+};
+
+LooseParser.prototype.dummyIdent = function dummyIdent () {
+  var dummy = this.dummyNode("Identifier");
+  dummy.name = "✖";
+  return dummy
+};
+
+LooseParser.prototype.dummyString = function dummyString () {
+  var dummy = this.dummyNode("Literal");
+  dummy.value = dummy.raw = "✖";
+  return dummy
+};
+
+LooseParser.prototype.eat = function eat (type) {
+  if (this.tok.type === type) {
+    this.next();
+    return true
+  } else {
+    return false
+  }
+};
+
+LooseParser.prototype.isContextual = function isContextual (name) {
+  return this.tok.type === tokTypes.name && this.tok.value === name
+};
+
+LooseParser.prototype.eatContextual = function eatContextual (name) {
+  return this.tok.value === name && this.eat(tokTypes.name)
+};
+
+LooseParser.prototype.canInsertSemicolon = function canInsertSemicolon () {
+  return this.tok.type === tokTypes.eof || this.tok.type === tokTypes.braceR ||
+    lineBreak.test(this.input.slice(this.last.end, this.tok.start))
+};
+
+LooseParser.prototype.semicolon = function semicolon () {
+  return this.eat(tokTypes.semi)
+};
+
+LooseParser.prototype.expect = function expect (type) {
+    var this$1 = this;
+
+  if (this.eat(type)) { return true }
+  for (var i = 1; i <= 2; i++) {
+    if (this$1.lookAhead(i).type == type) {
+      for (var j = 0; j < i; j++) { this$1.next(); }
+      return true
+    }
+  }
+};
+
+LooseParser.prototype.pushCx = function pushCx () {
+  this.context.push(this.curIndent);
+};
+
+LooseParser.prototype.popCx = function popCx () {
+  this.curIndent = this.context.pop();
+};
+
+LooseParser.prototype.lineEnd = function lineEnd (pos) {
+  while (pos < this.input.length && !isNewLine(this.input.charCodeAt(pos))) { ++pos; }
+  return pos
+};
+
+LooseParser.prototype.indentationAfter = function indentationAfter (pos) {
+    var this$1 = this;
+
+  for (var count = 0;; ++pos) {
+    var ch = this$1.input.charCodeAt(pos);
+    if (ch === 32) { ++count; }
+    else if (ch === 9) { count += this$1.options.tabSize; }
+    else { return count }
+  }
+};
+
+LooseParser.prototype.closes = function closes (closeTok, indent, line, blockHeuristic) {
+  if (this.tok.type === closeTok || this.tok.type === tokTypes.eof) { return true }
+  return line != this.curLineStart && this.curIndent < indent && this.tokenStartsLine() &&
+    (!blockHeuristic || this.nextLineStart >= this.input.length ||
+     this.indentationAfter(this.nextLineStart) < indent)
+};
+
+LooseParser.prototype.tokenStartsLine = function tokenStartsLine () {
+    var this$1 = this;
+
+  for (var p = this.tok.start - 1; p >= this.curLineStart; --p) {
+    var ch = this$1.input.charCodeAt(p);
+    if (ch !== 9 && ch !== 32) { return false }
+  }
+  return true
+};
+
+LooseParser.prototype.extend = function extend (name, f) {
+  this[name] = f(this[name]);
+};
+
+LooseParser.prototype.loadPlugins = function loadPlugins (pluginConfigs) {
+    var this$1 = this;
+
+  for (var name in pluginConfigs) {
+    var plugin = pluginsLoose[name];
+    if (!plugin) { throw new Error("Plugin '" + name + "' not found") }
+    plugin(this$1, pluginConfigs[name]);
+  }
+};
+
+LooseParser.prototype.parse = function parse () {
+  this.next();
+  return this.parseTopLevel()
+};
+
+var lp = LooseParser.prototype;
+
+function isSpace(ch) {
+  return (ch < 14 && ch > 8) || ch === 32 || ch === 160 || isNewLine(ch)
+}
+
+lp.next = function() {
+  var this$1 = this;
+
+  this.last = this.tok;
+  if (this.ahead.length)
+    { this.tok = this.ahead.shift(); }
+  else
+    { this.tok = this.readToken(); }
+
+  if (this.tok.start >= this.nextLineStart) {
+    while (this.tok.start >= this.nextLineStart) {
+      this$1.curLineStart = this$1.nextLineStart;
+      this$1.nextLineStart = this$1.lineEnd(this$1.curLineStart) + 1;
+    }
+    this.curIndent = this.indentationAfter(this.curLineStart);
+  }
+};
+
+lp.readToken = function() {
+  var this$1 = this;
+
+  for (;;) {
+    try {
+      this$1.toks.next();
+      if (this$1.toks.type === tokTypes.dot &&
+          this$1.input.substr(this$1.toks.end, 1) === "." &&
+          this$1.options.ecmaVersion >= 6) {
+        this$1.toks.end++;
+        this$1.toks.type = tokTypes.ellipsis;
+      }
+      return new Token(this$1.toks)
+    } catch (e) {
+      if (!(e instanceof SyntaxError)) { throw e }
+
+      // Try to skip some text, based on the error message, and then continue
+      var msg = e.message, pos = e.raisedAt, replace = true;
+      if (/unterminated/i.test(msg)) {
+        pos = this$1.lineEnd(e.pos + 1);
+        if (/string/.test(msg)) {
+          replace = {start: e.pos, end: pos, type: tokTypes.string, value: this$1.input.slice(e.pos + 1, pos)};
+        } else if (/regular expr/i.test(msg)) {
+          var re = this$1.input.slice(e.pos, pos);
+          try { re = new RegExp(re); } catch (e) { /* ignore compilation error due to new syntax */ }
+          replace = {start: e.pos, end: pos, type: tokTypes.regexp, value: re};
+        } else if (/template/.test(msg)) {
+          replace = {
+            start: e.pos,
+            end: pos,
+            type: tokTypes.template,
+            value: this$1.input.slice(e.pos, pos)
+          };
+        } else {
+          replace = false;
+        }
+      } else if (/invalid (unicode|regexp|number)|expecting unicode|octal literal|is reserved|directly after number|expected number in radix/i.test(msg)) {
+        while (pos < this.input.length && !isSpace(this.input.charCodeAt(pos))) { ++pos; }
+      } else if (/character escape|expected hexadecimal/i.test(msg)) {
+        while (pos < this.input.length) {
+          var ch = this$1.input.charCodeAt(pos++);
+          if (ch === 34 || ch === 39 || isNewLine(ch)) { break }
+        }
+      } else if (/unexpected character/i.test(msg)) {
+        pos++;
+        replace = false;
+      } else if (/regular expression/i.test(msg)) {
+        replace = true;
+      } else {
+        throw e
+      }
+      this$1.resetTo(pos);
+      if (replace === true) { replace = {start: pos, end: pos, type: tokTypes.name, value: "✖"}; }
+      if (replace) {
+        if (this$1.options.locations)
+          { replace.loc = new SourceLocation(
+            this$1.toks,
+            getLineInfo(this$1.input, replace.start),
+            getLineInfo(this$1.input, replace.end)); }
+        return replace
+      }
+    }
+  }
+};
+
+lp.resetTo = function(pos) {
+  var this$1 = this;
+
+  this.toks.pos = pos;
+  var ch = this.input.charAt(pos - 1);
+  this.toks.exprAllowed = !ch || /[[{(,;:?/*=+\-~!|&%^<>]/.test(ch) ||
+    /[enwfd]/.test(ch) &&
+    /\b(case|else|return|throw|new|in|(instance|type)?of|delete|void)$/.test(this.input.slice(pos - 10, pos));
+
+  if (this.options.locations) {
+    this.toks.curLine = 1;
+    this.toks.lineStart = lineBreakG.lastIndex = 0;
+    var match;
+    while ((match = lineBreakG.exec(this.input)) && match.index < pos) {
+      ++this$1.toks.curLine;
+      this$1.toks.lineStart = match.index + match[0].length;
+    }
+  }
+};
+
+lp.lookAhead = function(n) {
+  var this$1 = this;
+
+  while (n > this.ahead.length)
+    { this$1.ahead.push(this$1.readToken()); }
+  return this.ahead[n - 1]
+};
+
+function isDummy(node) { return node.name == "✖" }
+
+var lp$1 = LooseParser.prototype;
+
+lp$1.parseTopLevel = function() {
+  var this$1 = this;
+
+  var node = this.startNodeAt(this.options.locations ? [0, getLineInfo(this.input, 0)] : 0);
+  node.body = [];
+  while (this.tok.type !== tokTypes.eof) { node.body.push(this$1.parseStatement()); }
+  this.toks.adaptDirectivePrologue(node.body);
+  this.last = this.tok;
+  if (this.options.ecmaVersion >= 6) {
+    node.sourceType = this.options.sourceType;
+  }
+  return this.finishNode(node, "Program")
+};
+
+lp$1.parseStatement = function() {
+  var this$1 = this;
+
+  var starttype = this.tok.type, node = this.startNode(), kind;
+
+  if (this.toks.isLet()) {
+    starttype = tokTypes._var;
+    kind = "let";
+  }
+
+  switch (starttype) {
+  case tokTypes._break: case tokTypes._continue:
+    this.next();
+    var isBreak = starttype === tokTypes._break;
+    if (this.semicolon() || this.canInsertSemicolon()) {
+      node.label = null;
+    } else {
+      node.label = this.tok.type === tokTypes.name ? this.parseIdent() : null;
+      this.semicolon();
+    }
+    return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement")
+
+  case tokTypes._debugger:
+    this.next();
+    this.semicolon();
+    return this.finishNode(node, "DebuggerStatement")
+
+  case tokTypes._do:
+    this.next();
+    node.body = this.parseStatement();
+    node.test = this.eat(tokTypes._while) ? this.parseParenExpression() : this.dummyIdent();
+    this.semicolon();
+    return this.finishNode(node, "DoWhileStatement")
+
+  case tokTypes._for:
+    this.next(); // `for` keyword
+    var isAwait = this.options.ecmaVersion >= 9 && this.inAsync && this.eatContextual("await");
+
+    this.pushCx();
+    this.expect(tokTypes.parenL);
+    if (this.tok.type === tokTypes.semi) { return this.parseFor(node, null) }
+    var isLet = this.toks.isLet();
+    if (isLet || this.tok.type === tokTypes._var || this.tok.type === tokTypes._const) {
+      var init$1 = this.parseVar(true, isLet ? "let" : this.tok.value);
+      if (init$1.declarations.length === 1 && (this.tok.type === tokTypes._in || this.isContextual("of"))) {
+        if (this.options.ecmaVersion >= 9 && this.tok.type !== tokTypes._in) {
+          node.await = isAwait;
+        }
+        return this.parseForIn(node, init$1)
+      }
+      return this.parseFor(node, init$1)
+    }
+    var init = this.parseExpression(true);
+    if (this.tok.type === tokTypes._in || this.isContextual("of")) {
+      if (this.options.ecmaVersion >= 9 && this.tok.type !== tokTypes._in) {
+        node.await = isAwait;
+      }
+      return this.parseForIn(node, this.toAssignable(init))
+    }
+    return this.parseFor(node, init)
+
+  case tokTypes._function:
+    this.next();
+    return this.parseFunction(node, true)
+
+  case tokTypes._if:
+    this.next();
+    node.test = this.parseParenExpression();
+    node.consequent = this.parseStatement();
+    node.alternate = this.eat(tokTypes._else) ? this.parseStatement() : null;
+    return this.finishNode(node, "IfStatement")
+
+  case tokTypes._return:
+    this.next();
+    if (this.eat(tokTypes.semi) || this.canInsertSemicolon()) { node.argument = null; }
+    else { node.argument = this.parseExpression(); this.semicolon(); }
+    return this.finishNode(node, "ReturnStatement")
+
+  case tokTypes._switch:
+    var blockIndent = this.curIndent, line = this.curLineStart;
+    this.next();
+    node.discriminant = this.parseParenExpression();
+    node.cases = [];
+    this.pushCx();
+    this.expect(tokTypes.braceL);
+
+    var cur;
+    while (!this.closes(tokTypes.braceR, blockIndent, line, true)) {
+      if (this$1.tok.type === tokTypes._case || this$1.tok.type === tokTypes._default) {
+        var isCase = this$1.tok.type === tokTypes._case;
+        if (cur) { this$1.finishNode(cur, "SwitchCase"); }
+        node.cases.push(cur = this$1.startNode());
+        cur.consequent = [];
+        this$1.next();
+        if (isCase) { cur.test = this$1.parseExpression(); }
+        else { cur.test = null; }
+        this$1.expect(tokTypes.colon);
+      } else {
+        if (!cur) {
+          node.cases.push(cur = this$1.startNode());
+          cur.consequent = [];
+          cur.test = null;
+        }
+        cur.consequent.push(this$1.parseStatement());
+      }
+    }
+    if (cur) { this.finishNode(cur, "SwitchCase"); }
+    this.popCx();
+    this.eat(tokTypes.braceR);
+    return this.finishNode(node, "SwitchStatement")
+
+  case tokTypes._throw:
+    this.next();
+    node.argument = this.parseExpression();
+    this.semicolon();
+    return this.finishNode(node, "ThrowStatement")
+
+  case tokTypes._try:
+    this.next();
+    node.block = this.parseBlock();
+    node.handler = null;
+    if (this.tok.type === tokTypes._catch) {
+      var clause = this.startNode();
+      this.next();
+      if (this.eat(tokTypes.parenL)) {
+        clause.param = this.toAssignable(this.parseExprAtom(), true);
+        this.expect(tokTypes.parenR);
+      } else {
+        clause.param = null;
+      }
+      clause.body = this.parseBlock();
+      node.handler = this.finishNode(clause, "CatchClause");
+    }
+    node.finalizer = this.eat(tokTypes._finally) ? this.parseBlock() : null;
+    if (!node.handler && !node.finalizer) { return node.block }
+    return this.finishNode(node, "TryStatement")
+
+  case tokTypes._var:
+  case tokTypes._const:
+    return this.parseVar(false, kind || this.tok.value)
+
+  case tokTypes._while:
+    this.next();
+    node.test = this.parseParenExpression();
+    node.body = this.parseStatement();
+    return this.finishNode(node, "WhileStatement")
+
+  case tokTypes._with:
+    this.next();
+    node.object = this.parseParenExpression();
+    node.body = this.parseStatement();
+    return this.finishNode(node, "WithStatement")
+
+  case tokTypes.braceL:
+    return this.parseBlock()
+
+  case tokTypes.semi:
+    this.next();
+    return this.finishNode(node, "EmptyStatement")
+
+  case tokTypes._class:
+    return this.parseClass(true)
+
+  case tokTypes._import:
+    return this.parseImport()
+
+  case tokTypes._export:
+    return this.parseExport()
+
+  default:
+    if (this.toks.isAsyncFunction()) {
+      this.next();
+      this.next();
+      return this.parseFunction(node, true, true)
+    }
+    var expr = this.parseExpression();
+    if (isDummy(expr)) {
+      this.next();
+      if (this.tok.type === tokTypes.eof) { return this.finishNode(node, "EmptyStatement") }
+      return this.parseStatement()
+    } else if (starttype === tokTypes.name && expr.type === "Identifier" && this.eat(tokTypes.colon)) {
+      node.body = this.parseStatement();
+      node.label = expr;
+      return this.finishNode(node, "LabeledStatement")
+    } else {
+      node.expression = expr;
+      this.semicolon();
+      return this.finishNode(node, "ExpressionStatement")
+    }
+  }
+};
+
+lp$1.parseBlock = function() {
+  var this$1 = this;
+
+  var node = this.startNode();
+  this.pushCx();
+  this.expect(tokTypes.braceL);
+  var blockIndent = this.curIndent, line = this.curLineStart;
+  node.body = [];
+  while (!this.closes(tokTypes.braceR, blockIndent, line, true))
+    { node.body.push(this$1.parseStatement()); }
+  this.popCx();
+  this.eat(tokTypes.braceR);
+  return this.finishNode(node, "BlockStatement")
+};
+
+lp$1.parseFor = function(node, init) {
+  node.init = init;
+  node.test = node.update = null;
+  if (this.eat(tokTypes.semi) && this.tok.type !== tokTypes.semi) { node.test = this.parseExpression(); }
+  if (this.eat(tokTypes.semi) && this.tok.type !== tokTypes.parenR) { node.update = this.parseExpression(); }
+  this.popCx();
+  this.expect(tokTypes.parenR);
+  node.body = this.parseStatement();
+  return this.finishNode(node, "ForStatement")
+};
+
+lp$1.parseForIn = function(node, init) {
+  var type = this.tok.type === tokTypes._in ? "ForInStatement" : "ForOfStatement";
+  this.next();
+  node.left = init;
+  node.right = this.parseExpression();
+  this.popCx();
+  this.expect(tokTypes.parenR);
+  node.body = this.parseStatement();
+  return this.finishNode(node, type)
+};
+
+lp$1.parseVar = function(noIn, kind) {
+  var this$1 = this;
+
+  var node = this.startNode();
+  node.kind = kind;
+  this.next();
+  node.declarations = [];
+  do {
+    var decl = this$1.startNode();
+    decl.id = this$1.options.ecmaVersion >= 6 ? this$1.toAssignable(this$1.parseExprAtom(), true) : this$1.parseIdent();
+    decl.init = this$1.eat(tokTypes.eq) ? this$1.parseMaybeAssign(noIn) : null;
+    node.declarations.push(this$1.finishNode(decl, "VariableDeclarator"));
+  } while (this.eat(tokTypes.comma))
+  if (!node.declarations.length) {
+    var decl$1 = this.startNode();
+    decl$1.id = this.dummyIdent();
+    node.declarations.push(this.finishNode(decl$1, "VariableDeclarator"));
+  }
+  if (!noIn) { this.semicolon(); }
+  return this.finishNode(node, "VariableDeclaration")
+};
+
+lp$1.parseClass = function(isStatement) {
+  var this$1 = this;
+
+  var node = this.startNode();
+  this.next();
+  if (this.tok.type === tokTypes.name) { node.id = this.parseIdent(); }
+  else if (isStatement === true) { node.id = this.dummyIdent(); }
+  else { node.id = null; }
+  node.superClass = this.eat(tokTypes._extends) ? this.parseExpression() : null;
+  node.body = this.startNode();
+  node.body.body = [];
+  this.pushCx();
+  var indent = this.curIndent + 1, line = this.curLineStart;
+  this.eat(tokTypes.braceL);
+  if (this.curIndent + 1 < indent) { indent = this.curIndent; line = this.curLineStart; }
+  while (!this.closes(tokTypes.braceR, indent, line)) {
+    if (this$1.semicolon()) { continue }
+    var method = this$1.startNode(), isGenerator = (void 0), isAsync = (void 0);
+    if (this$1.options.ecmaVersion >= 6) {
+      method.static = false;
+      isGenerator = this$1.eat(tokTypes.star);
+    }
+    this$1.parsePropertyName(method);
+    if (isDummy(method.key)) { if (isDummy(this$1.parseMaybeAssign())) { this$1.next(); } this$1.eat(tokTypes.comma); continue }
+    if (method.key.type === "Identifier" && !method.computed && method.key.name === "static" &&
+        (this$1.tok.type != tokTypes.parenL && this$1.tok.type != tokTypes.braceL)) {
+      method.static = true;
+      isGenerator = this$1.eat(tokTypes.star);
+      this$1.parsePropertyName(method);
+    } else {
+      method.static = false;
+    }
+    if (!method.computed &&
+        method.key.type === "Identifier" && method.key.name === "async" && this$1.tok.type !== tokTypes.parenL &&
+        !this$1.canInsertSemicolon()) {
+      isAsync = true;
+      isGenerator = this$1.options.ecmaVersion >= 9 && this$1.eat(tokTypes.star);
+      this$1.parsePropertyName(method);
+    } else {
+      isAsync = false;
+    }
+    if (this$1.options.ecmaVersion >= 5 && method.key.type === "Identifier" &&
+        !method.computed && (method.key.name === "get" || method.key.name === "set") &&
+        this$1.tok.type !== tokTypes.parenL && this$1.tok.type !== tokTypes.braceL) {
+      method.kind = method.key.name;
+      this$1.parsePropertyName(method);
+      method.value = this$1.parseMethod(false);
+    } else {
+      if (!method.computed && !method.static && !isGenerator && !isAsync && (
+        method.key.type === "Identifier" && method.key.name === "constructor" ||
+          method.key.type === "Literal" && method.key.value === "constructor")) {
+        method.kind = "constructor";
+      } else {
+        method.kind = "method";
+      }
+      method.value = this$1.parseMethod(isGenerator, isAsync);
+    }
+    node.body.body.push(this$1.finishNode(method, "MethodDefinition"));
+  }
+  this.popCx();
+  if (!this.eat(tokTypes.braceR)) {
+    // If there is no closing brace, make the node span to the start
+    // of the next token (this is useful for Tern)
+    this.last.end = this.tok.start;
+    if (this.options.locations) { this.last.loc.end = this.tok.loc.start; }
+  }
+  this.semicolon();
+  this.finishNode(node.body, "ClassBody");
+  return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression")
+};
+
+lp$1.parseFunction = function(node, isStatement, isAsync) {
+  var oldInAsync = this.inAsync, oldInFunction = this.inFunction;
+  this.initFunction(node);
+  if (this.options.ecmaVersion >= 6) {
+    node.generator = this.eat(tokTypes.star);
+  }
+  if (this.options.ecmaVersion >= 8) {
+    node.async = !!isAsync;
+  }
+  if (this.tok.type === tokTypes.name) { node.id = this.parseIdent(); }
+  else if (isStatement === true) { node.id = this.dummyIdent(); }
+  this.inAsync = node.async;
+  this.inFunction = true;
+  node.params = this.parseFunctionParams();
+  node.body = this.parseBlock();
+  this.toks.adaptDirectivePrologue(node.body.body);
+  this.inAsync = oldInAsync;
+  this.inFunction = oldInFunction;
+  return this.finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression")
+};
+
+lp$1.parseExport = function() {
+  var node = this.startNode();
+  this.next();
+  if (this.eat(tokTypes.star)) {
+    node.source = this.eatContextual("from") ? this.parseExprAtom() : this.dummyString();
+    return this.finishNode(node, "ExportAllDeclaration")
+  }
+  if (this.eat(tokTypes._default)) {
+    // export default (function foo() {}) // This is FunctionExpression.
+    var isAsync;
+    if (this.tok.type === tokTypes._function || (isAsync = this.toks.isAsyncFunction())) {
+      var fNode = this.startNode();
+      this.next();
+      if (isAsync) { this.next(); }
+      node.declaration = this.parseFunction(fNode, "nullableID", isAsync);
+    } else if (this.tok.type === tokTypes._class) {
+      node.declaration = this.parseClass("nullableID");
+    } else {
+      node.declaration = this.parseMaybeAssign();
+      this.semicolon();
+    }
+    return this.finishNode(node, "ExportDefaultDeclaration")
+  }
+  if (this.tok.type.keyword || this.toks.isLet() || this.toks.isAsyncFunction()) {
+    node.declaration = this.parseStatement();
+    node.specifiers = [];
+    node.source = null;
+  } else {
+    node.declaration = null;
+    node.specifiers = this.parseExportSpecifierList();
+    node.source = this.eatContextual("from") ? this.parseExprAtom() : null;
+    this.semicolon();
+  }
+  return this.finishNode(node, "ExportNamedDeclaration")
+};
+
+lp$1.parseImport = function() {
+  var node = this.startNode();
+  this.next();
+  if (this.tok.type === tokTypes.string) {
+    node.specifiers = [];
+    node.source = this.parseExprAtom();
+  } else {
+    var elt;
+    if (this.tok.type === tokTypes.name && this.tok.value !== "from") {
+      elt = this.startNode();
+      elt.local = this.parseIdent();
+      this.finishNode(elt, "ImportDefaultSpecifier");
+      this.eat(tokTypes.comma);
+    }
+    node.specifiers = this.parseImportSpecifierList();
+    node.source = this.eatContextual("from") && this.tok.type == tokTypes.string ? this.parseExprAtom() : this.dummyString();
+    if (elt) { node.specifiers.unshift(elt); }
+  }
+  this.semicolon();
+  return this.finishNode(node, "ImportDeclaration")
+};
+
+lp$1.parseImportSpecifierList = function() {
+  var this$1 = this;
+
+  var elts = [];
+  if (this.tok.type === tokTypes.star) {
+    var elt = this.startNode();
+    this.next();
+    elt.local = this.eatContextual("as") ? this.parseIdent() : this.dummyIdent();
+    elts.push(this.finishNode(elt, "ImportNamespaceSpecifier"));
+  } else {
+    var indent = this.curIndent, line = this.curLineStart, continuedLine = this.nextLineStart;
+    this.pushCx();
+    this.eat(tokTypes.braceL);
+    if (this.curLineStart > continuedLine) { continuedLine = this.curLineStart; }
+    while (!this.closes(tokTypes.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {
+      var elt$1 = this$1.startNode();
+      if (this$1.eat(tokTypes.star)) {
+        elt$1.local = this$1.eatContextual("as") ? this$1.parseIdent() : this$1.dummyIdent();
+        this$1.finishNode(elt$1, "ImportNamespaceSpecifier");
+      } else {
+        if (this$1.isContextual("from")) { break }
+        elt$1.imported = this$1.parseIdent();
+        if (isDummy(elt$1.imported)) { break }
+        elt$1.local = this$1.eatContextual("as") ? this$1.parseIdent() : elt$1.imported;
+        this$1.finishNode(elt$1, "ImportSpecifier");
+      }
+      elts.push(elt$1);
+      this$1.eat(tokTypes.comma);
+    }
+    this.eat(tokTypes.braceR);
+    this.popCx();
+  }
+  return elts
+};
+
+lp$1.parseExportSpecifierList = function() {
+  var this$1 = this;
+
+  var elts = [];
+  var indent = this.curIndent, line = this.curLineStart, continuedLine = this.nextLineStart;
+  this.pushCx();
+  this.eat(tokTypes.braceL);
+  if (this.curLineStart > continuedLine) { continuedLine = this.curLineStart; }
+  while (!this.closes(tokTypes.braceR, indent + (this.curLineStart <= continuedLine ? 1 : 0), line)) {
+    if (this$1.isContextual("from")) { break }
+    var elt = this$1.startNode();
+    elt.local = this$1.parseIdent();
+    if (isDummy(elt.local)) { break }
+    elt.exported = this$1.eatContextual("as") ? this$1.parseIdent() : elt.local;
+    this$1.finishNode(elt, "ExportSpecifier");
+    elts.push(elt);
+    this$1.eat(tokTypes.comma);
+  }
+  this.eat(tokTypes.braceR);
+  this.popCx();
+  return elts
+};
+
+var lp$2 = LooseParser.prototype;
+
+lp$2.checkLVal = function(expr) {
+  if (!expr) { return expr }
+  switch (expr.type) {
+  case "Identifier":
+  case "MemberExpression":
+    return expr
+
+  case "ParenthesizedExpression":
+    expr.expression = this.checkLVal(expr.expression);
+    return expr
+
+  default:
+    return this.dummyIdent()
+  }
+};
+
+lp$2.parseExpression = function(noIn) {
+  var this$1 = this;
+
+  var start = this.storeCurrentPos();
+  var expr = this.parseMaybeAssign(noIn);
+  if (this.tok.type === tokTypes.comma) {
+    var node = this.startNodeAt(start);
+    node.expressions = [expr];
+    while (this.eat(tokTypes.comma)) { node.expressions.push(this$1.parseMaybeAssign(noIn)); }
+    return this.finishNode(node, "SequenceExpression")
+  }
+  return expr
+};
+
+lp$2.parseParenExpression = function() {
+  this.pushCx();
+  this.expect(tokTypes.parenL);
+  var val = this.parseExpression();
+  this.popCx();
+  this.expect(tokTypes.parenR);
+  return val
+};
+
+lp$2.parseMaybeAssign = function(noIn) {
+  if (this.toks.isContextual("yield")) {
+    var node = this.startNode();
+    this.next();
+    if (this.semicolon() || this.canInsertSemicolon() || (this.tok.type != tokTypes.star && !this.tok.type.startsExpr)) {
+      node.delegate = false;
+      node.argument = null;
+    } else {
+      node.delegate = this.eat(tokTypes.star);
+      node.argument = this.parseMaybeAssign();
+    }
+    return this.finishNode(node, "YieldExpression")
+  }
+
+  var start = this.storeCurrentPos();
+  var left = this.parseMaybeConditional(noIn);
+  if (this.tok.type.isAssign) {
+    var node$1 = this.startNodeAt(start);
+    node$1.operator = this.tok.value;
+    node$1.left = this.tok.type === tokTypes.eq ? this.toAssignable(left) : this.checkLVal(left);
+    this.next();
+    node$1.right = this.parseMaybeAssign(noIn);
+    return this.finishNode(node$1, "AssignmentExpression")
+  }
+  return left
+};
+
+lp$2.parseMaybeConditional = function(noIn) {
+  var start = this.storeCurrentPos();
+  var expr = this.parseExprOps(noIn);
+  if (this.eat(tokTypes.question)) {
+    var node = this.startNodeAt(start);
+    node.test = expr;
+    node.consequent = this.parseMaybeAssign();
+    node.alternate = this.expect(tokTypes.colon) ? this.parseMaybeAssign(noIn) : this.dummyIdent();
+    return this.finishNode(node, "ConditionalExpression")
+  }
+  return expr
+};
+
+lp$2.parseExprOps = function(noIn) {
+  var start = this.storeCurrentPos();
+  var indent = this.curIndent, line = this.curLineStart;
+  return this.parseExprOp(this.parseMaybeUnary(false), start, -1, noIn, indent, line)
+};
+
+lp$2.parseExprOp = function(left, start, minPrec, noIn, indent, line) {
+  if (this.curLineStart != line && this.curIndent < indent && this.tokenStartsLine()) { return left }
+  var prec = this.tok.type.binop;
+  if (prec != null && (!noIn || this.tok.type !== tokTypes._in)) {
+    if (prec > minPrec) {
+      var node = this.startNodeAt(start);
+      node.left = left;
+      node.operator = this.tok.value;
+      this.next();
+      if (this.curLineStart != line && this.curIndent < indent && this.tokenStartsLine()) {
+        node.right = this.dummyIdent();
+      } else {
+        var rightStart = this.storeCurrentPos();
+        node.right = this.parseExprOp(this.parseMaybeUnary(false), rightStart, prec, noIn, indent, line);
+      }
+      this.finishNode(node, /&&|\|\|/.test(node.operator) ? "LogicalExpression" : "BinaryExpression");
+      return this.parseExprOp(node, start, minPrec, noIn, indent, line)
+    }
+  }
+  return left
+};
+
+lp$2.parseMaybeUnary = function(sawUnary) {
+  var this$1 = this;
+
+  var start = this.storeCurrentPos(), expr;
+  if (this.options.ecmaVersion >= 8 && this.toks.isContextual("await") &&
+    (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))
+  ) {
+    expr = this.parseAwait();
+    sawUnary = true;
+  } else if (this.tok.type.prefix) {
+    var node = this.startNode(), update = this.tok.type === tokTypes.incDec;
+    if (!update) { sawUnary = true; }
+    node.operator = this.tok.value;
+    node.prefix = true;
+    this.next();
+    node.argument = this.parseMaybeUnary(true);
+    if (update) { node.argument = this.checkLVal(node.argument); }
+    expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression");
+  } else if (this.tok.type === tokTypes.ellipsis) {
+    var node$1 = this.startNode();
+    this.next();
+    node$1.argument = this.parseMaybeUnary(sawUnary);
+    expr = this.finishNode(node$1, "SpreadElement");
+  } else {
+    expr = this.parseExprSubscripts();
+    while (this.tok.type.postfix && !this.canInsertSemicolon()) {
+      var node$2 = this$1.startNodeAt(start);
+      node$2.operator = this$1.tok.value;
+      node$2.prefix = false;
+      node$2.argument = this$1.checkLVal(expr);
+      this$1.next();
+      expr = this$1.finishNode(node$2, "UpdateExpression");
+    }
+  }
+
+  if (!sawUnary && this.eat(tokTypes.starstar)) {
+    var node$3 = this.startNodeAt(start);
+    node$3.operator = "**";
+    node$3.left = expr;
+    node$3.right = this.parseMaybeUnary(false);
+    return this.finishNode(node$3, "BinaryExpression")
+  }
+
+  return expr
+};
+
+lp$2.parseExprSubscripts = function() {
+  var start = this.storeCurrentPos();
+  return this.parseSubscripts(this.parseExprAtom(), start, false, this.curIndent, this.curLineStart)
+};
+
+lp$2.parseSubscripts = function(base, start, noCalls, startIndent, line) {
+  var this$1 = this;
+
+  for (;;) {
+    if (this$1.curLineStart != line && this$1.curIndent <= startIndent && this$1.tokenStartsLine()) {
+      if (this$1.tok.type == tokTypes.dot && this$1.curIndent == startIndent)
+        { --startIndent; }
+      else
+        { return base }
+    }
+
+    var maybeAsyncArrow = base.type === "Identifier" && base.name === "async" && !this$1.canInsertSemicolon();
+
+    if (this$1.eat(tokTypes.dot)) {
+      var node = this$1.startNodeAt(start);
+      node.object = base;
+      if (this$1.curLineStart != line && this$1.curIndent <= startIndent && this$1.tokenStartsLine())
+        { node.property = this$1.dummyIdent(); }
+      else
+        { node.property = this$1.parsePropertyAccessor() || this$1.dummyIdent(); }
+      node.computed = false;
+      base = this$1.finishNode(node, "MemberExpression");
+    } else if (this$1.tok.type == tokTypes.bracketL) {
+      this$1.pushCx();