dub 0.10.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dub might be problematic. Click here for more details.

Files changed (843) hide show
  1. data/History.txt +92 -0
  2. data/LICENSE +20 -0
  3. data/README.rdoc +115 -0
  4. data/Rakefile +59 -0
  5. data/dub.gemspec +197 -0
  6. data/lib/dub/argument.rb +286 -0
  7. data/lib/dub/entities_unescape.rb +9 -0
  8. data/lib/dub/function.rb +177 -0
  9. data/lib/dub/function_group.rb +72 -0
  10. data/lib/dub/generator.rb +15 -0
  11. data/lib/dub/group.rb +20 -0
  12. data/lib/dub/klass.rb +338 -0
  13. data/lib/dub/lua/class.cpp.erb +114 -0
  14. data/lib/dub/lua/class_gen.rb +96 -0
  15. data/lib/dub/lua/function.cpp.erb +15 -0
  16. data/lib/dub/lua/function_gen.rb +329 -0
  17. data/lib/dub/lua/group.cpp.erb +9 -0
  18. data/lib/dub/lua/lua_cpp_helper.cpp +259 -0
  19. data/lib/dub/lua/lua_cpp_helper.h +219 -0
  20. data/lib/dub/lua/lua_object.cpp +158 -0
  21. data/lib/dub/lua/lua_object.h +69 -0
  22. data/lib/dub/lua/namespace.cpp.erb +42 -0
  23. data/lib/dub/lua/namespace_gen.rb +69 -0
  24. data/lib/dub/lua.rb +24 -0
  25. data/lib/dub/member_extraction.rb +128 -0
  26. data/lib/dub/namespace.rb +295 -0
  27. data/lib/dub/opts_parser.rb +30 -0
  28. data/lib/dub/parser.rb +46 -0
  29. data/lib/dub/templates/lua_template.erb +21 -0
  30. data/lib/dub/version.rb +3 -0
  31. data/lib/dub.rb +23 -33
  32. data/test/argument_test.rb +581 -0
  33. data/test/fixtures/app/CMakeLists.txt +54 -0
  34. data/test/fixtures/app/Doxyfile +1600 -0
  35. data/test/fixtures/app/bindings/all_lua.cpp +299 -0
  36. data/test/fixtures/app/include/matrix.h +283 -0
  37. data/test/fixtures/app/make_lua_bindings.rb +13 -0
  38. data/test/fixtures/app/vendor/lua/CMakeLists.txt +25 -0
  39. data/test/fixtures/app/vendor/lua/COPYRIGHT +34 -0
  40. data/test/fixtures/app/vendor/lua/HISTORY +183 -0
  41. data/test/fixtures/app/vendor/lua/INSTALL +99 -0
  42. data/test/fixtures/app/vendor/lua/Makefile +183 -0
  43. data/test/fixtures/app/vendor/lua/README +37 -0
  44. data/test/fixtures/app/vendor/lua/lapi.c +1080 -0
  45. data/test/fixtures/app/vendor/lua/lapi.h +16 -0
  46. data/test/fixtures/app/vendor/lua/lauxlib.c +653 -0
  47. data/test/fixtures/app/vendor/lua/lauxlib.h +174 -0
  48. data/test/fixtures/app/vendor/lua/lbaselib.c +643 -0
  49. data/test/fixtures/app/vendor/lua/lcode.c +839 -0
  50. data/test/fixtures/app/vendor/lua/lcode.h +76 -0
  51. data/test/fixtures/app/vendor/lua/ldblib.c +397 -0
  52. data/test/fixtures/app/vendor/lua/ldebug.c +622 -0
  53. data/test/fixtures/app/vendor/lua/ldebug.h +33 -0
  54. data/test/fixtures/app/vendor/lua/ldo.c +516 -0
  55. data/test/fixtures/app/vendor/lua/ldo.h +57 -0
  56. data/test/fixtures/app/vendor/lua/ldump.c +164 -0
  57. data/test/fixtures/app/vendor/lua/lfunc.c +174 -0
  58. data/test/fixtures/app/vendor/lua/lfunc.h +34 -0
  59. data/test/fixtures/app/vendor/lua/lgc.c +711 -0
  60. data/test/fixtures/app/vendor/lua/lgc.h +110 -0
  61. data/test/fixtures/app/vendor/lua/liblua.a +0 -0
  62. data/test/fixtures/app/vendor/lua/linit.c +38 -0
  63. data/test/fixtures/app/vendor/lua/liolib.c +532 -0
  64. data/test/fixtures/app/vendor/lua/llex.c +461 -0
  65. data/test/fixtures/app/vendor/lua/llex.h +81 -0
  66. data/test/fixtures/app/vendor/lua/llimits.h +128 -0
  67. data/test/fixtures/app/vendor/lua/lmathlib.c +263 -0
  68. data/test/fixtures/app/vendor/lua/lmem.c +86 -0
  69. data/test/fixtures/app/vendor/lua/lmem.h +49 -0
  70. data/test/fixtures/app/vendor/lua/loadlib.c +664 -0
  71. data/test/fixtures/app/vendor/lua/lobject.c +214 -0
  72. data/test/fixtures/app/vendor/lua/lobject.h +381 -0
  73. data/test/fixtures/app/vendor/lua/lopcodes.c +102 -0
  74. data/test/fixtures/app/vendor/lua/lopcodes.h +268 -0
  75. data/test/fixtures/app/vendor/lua/loslib.c +244 -0
  76. data/test/fixtures/app/vendor/lua/lparser.c +1337 -0
  77. data/test/fixtures/app/vendor/lua/lparser.h +82 -0
  78. data/test/fixtures/app/vendor/lua/lstate.c +214 -0
  79. data/test/fixtures/app/vendor/lua/lstate.h +168 -0
  80. data/test/fixtures/app/vendor/lua/lstring.c +111 -0
  81. data/test/fixtures/app/vendor/lua/lstring.h +31 -0
  82. data/test/fixtures/app/vendor/lua/lstrlib.c +868 -0
  83. data/test/fixtures/app/vendor/lua/ltable.c +588 -0
  84. data/test/fixtures/app/vendor/lua/ltable.h +40 -0
  85. data/test/fixtures/app/vendor/lua/ltablib.c +278 -0
  86. data/test/fixtures/app/vendor/lua/ltm.c +75 -0
  87. data/test/fixtures/app/vendor/lua/ltm.h +54 -0
  88. data/test/fixtures/app/vendor/lua/lua.c +695 -0
  89. data/test/fixtures/app/vendor/lua/lua.h +385 -0
  90. data/test/fixtures/app/vendor/lua/lua_dub_helper.h +77 -0
  91. data/test/fixtures/app/vendor/lua/luac +0 -0
  92. data/test/fixtures/app/vendor/lua/luac.c +200 -0
  93. data/test/fixtures/app/vendor/lua/luaconf.h +762 -0
  94. data/test/fixtures/app/vendor/lua/lualib.h +53 -0
  95. data/test/fixtures/app/vendor/lua/lundump.c +223 -0
  96. data/test/fixtures/app/vendor/lua/lundump.h +36 -0
  97. data/test/fixtures/app/vendor/lua/lvm.c +765 -0
  98. data/test/fixtures/app/vendor/lua/lvm.h +36 -0
  99. data/test/fixtures/app/vendor/lua/lzio.c +82 -0
  100. data/test/fixtures/app/vendor/lua/lzio.h +67 -0
  101. data/test/fixtures/app/vendor/lua/matrix.h +102 -0
  102. data/test/fixtures/app/vendor/lua/print.c +227 -0
  103. data/test/fixtures/app/vendor/lua/test/README +26 -0
  104. data/test/fixtures/app/vendor/lua/test/bisect.lua +27 -0
  105. data/test/fixtures/app/vendor/lua/test/cf.lua +16 -0
  106. data/test/fixtures/app/vendor/lua/test/echo.lua +5 -0
  107. data/test/fixtures/app/vendor/lua/test/env.lua +7 -0
  108. data/test/fixtures/app/vendor/lua/test/factorial.lua +32 -0
  109. data/test/fixtures/app/vendor/lua/test/fib.lua +40 -0
  110. data/test/fixtures/app/vendor/lua/test/fibfor.lua +13 -0
  111. data/test/fixtures/app/vendor/lua/test/globals.lua +13 -0
  112. data/test/fixtures/app/vendor/lua/test/hello.lua +3 -0
  113. data/test/fixtures/app/vendor/lua/test/life.lua +111 -0
  114. data/test/fixtures/app/vendor/lua/test/luac.lua +7 -0
  115. data/test/fixtures/app/vendor/lua/test/printf.lua +7 -0
  116. data/test/fixtures/app/vendor/lua/test/readonly.lua +12 -0
  117. data/test/fixtures/app/vendor/lua/test/sieve.lua +29 -0
  118. data/test/fixtures/app/vendor/lua/test/sort.lua +66 -0
  119. data/test/fixtures/app/vendor/lua/test/table.lua +12 -0
  120. data/test/fixtures/app/vendor/lua/test/trace-calls.lua +32 -0
  121. data/test/fixtures/app/vendor/lua/test/trace-globals.lua +38 -0
  122. data/test/fixtures/app/vendor/lua/test/xd.lua +14 -0
  123. data/test/fixtures/app/xml/classdub_1_1_base.xml +85 -0
  124. data/test/fixtures/app/xml/classdub_1_1_custom_destructor.xml +67 -0
  125. data/test/fixtures/app/xml/classdub_1_1_deletable_out_of_lua.xml +43 -0
  126. data/test/fixtures/app/xml/classdub_1_1_matrix.xml +482 -0
  127. data/test/fixtures/app/xml/classdub_1_1_no_destructor.xml +49 -0
  128. data/test/fixtures/app/xml/classdub_1_1_priv_sub_base.xml +89 -0
  129. data/test/fixtures/app/xml/classdub_1_1_private_constr.xml +68 -0
  130. data/test/fixtures/app/xml/classdub_1_1_static_constr.xml +69 -0
  131. data/test/fixtures/app/xml/classdub_1_1_sub_base.xml +89 -0
  132. data/test/fixtures/app/xml/classdub_1_1_t_mat.xml +252 -0
  133. data/test/fixtures/app/xml/combine.xslt +15 -0
  134. data/test/fixtures/app/xml/compound.xsd +814 -0
  135. data/test/fixtures/app/xml/dir_53661a2bdeb1d55e60581a7e15deb763.xml +12 -0
  136. data/test/fixtures/app/xml/index.xml +91 -0
  137. data/test/fixtures/app/xml/index.xsd +66 -0
  138. data/test/fixtures/app/xml/matrix_8h.xml +310 -0
  139. data/test/fixtures/app/xml/namespacedub.xml +48 -0
  140. data/test/fixtures/classcv_1_1_mat.xml +1996 -0
  141. data/test/fixtures/classcv_1_1_point__.xml +341 -0
  142. data/test/fixtures/classcv_1_1_scalar__.xml +269 -0
  143. data/test/fixtures/classcv_1_1_size__.xml +270 -0
  144. data/test/fixtures/dummy_class.cpp.erb +1 -0
  145. data/test/fixtures/dummy_function.cpp.erb +1 -0
  146. data/test/fixtures/group___magic_type.xml +406 -0
  147. data/test/fixtures/namespacecv.xml +12659 -0
  148. data/test/function_group_test.rb +43 -0
  149. data/test/function_test.rb +405 -0
  150. data/test/group_test.rb +241 -0
  151. data/test/helper.rb +34 -0
  152. data/test/klass_test.rb +551 -0
  153. data/test/lua_function_gen_test.rb +242 -0
  154. data/test/namespace_test.rb +220 -0
  155. data/test/parser_test.rb +36 -0
  156. metadata +229 -900
  157. checksums.yaml +0 -7
  158. data/lib/crystalline/metadata_fields.rb +0 -209
  159. data/lib/crystalline/module.rb +0 -92
  160. data/lib/crystalline/types.rb +0 -78
  161. data/lib/crystalline/utils.rb +0 -56
  162. data/lib/crystalline.rb +0 -13
  163. data/lib/open_api_sdk/analytics.rb +0 -267
  164. data/lib/open_api_sdk/commissions.rb +0 -507
  165. data/lib/open_api_sdk/customers.rb +0 -1209
  166. data/lib/open_api_sdk/domains.rb +0 -1474
  167. data/lib/open_api_sdk/dub.rb +0 -110
  168. data/lib/open_api_sdk/embed_tokens.rb +0 -276
  169. data/lib/open_api_sdk/events.rb +0 -267
  170. data/lib/open_api_sdk/folders.rb +0 -978
  171. data/lib/open_api_sdk/links.rb +0 -2407
  172. data/lib/open_api_sdk/models/callbacks.rb +0 -12
  173. data/lib/open_api_sdk/models/errors/apierror.rb +0 -37
  174. data/lib/open_api_sdk/models/errors/apierror.rbi +0 -16
  175. data/lib/open_api_sdk/models/errors/badrequest.rb +0 -33
  176. data/lib/open_api_sdk/models/errors/badrequest.rbi +0 -13
  177. data/lib/open_api_sdk/models/errors/code.rb +0 -21
  178. data/lib/open_api_sdk/models/errors/code.rbi +0 -11
  179. data/lib/open_api_sdk/models/errors/conflict.rb +0 -33
  180. data/lib/open_api_sdk/models/errors/conflict.rbi +0 -13
  181. data/lib/open_api_sdk/models/errors/conflict_code.rb +0 -21
  182. data/lib/open_api_sdk/models/errors/conflict_code.rbi +0 -11
  183. data/lib/open_api_sdk/models/errors/conflict_error.rb +0 -41
  184. data/lib/open_api_sdk/models/errors/conflict_error.rbi +0 -17
  185. data/lib/open_api_sdk/models/errors/error.rb +0 -41
  186. data/lib/open_api_sdk/models/errors/error.rbi +0 -17
  187. data/lib/open_api_sdk/models/errors/forbidden.rb +0 -33
  188. data/lib/open_api_sdk/models/errors/forbidden.rbi +0 -13
  189. data/lib/open_api_sdk/models/errors/forbidden_code.rb +0 -21
  190. data/lib/open_api_sdk/models/errors/forbidden_code.rbi +0 -11
  191. data/lib/open_api_sdk/models/errors/forbidden_error.rb +0 -41
  192. data/lib/open_api_sdk/models/errors/forbidden_error.rbi +0 -17
  193. data/lib/open_api_sdk/models/errors/internalservererror.rb +0 -33
  194. data/lib/open_api_sdk/models/errors/internalservererror.rbi +0 -13
  195. data/lib/open_api_sdk/models/errors/internalservererror_code.rb +0 -21
  196. data/lib/open_api_sdk/models/errors/internalservererror_code.rbi +0 -11
  197. data/lib/open_api_sdk/models/errors/internalservererror_error.rb +0 -41
  198. data/lib/open_api_sdk/models/errors/internalservererror_error.rbi +0 -17
  199. data/lib/open_api_sdk/models/errors/inviteexpired.rb +0 -33
  200. data/lib/open_api_sdk/models/errors/inviteexpired.rbi +0 -13
  201. data/lib/open_api_sdk/models/errors/inviteexpired_code.rb +0 -21
  202. data/lib/open_api_sdk/models/errors/inviteexpired_code.rbi +0 -11
  203. data/lib/open_api_sdk/models/errors/inviteexpired_error.rb +0 -41
  204. data/lib/open_api_sdk/models/errors/inviteexpired_error.rbi +0 -17
  205. data/lib/open_api_sdk/models/errors/notfound.rb +0 -33
  206. data/lib/open_api_sdk/models/errors/notfound.rbi +0 -13
  207. data/lib/open_api_sdk/models/errors/notfound_code.rb +0 -21
  208. data/lib/open_api_sdk/models/errors/notfound_code.rbi +0 -11
  209. data/lib/open_api_sdk/models/errors/notfound_error.rb +0 -41
  210. data/lib/open_api_sdk/models/errors/notfound_error.rbi +0 -17
  211. data/lib/open_api_sdk/models/errors/ratelimitexceeded.rb +0 -33
  212. data/lib/open_api_sdk/models/errors/ratelimitexceeded.rbi +0 -13
  213. data/lib/open_api_sdk/models/errors/ratelimitexceeded_code.rb +0 -21
  214. data/lib/open_api_sdk/models/errors/ratelimitexceeded_code.rbi +0 -11
  215. data/lib/open_api_sdk/models/errors/ratelimitexceeded_error.rb +0 -41
  216. data/lib/open_api_sdk/models/errors/ratelimitexceeded_error.rbi +0 -17
  217. data/lib/open_api_sdk/models/errors/unauthorized.rb +0 -33
  218. data/lib/open_api_sdk/models/errors/unauthorized.rbi +0 -13
  219. data/lib/open_api_sdk/models/errors/unauthorized_code.rb +0 -21
  220. data/lib/open_api_sdk/models/errors/unauthorized_code.rbi +0 -11
  221. data/lib/open_api_sdk/models/errors/unauthorized_error.rb +0 -41
  222. data/lib/open_api_sdk/models/errors/unauthorized_error.rbi +0 -17
  223. data/lib/open_api_sdk/models/errors/unprocessableentity.rb +0 -33
  224. data/lib/open_api_sdk/models/errors/unprocessableentity.rbi +0 -13
  225. data/lib/open_api_sdk/models/errors/unprocessableentity_code.rb +0 -21
  226. data/lib/open_api_sdk/models/errors/unprocessableentity_code.rbi +0 -11
  227. data/lib/open_api_sdk/models/errors/unprocessableentity_error.rb +0 -41
  228. data/lib/open_api_sdk/models/errors/unprocessableentity_error.rbi +0 -17
  229. data/lib/open_api_sdk/models/errors.rb +0 -39
  230. data/lib/open_api_sdk/models/operations/accesslevel.rb +0 -22
  231. data/lib/open_api_sdk/models/operations/accesslevel.rbi +0 -11
  232. data/lib/open_api_sdk/models/operations/bannedreason.rb +0 -26
  233. data/lib/open_api_sdk/models/operations/bannedreason.rbi +0 -11
  234. data/lib/open_api_sdk/models/operations/bulkcreatelinks_tagids.rb +0 -28
  235. data/lib/open_api_sdk/models/operations/bulkcreatelinks_tagids.rbi +0 -11
  236. data/lib/open_api_sdk/models/operations/bulkcreatelinks_tagnames.rb +0 -28
  237. data/lib/open_api_sdk/models/operations/bulkcreatelinks_tagnames.rbi +0 -11
  238. data/lib/open_api_sdk/models/operations/bulkcreatelinks_testvariants.rb +0 -37
  239. data/lib/open_api_sdk/models/operations/bulkcreatelinks_testvariants.rbi +0 -15
  240. data/lib/open_api_sdk/models/operations/bulkdeletelinks_request.rb +0 -33
  241. data/lib/open_api_sdk/models/operations/bulkdeletelinks_request.rbi +0 -13
  242. data/lib/open_api_sdk/models/operations/bulkdeletelinks_responsebody.rb +0 -33
  243. data/lib/open_api_sdk/models/operations/bulkdeletelinks_responsebody.rbi +0 -13
  244. data/lib/open_api_sdk/models/operations/bulkupdatelinks_requestbody.rb +0 -41
  245. data/lib/open_api_sdk/models/operations/bulkupdatelinks_requestbody.rbi +0 -17
  246. data/lib/open_api_sdk/models/operations/bulkupdatelinks_tagids.rb +0 -28
  247. data/lib/open_api_sdk/models/operations/bulkupdatelinks_tagids.rbi +0 -11
  248. data/lib/open_api_sdk/models/operations/bulkupdatelinks_tagnames.rb +0 -28
  249. data/lib/open_api_sdk/models/operations/bulkupdatelinks_tagnames.rbi +0 -11
  250. data/lib/open_api_sdk/models/operations/bulkupdatelinks_testvariants.rb +0 -37
  251. data/lib/open_api_sdk/models/operations/bulkupdatelinks_testvariants.rbi +0 -15
  252. data/lib/open_api_sdk/models/operations/checkdomainstatus_request.rb +0 -33
  253. data/lib/open_api_sdk/models/operations/checkdomainstatus_request.rbi +0 -13
  254. data/lib/open_api_sdk/models/operations/checkdomainstatus_responsebody.rb +0 -45
  255. data/lib/open_api_sdk/models/operations/checkdomainstatus_responsebody.rbi +0 -19
  256. data/lib/open_api_sdk/models/operations/click.rb +0 -33
  257. data/lib/open_api_sdk/models/operations/click.rbi +0 -13
  258. data/lib/open_api_sdk/models/operations/color.rb +0 -27
  259. data/lib/open_api_sdk/models/operations/color.rbi +0 -11
  260. data/lib/open_api_sdk/models/operations/createcustomer_discount.rb +0 -61
  261. data/lib/open_api_sdk/models/operations/createcustomer_discount.rbi +0 -27
  262. data/lib/open_api_sdk/models/operations/createcustomer_link.rb +0 -53
  263. data/lib/open_api_sdk/models/operations/createcustomer_link.rbi +0 -23
  264. data/lib/open_api_sdk/models/operations/createcustomer_partner.rb +0 -45
  265. data/lib/open_api_sdk/models/operations/createcustomer_partner.rbi +0 -19
  266. data/lib/open_api_sdk/models/operations/createcustomer_requestbody.rb +0 -45
  267. data/lib/open_api_sdk/models/operations/createcustomer_requestbody.rbi +0 -19
  268. data/lib/open_api_sdk/models/operations/createcustomer_responsebody.rb +0 -81
  269. data/lib/open_api_sdk/models/operations/createcustomer_responsebody.rbi +0 -37
  270. data/lib/open_api_sdk/models/operations/createcustomer_type.rb +0 -22
  271. data/lib/open_api_sdk/models/operations/createcustomer_type.rbi +0 -11
  272. data/lib/open_api_sdk/models/operations/createdomain_requestbody.rb +0 -61
  273. data/lib/open_api_sdk/models/operations/createdomain_requestbody.rbi +0 -27
  274. data/lib/open_api_sdk/models/operations/createfolder_requestbody.rb +0 -37
  275. data/lib/open_api_sdk/models/operations/createfolder_requestbody.rbi +0 -15
  276. data/lib/open_api_sdk/models/operations/createlink_requestbody.rb +0 -193
  277. data/lib/open_api_sdk/models/operations/createlink_requestbody.rbi +0 -91
  278. data/lib/open_api_sdk/models/operations/createpartner_link.rb +0 -65
  279. data/lib/open_api_sdk/models/operations/createpartner_link.rbi +0 -29
  280. data/lib/open_api_sdk/models/operations/createpartner_requestbody.rb +0 -65
  281. data/lib/open_api_sdk/models/operations/createpartner_requestbody.rbi +0 -29
  282. data/lib/open_api_sdk/models/operations/createpartner_responsebody.rb +0 -209
  283. data/lib/open_api_sdk/models/operations/createpartner_responsebody.rbi +0 -101
  284. data/lib/open_api_sdk/models/operations/createpartner_status.rb +0 -27
  285. data/lib/open_api_sdk/models/operations/createpartner_status.rbi +0 -11
  286. data/lib/open_api_sdk/models/operations/createpartner_tagids.rb +0 -28
  287. data/lib/open_api_sdk/models/operations/createpartner_tagids.rbi +0 -11
  288. data/lib/open_api_sdk/models/operations/createpartner_tagnames.rb +0 -28
  289. data/lib/open_api_sdk/models/operations/createpartner_tagnames.rbi +0 -11
  290. data/lib/open_api_sdk/models/operations/createpartner_testvariants.rb +0 -37
  291. data/lib/open_api_sdk/models/operations/createpartner_testvariants.rbi +0 -15
  292. data/lib/open_api_sdk/models/operations/createpartnerlink_linkprops.rb +0 -149
  293. data/lib/open_api_sdk/models/operations/createpartnerlink_linkprops.rbi +0 -71
  294. data/lib/open_api_sdk/models/operations/createpartnerlink_requestbody.rb +0 -53
  295. data/lib/open_api_sdk/models/operations/createpartnerlink_requestbody.rbi +0 -23
  296. data/lib/open_api_sdk/models/operations/createpartnerlink_tagids.rb +0 -28
  297. data/lib/open_api_sdk/models/operations/createpartnerlink_tagids.rbi +0 -11
  298. data/lib/open_api_sdk/models/operations/createpartnerlink_tagnames.rb +0 -28
  299. data/lib/open_api_sdk/models/operations/createpartnerlink_tagnames.rbi +0 -11
  300. data/lib/open_api_sdk/models/operations/createpartnerlink_testvariants.rb +0 -37
  301. data/lib/open_api_sdk/models/operations/createpartnerlink_testvariants.rbi +0 -15
  302. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_linkprops.rb +0 -149
  303. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_linkprops.rbi +0 -71
  304. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_requestbody.rb +0 -41
  305. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_requestbody.rbi +0 -17
  306. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_responsebody.rb +0 -37
  307. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_responsebody.rbi +0 -15
  308. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_tagids.rb +0 -28
  309. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_tagids.rbi +0 -11
  310. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_tagnames.rb +0 -28
  311. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_tagnames.rbi +0 -11
  312. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_testvariants.rb +0 -37
  313. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_testvariants.rbi +0 -15
  314. data/lib/open_api_sdk/models/operations/createtag_requestbody.rb +0 -43
  315. data/lib/open_api_sdk/models/operations/createtag_requestbody.rbi +0 -17
  316. data/lib/open_api_sdk/models/operations/customer.rb +0 -45
  317. data/lib/open_api_sdk/models/operations/customer.rbi +0 -19
  318. data/lib/open_api_sdk/models/operations/data.rb +0 -173
  319. data/lib/open_api_sdk/models/operations/data.rbi +0 -81
  320. data/lib/open_api_sdk/models/operations/deletecustomer_request.rb +0 -33
  321. data/lib/open_api_sdk/models/operations/deletecustomer_request.rbi +0 -13
  322. data/lib/open_api_sdk/models/operations/deletecustomer_responsebody.rb +0 -33
  323. data/lib/open_api_sdk/models/operations/deletecustomer_responsebody.rbi +0 -13
  324. data/lib/open_api_sdk/models/operations/deletedomain_request.rb +0 -33
  325. data/lib/open_api_sdk/models/operations/deletedomain_request.rbi +0 -13
  326. data/lib/open_api_sdk/models/operations/deletedomain_responsebody.rb +0 -33
  327. data/lib/open_api_sdk/models/operations/deletedomain_responsebody.rbi +0 -13
  328. data/lib/open_api_sdk/models/operations/deletefolder_request.rb +0 -33
  329. data/lib/open_api_sdk/models/operations/deletefolder_request.rbi +0 -13
  330. data/lib/open_api_sdk/models/operations/deletefolder_responsebody.rb +0 -33
  331. data/lib/open_api_sdk/models/operations/deletefolder_responsebody.rbi +0 -13
  332. data/lib/open_api_sdk/models/operations/deletelink_request.rb +0 -33
  333. data/lib/open_api_sdk/models/operations/deletelink_request.rbi +0 -13
  334. data/lib/open_api_sdk/models/operations/deletelink_responsebody.rb +0 -33
  335. data/lib/open_api_sdk/models/operations/deletelink_responsebody.rbi +0 -13
  336. data/lib/open_api_sdk/models/operations/deletetag_request.rb +0 -33
  337. data/lib/open_api_sdk/models/operations/deletetag_request.rbi +0 -13
  338. data/lib/open_api_sdk/models/operations/deletetag_responsebody.rb +0 -33
  339. data/lib/open_api_sdk/models/operations/deletetag_responsebody.rbi +0 -13
  340. data/lib/open_api_sdk/models/operations/discount.rb +0 -61
  341. data/lib/open_api_sdk/models/operations/discount.rbi +0 -27
  342. data/lib/open_api_sdk/models/operations/domains.rb +0 -28
  343. data/lib/open_api_sdk/models/operations/domains.rbi +0 -11
  344. data/lib/open_api_sdk/models/operations/event.rb +0 -24
  345. data/lib/open_api_sdk/models/operations/event.rbi +0 -11
  346. data/lib/open_api_sdk/models/operations/four.rb +0 -21
  347. data/lib/open_api_sdk/models/operations/four.rbi +0 -11
  348. data/lib/open_api_sdk/models/operations/getcustomer_discount.rb +0 -61
  349. data/lib/open_api_sdk/models/operations/getcustomer_discount.rbi +0 -27
  350. data/lib/open_api_sdk/models/operations/getcustomer_link.rb +0 -53
  351. data/lib/open_api_sdk/models/operations/getcustomer_link.rbi +0 -23
  352. data/lib/open_api_sdk/models/operations/getcustomer_partner.rb +0 -45
  353. data/lib/open_api_sdk/models/operations/getcustomer_partner.rbi +0 -19
  354. data/lib/open_api_sdk/models/operations/getcustomer_request.rb +0 -37
  355. data/lib/open_api_sdk/models/operations/getcustomer_request.rbi +0 -15
  356. data/lib/open_api_sdk/models/operations/getcustomer_responsebody.rb +0 -81
  357. data/lib/open_api_sdk/models/operations/getcustomer_responsebody.rbi +0 -37
  358. data/lib/open_api_sdk/models/operations/getcustomer_type.rb +0 -22
  359. data/lib/open_api_sdk/models/operations/getcustomer_type.rbi +0 -11
  360. data/lib/open_api_sdk/models/operations/getcustomers_link.rb +0 -53
  361. data/lib/open_api_sdk/models/operations/getcustomers_link.rbi +0 -23
  362. data/lib/open_api_sdk/models/operations/getcustomers_partner.rb +0 -45
  363. data/lib/open_api_sdk/models/operations/getcustomers_partner.rbi +0 -19
  364. data/lib/open_api_sdk/models/operations/getcustomers_queryparam_sortby.rb +0 -22
  365. data/lib/open_api_sdk/models/operations/getcustomers_queryparam_sortby.rbi +0 -11
  366. data/lib/open_api_sdk/models/operations/getcustomers_queryparam_sortorder.rb +0 -22
  367. data/lib/open_api_sdk/models/operations/getcustomers_queryparam_sortorder.rbi +0 -11
  368. data/lib/open_api_sdk/models/operations/getcustomers_request.rb +0 -69
  369. data/lib/open_api_sdk/models/operations/getcustomers_request.rbi +0 -31
  370. data/lib/open_api_sdk/models/operations/getcustomers_responsebody.rb +0 -81
  371. data/lib/open_api_sdk/models/operations/getcustomers_responsebody.rbi +0 -37
  372. data/lib/open_api_sdk/models/operations/getcustomers_type.rb +0 -22
  373. data/lib/open_api_sdk/models/operations/getcustomers_type.rbi +0 -11
  374. data/lib/open_api_sdk/models/operations/getlinkinfo_request.rb +0 -45
  375. data/lib/open_api_sdk/models/operations/getlinkinfo_request.rbi +0 -19
  376. data/lib/open_api_sdk/models/operations/getlinks_request.rb +0 -89
  377. data/lib/open_api_sdk/models/operations/getlinks_request.rbi +0 -41
  378. data/lib/open_api_sdk/models/operations/getlinks_response.rb +0 -45
  379. data/lib/open_api_sdk/models/operations/getlinks_response.rbi +0 -13
  380. data/lib/open_api_sdk/models/operations/getlinkscount_queryparam_tagids.rb +0 -28
  381. data/lib/open_api_sdk/models/operations/getlinkscount_queryparam_tagids.rbi +0 -11
  382. data/lib/open_api_sdk/models/operations/getlinkscount_queryparam_tagnames.rb +0 -28
  383. data/lib/open_api_sdk/models/operations/getlinkscount_queryparam_tagnames.rbi +0 -11
  384. data/lib/open_api_sdk/models/operations/getlinkscount_request.rb +0 -73
  385. data/lib/open_api_sdk/models/operations/getlinkscount_request.rbi +0 -33
  386. data/lib/open_api_sdk/models/operations/getqrcode_request.rb +0 -65
  387. data/lib/open_api_sdk/models/operations/getqrcode_request.rbi +0 -29
  388. data/lib/open_api_sdk/models/operations/gettags_queryparam_sortby.rb +0 -22
  389. data/lib/open_api_sdk/models/operations/gettags_queryparam_sortby.rbi +0 -11
  390. data/lib/open_api_sdk/models/operations/gettags_queryparam_sortorder.rb +0 -22
  391. data/lib/open_api_sdk/models/operations/gettags_queryparam_sortorder.rbi +0 -11
  392. data/lib/open_api_sdk/models/operations/gettags_request.rb +0 -53
  393. data/lib/open_api_sdk/models/operations/gettags_request.rbi +0 -23
  394. data/lib/open_api_sdk/models/operations/getworkspace_request.rb +0 -33
  395. data/lib/open_api_sdk/models/operations/getworkspace_request.rbi +0 -13
  396. data/lib/open_api_sdk/models/operations/groupby.rb +0 -28
  397. data/lib/open_api_sdk/models/operations/groupby.rbi +0 -11
  398. data/lib/open_api_sdk/models/operations/ids.rb +0 -28
  399. data/lib/open_api_sdk/models/operations/ids.rbi +0 -11
  400. data/lib/open_api_sdk/models/operations/interval.rb +0 -29
  401. data/lib/open_api_sdk/models/operations/interval.rbi +0 -11
  402. data/lib/open_api_sdk/models/operations/level.rb +0 -24
  403. data/lib/open_api_sdk/models/operations/level.rbi +0 -11
  404. data/lib/open_api_sdk/models/operations/link.rb +0 -65
  405. data/lib/open_api_sdk/models/operations/link.rbi +0 -29
  406. data/lib/open_api_sdk/models/operations/linkprops.rb +0 -149
  407. data/lib/open_api_sdk/models/operations/linkprops.rbi +0 -71
  408. data/lib/open_api_sdk/models/operations/listcommissions_customer.rb +0 -65
  409. data/lib/open_api_sdk/models/operations/listcommissions_customer.rbi +0 -29
  410. data/lib/open_api_sdk/models/operations/listcommissions_partner.rb +0 -53
  411. data/lib/open_api_sdk/models/operations/listcommissions_partner.rbi +0 -23
  412. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_interval.rb +0 -29
  413. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_interval.rbi +0 -11
  414. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_sortby.rb +0 -22
  415. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_sortby.rbi +0 -11
  416. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_sortorder.rb +0 -22
  417. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_sortorder.rbi +0 -11
  418. data/lib/open_api_sdk/models/operations/listcommissions_request.rb +0 -85
  419. data/lib/open_api_sdk/models/operations/listcommissions_request.rbi +0 -39
  420. data/lib/open_api_sdk/models/operations/listcommissions_responsebody.rb +0 -85
  421. data/lib/open_api_sdk/models/operations/listcommissions_responsebody.rbi +0 -39
  422. data/lib/open_api_sdk/models/operations/listcommissions_status.rb +0 -27
  423. data/lib/open_api_sdk/models/operations/listcommissions_status.rbi +0 -11
  424. data/lib/open_api_sdk/models/operations/listcommissions_type.rb +0 -24
  425. data/lib/open_api_sdk/models/operations/listcommissions_type.rbi +0 -11
  426. data/lib/open_api_sdk/models/operations/listdomains_request.rb +0 -45
  427. data/lib/open_api_sdk/models/operations/listdomains_request.rbi +0 -19
  428. data/lib/open_api_sdk/models/operations/listdomains_response.rb +0 -45
  429. data/lib/open_api_sdk/models/operations/listdomains_response.rbi +0 -13
  430. data/lib/open_api_sdk/models/operations/listevents_queryparam_tagids.rb +0 -28
  431. data/lib/open_api_sdk/models/operations/listevents_queryparam_tagids.rbi +0 -11
  432. data/lib/open_api_sdk/models/operations/listevents_request.rb +0 -193
  433. data/lib/open_api_sdk/models/operations/listevents_request.rbi +0 -93
  434. data/lib/open_api_sdk/models/operations/listevents_responsebody.rb +0 -28
  435. data/lib/open_api_sdk/models/operations/listevents_responsebody.rbi +0 -11
  436. data/lib/open_api_sdk/models/operations/listfolders_request.rb +0 -41
  437. data/lib/open_api_sdk/models/operations/listfolders_request.rbi +0 -17
  438. data/lib/open_api_sdk/models/operations/listpartners_bannedreason.rb +0 -26
  439. data/lib/open_api_sdk/models/operations/listpartners_bannedreason.rbi +0 -11
  440. data/lib/open_api_sdk/models/operations/listpartners_link.rb +0 -65
  441. data/lib/open_api_sdk/models/operations/listpartners_link.rbi +0 -29
  442. data/lib/open_api_sdk/models/operations/listpartners_queryparam_sortby.rb +0 -28
  443. data/lib/open_api_sdk/models/operations/listpartners_queryparam_sortby.rbi +0 -11
  444. data/lib/open_api_sdk/models/operations/listpartners_queryparam_sortorder.rb +0 -22
  445. data/lib/open_api_sdk/models/operations/listpartners_queryparam_sortorder.rbi +0 -11
  446. data/lib/open_api_sdk/models/operations/listpartners_queryparam_status.rb +0 -27
  447. data/lib/open_api_sdk/models/operations/listpartners_queryparam_status.rbi +0 -11
  448. data/lib/open_api_sdk/models/operations/listpartners_request.rb +0 -65
  449. data/lib/open_api_sdk/models/operations/listpartners_request.rbi +0 -29
  450. data/lib/open_api_sdk/models/operations/listpartners_responsebody.rb +0 -209
  451. data/lib/open_api_sdk/models/operations/listpartners_responsebody.rbi +0 -101
  452. data/lib/open_api_sdk/models/operations/listpartners_status.rb +0 -27
  453. data/lib/open_api_sdk/models/operations/listpartners_status.rbi +0 -11
  454. data/lib/open_api_sdk/models/operations/mode.rb +0 -23
  455. data/lib/open_api_sdk/models/operations/mode.rbi +0 -11
  456. data/lib/open_api_sdk/models/operations/one.rb +0 -21
  457. data/lib/open_api_sdk/models/operations/one.rbi +0 -11
  458. data/lib/open_api_sdk/models/operations/order.rb +0 -24
  459. data/lib/open_api_sdk/models/operations/order.rbi +0 -11
  460. data/lib/open_api_sdk/models/operations/partner.rb +0 -65
  461. data/lib/open_api_sdk/models/operations/partner.rbi +0 -29
  462. data/lib/open_api_sdk/models/operations/paymentprocessor.rb +0 -26
  463. data/lib/open_api_sdk/models/operations/paymentprocessor.rbi +0 -11
  464. data/lib/open_api_sdk/models/operations/queryparam_event.rb +0 -23
  465. data/lib/open_api_sdk/models/operations/queryparam_event.rbi +0 -11
  466. data/lib/open_api_sdk/models/operations/queryparam_groupby.rb +0 -41
  467. data/lib/open_api_sdk/models/operations/queryparam_groupby.rbi +0 -11
  468. data/lib/open_api_sdk/models/operations/queryparam_interval.rb +0 -29
  469. data/lib/open_api_sdk/models/operations/queryparam_interval.rbi +0 -11
  470. data/lib/open_api_sdk/models/operations/queryparam_saletype.rb +0 -22
  471. data/lib/open_api_sdk/models/operations/queryparam_saletype.rbi +0 -11
  472. data/lib/open_api_sdk/models/operations/queryparam_sortby.rb +0 -21
  473. data/lib/open_api_sdk/models/operations/queryparam_sortby.rbi +0 -11
  474. data/lib/open_api_sdk/models/operations/queryparam_sortorder.rb +0 -22
  475. data/lib/open_api_sdk/models/operations/queryparam_sortorder.rbi +0 -11
  476. data/lib/open_api_sdk/models/operations/queryparam_status.rb +0 -27
  477. data/lib/open_api_sdk/models/operations/queryparam_status.rbi +0 -11
  478. data/lib/open_api_sdk/models/operations/queryparam_tagids.rb +0 -28
  479. data/lib/open_api_sdk/models/operations/queryparam_tagids.rbi +0 -11
  480. data/lib/open_api_sdk/models/operations/queryparam_tagnames.rb +0 -28
  481. data/lib/open_api_sdk/models/operations/queryparam_tagnames.rbi +0 -11
  482. data/lib/open_api_sdk/models/operations/queryparam_trigger.rb +0 -24
  483. data/lib/open_api_sdk/models/operations/queryparam_trigger.rbi +0 -11
  484. data/lib/open_api_sdk/models/operations/registerdomain_requestbody.rb +0 -33
  485. data/lib/open_api_sdk/models/operations/registerdomain_requestbody.rbi +0 -13
  486. data/lib/open_api_sdk/models/operations/registerdomain_responsebody.rb +0 -41
  487. data/lib/open_api_sdk/models/operations/registerdomain_responsebody.rbi +0 -17
  488. data/lib/open_api_sdk/models/operations/requestbody.rb +0 -193
  489. data/lib/open_api_sdk/models/operations/requestbody.rbi +0 -91
  490. data/lib/open_api_sdk/models/operations/responsebody.rb +0 -28
  491. data/lib/open_api_sdk/models/operations/responsebody.rbi +0 -11
  492. data/lib/open_api_sdk/models/operations/retrieveanalytics_queryparam_tagids.rb +0 -28
  493. data/lib/open_api_sdk/models/operations/retrieveanalytics_queryparam_tagids.rbi +0 -11
  494. data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb +0 -177
  495. data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rbi +0 -85
  496. data/lib/open_api_sdk/models/operations/retrieveanalytics_responsebody.rb +0 -28
  497. data/lib/open_api_sdk/models/operations/retrieveanalytics_responsebody.rbi +0 -11
  498. data/lib/open_api_sdk/models/operations/retrievelinks_request.rb +0 -37
  499. data/lib/open_api_sdk/models/operations/retrievelinks_request.rbi +0 -15
  500. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_groupby.rb +0 -23
  501. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_groupby.rbi +0 -11
  502. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_interval.rb +0 -29
  503. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_interval.rbi +0 -11
  504. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rb +0 -61
  505. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rbi +0 -27
  506. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_responsebody.rb +0 -28
  507. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_responsebody.rbi +0 -11
  508. data/lib/open_api_sdk/models/operations/sale.rb +0 -49
  509. data/lib/open_api_sdk/models/operations/sale.rbi +0 -21
  510. data/lib/open_api_sdk/models/operations/saletype.rb +0 -22
  511. data/lib/open_api_sdk/models/operations/saletype.rbi +0 -11
  512. data/lib/open_api_sdk/models/operations/sort.rb +0 -26
  513. data/lib/open_api_sdk/models/operations/sort.rbi +0 -11
  514. data/lib/open_api_sdk/models/operations/sortby.rb +0 -24
  515. data/lib/open_api_sdk/models/operations/sortby.rbi +0 -11
  516. data/lib/open_api_sdk/models/operations/sortorder.rb +0 -22
  517. data/lib/open_api_sdk/models/operations/sortorder.rbi +0 -11
  518. data/lib/open_api_sdk/models/operations/status.rb +0 -24
  519. data/lib/open_api_sdk/models/operations/status.rbi +0 -11
  520. data/lib/open_api_sdk/models/operations/tagids.rb +0 -28
  521. data/lib/open_api_sdk/models/operations/tagids.rbi +0 -11
  522. data/lib/open_api_sdk/models/operations/tagnames.rb +0 -28
  523. data/lib/open_api_sdk/models/operations/tagnames.rbi +0 -11
  524. data/lib/open_api_sdk/models/operations/testvariants.rb +0 -37
  525. data/lib/open_api_sdk/models/operations/testvariants.rbi +0 -15
  526. data/lib/open_api_sdk/models/operations/three.rb +0 -21
  527. data/lib/open_api_sdk/models/operations/three.rbi +0 -11
  528. data/lib/open_api_sdk/models/operations/tracklead_link.rb +0 -65
  529. data/lib/open_api_sdk/models/operations/tracklead_link.rbi +0 -29
  530. data/lib/open_api_sdk/models/operations/tracklead_requestbody.rb +0 -65
  531. data/lib/open_api_sdk/models/operations/tracklead_requestbody.rbi +0 -29
  532. data/lib/open_api_sdk/models/operations/tracklead_responsebody.rb +0 -41
  533. data/lib/open_api_sdk/models/operations/tracklead_responsebody.rbi +0 -17
  534. data/lib/open_api_sdk/models/operations/tracksale_customer.rb +0 -49
  535. data/lib/open_api_sdk/models/operations/tracksale_customer.rbi +0 -21
  536. data/lib/open_api_sdk/models/operations/tracksale_requestbody.rb +0 -77
  537. data/lib/open_api_sdk/models/operations/tracksale_requestbody.rbi +0 -35
  538. data/lib/open_api_sdk/models/operations/tracksale_responsebody.rb +0 -41
  539. data/lib/open_api_sdk/models/operations/tracksale_responsebody.rbi +0 -17
  540. data/lib/open_api_sdk/models/operations/trigger.rb +0 -24
  541. data/lib/open_api_sdk/models/operations/trigger.rbi +0 -11
  542. data/lib/open_api_sdk/models/operations/two.rb +0 -21
  543. data/lib/open_api_sdk/models/operations/two.rbi +0 -11
  544. data/lib/open_api_sdk/models/operations/type.rb +0 -24
  545. data/lib/open_api_sdk/models/operations/type.rbi +0 -11
  546. data/lib/open_api_sdk/models/operations/updatecommission_customer.rb +0 -65
  547. data/lib/open_api_sdk/models/operations/updatecommission_customer.rbi +0 -29
  548. data/lib/open_api_sdk/models/operations/updatecommission_partner.rb +0 -53
  549. data/lib/open_api_sdk/models/operations/updatecommission_partner.rbi +0 -23
  550. data/lib/open_api_sdk/models/operations/updatecommission_request.rb +0 -37
  551. data/lib/open_api_sdk/models/operations/updatecommission_request.rbi +0 -15
  552. data/lib/open_api_sdk/models/operations/updatecommission_requestbody.rb +0 -45
  553. data/lib/open_api_sdk/models/operations/updatecommission_requestbody.rbi +0 -19
  554. data/lib/open_api_sdk/models/operations/updatecommission_responsebody.rb +0 -85
  555. data/lib/open_api_sdk/models/operations/updatecommission_responsebody.rbi +0 -39
  556. data/lib/open_api_sdk/models/operations/updatecommission_status.rb +0 -27
  557. data/lib/open_api_sdk/models/operations/updatecommission_status.rbi +0 -11
  558. data/lib/open_api_sdk/models/operations/updatecommission_type.rb +0 -24
  559. data/lib/open_api_sdk/models/operations/updatecommission_type.rbi +0 -11
  560. data/lib/open_api_sdk/models/operations/updatecustomer_discount.rb +0 -61
  561. data/lib/open_api_sdk/models/operations/updatecustomer_discount.rbi +0 -27
  562. data/lib/open_api_sdk/models/operations/updatecustomer_link.rb +0 -53
  563. data/lib/open_api_sdk/models/operations/updatecustomer_link.rbi +0 -23
  564. data/lib/open_api_sdk/models/operations/updatecustomer_partner.rb +0 -45
  565. data/lib/open_api_sdk/models/operations/updatecustomer_partner.rbi +0 -19
  566. data/lib/open_api_sdk/models/operations/updatecustomer_request.rb +0 -41
  567. data/lib/open_api_sdk/models/operations/updatecustomer_request.rbi +0 -17
  568. data/lib/open_api_sdk/models/operations/updatecustomer_requestbody.rb +0 -45
  569. data/lib/open_api_sdk/models/operations/updatecustomer_requestbody.rbi +0 -19
  570. data/lib/open_api_sdk/models/operations/updatecustomer_responsebody.rb +0 -81
  571. data/lib/open_api_sdk/models/operations/updatecustomer_responsebody.rbi +0 -37
  572. data/lib/open_api_sdk/models/operations/updatecustomer_type.rb +0 -22
  573. data/lib/open_api_sdk/models/operations/updatecustomer_type.rbi +0 -11
  574. data/lib/open_api_sdk/models/operations/updatedomain_request.rb +0 -37
  575. data/lib/open_api_sdk/models/operations/updatedomain_request.rbi +0 -15
  576. data/lib/open_api_sdk/models/operations/updatedomain_requestbody.rb +0 -61
  577. data/lib/open_api_sdk/models/operations/updatedomain_requestbody.rbi +0 -27
  578. data/lib/open_api_sdk/models/operations/updatefolder_accesslevel.rb +0 -22
  579. data/lib/open_api_sdk/models/operations/updatefolder_accesslevel.rbi +0 -11
  580. data/lib/open_api_sdk/models/operations/updatefolder_request.rb +0 -37
  581. data/lib/open_api_sdk/models/operations/updatefolder_request.rbi +0 -15
  582. data/lib/open_api_sdk/models/operations/updatefolder_requestbody.rb +0 -37
  583. data/lib/open_api_sdk/models/operations/updatefolder_requestbody.rbi +0 -15
  584. data/lib/open_api_sdk/models/operations/updatelink_request.rb +0 -37
  585. data/lib/open_api_sdk/models/operations/updatelink_request.rbi +0 -15
  586. data/lib/open_api_sdk/models/operations/updatelink_requestbody.rb +0 -185
  587. data/lib/open_api_sdk/models/operations/updatelink_requestbody.rbi +0 -87
  588. data/lib/open_api_sdk/models/operations/updatelink_tagids.rb +0 -28
  589. data/lib/open_api_sdk/models/operations/updatelink_tagids.rbi +0 -11
  590. data/lib/open_api_sdk/models/operations/updatelink_tagnames.rb +0 -28
  591. data/lib/open_api_sdk/models/operations/updatelink_tagnames.rbi +0 -11
  592. data/lib/open_api_sdk/models/operations/updatelink_testvariants.rb +0 -37
  593. data/lib/open_api_sdk/models/operations/updatelink_testvariants.rbi +0 -15
  594. data/lib/open_api_sdk/models/operations/updatetag_color.rb +0 -27
  595. data/lib/open_api_sdk/models/operations/updatetag_color.rbi +0 -11
  596. data/lib/open_api_sdk/models/operations/updatetag_request.rb +0 -37
  597. data/lib/open_api_sdk/models/operations/updatetag_request.rbi +0 -15
  598. data/lib/open_api_sdk/models/operations/updatetag_requestbody.rb +0 -43
  599. data/lib/open_api_sdk/models/operations/updatetag_requestbody.rbi +0 -17
  600. data/lib/open_api_sdk/models/operations/updateworkspace_request.rb +0 -37
  601. data/lib/open_api_sdk/models/operations/updateworkspace_request.rbi +0 -15
  602. data/lib/open_api_sdk/models/operations/updateworkspace_requestbody.rb +0 -45
  603. data/lib/open_api_sdk/models/operations/updateworkspace_requestbody.rbi +0 -19
  604. data/lib/open_api_sdk/models/operations/upsertlink_requestbody.rb +0 -193
  605. data/lib/open_api_sdk/models/operations/upsertlink_requestbody.rbi +0 -91
  606. data/lib/open_api_sdk/models/operations/upsertlink_tagids.rb +0 -28
  607. data/lib/open_api_sdk/models/operations/upsertlink_tagids.rbi +0 -11
  608. data/lib/open_api_sdk/models/operations/upsertlink_tagnames.rb +0 -28
  609. data/lib/open_api_sdk/models/operations/upsertlink_tagnames.rbi +0 -11
  610. data/lib/open_api_sdk/models/operations/upsertlink_testvariants.rb +0 -37
  611. data/lib/open_api_sdk/models/operations/upsertlink_testvariants.rbi +0 -15
  612. data/lib/open_api_sdk/models/operations/upsertpartnerlink_linkprops.rb +0 -149
  613. data/lib/open_api_sdk/models/operations/upsertpartnerlink_linkprops.rbi +0 -71
  614. data/lib/open_api_sdk/models/operations/upsertpartnerlink_requestbody.rb +0 -53
  615. data/lib/open_api_sdk/models/operations/upsertpartnerlink_requestbody.rbi +0 -23
  616. data/lib/open_api_sdk/models/operations/upsertpartnerlink_tagids.rb +0 -28
  617. data/lib/open_api_sdk/models/operations/upsertpartnerlink_tagids.rbi +0 -11
  618. data/lib/open_api_sdk/models/operations/upsertpartnerlink_tagnames.rb +0 -28
  619. data/lib/open_api_sdk/models/operations/upsertpartnerlink_tagnames.rbi +0 -11
  620. data/lib/open_api_sdk/models/operations/upsertpartnerlink_testvariants.rb +0 -37
  621. data/lib/open_api_sdk/models/operations/upsertpartnerlink_testvariants.rbi +0 -15
  622. data/lib/open_api_sdk/models/operations.rb +0 -207
  623. data/lib/open_api_sdk/models/shared/accesslevel.rb +0 -22
  624. data/lib/open_api_sdk/models/shared/accesslevel.rbi +0 -11
  625. data/lib/open_api_sdk/models/shared/analyticsbrowsers.rb +0 -49
  626. data/lib/open_api_sdk/models/shared/analyticsbrowsers.rbi +0 -21
  627. data/lib/open_api_sdk/models/shared/analyticscities.rb +0 -57
  628. data/lib/open_api_sdk/models/shared/analyticscities.rbi +0 -25
  629. data/lib/open_api_sdk/models/shared/analyticscontinents.rb +0 -49
  630. data/lib/open_api_sdk/models/shared/analyticscontinents.rbi +0 -21
  631. data/lib/open_api_sdk/models/shared/analyticscount.rb +0 -45
  632. data/lib/open_api_sdk/models/shared/analyticscount.rbi +0 -19
  633. data/lib/open_api_sdk/models/shared/analyticscountries.rb +0 -57
  634. data/lib/open_api_sdk/models/shared/analyticscountries.rbi +0 -25
  635. data/lib/open_api_sdk/models/shared/analyticsdevices.rb +0 -49
  636. data/lib/open_api_sdk/models/shared/analyticsdevices.rbi +0 -21
  637. data/lib/open_api_sdk/models/shared/analyticsos.rb +0 -49
  638. data/lib/open_api_sdk/models/shared/analyticsos.rbi +0 -21
  639. data/lib/open_api_sdk/models/shared/analyticsreferers.rb +0 -49
  640. data/lib/open_api_sdk/models/shared/analyticsreferers.rbi +0 -21
  641. data/lib/open_api_sdk/models/shared/analyticsrefererurls.rb +0 -49
  642. data/lib/open_api_sdk/models/shared/analyticsrefererurls.rbi +0 -21
  643. data/lib/open_api_sdk/models/shared/analyticsregions.rb +0 -57
  644. data/lib/open_api_sdk/models/shared/analyticsregions.rbi +0 -25
  645. data/lib/open_api_sdk/models/shared/analyticsregions_city.rb +0 -21
  646. data/lib/open_api_sdk/models/shared/analyticsregions_city.rbi +0 -11
  647. data/lib/open_api_sdk/models/shared/analyticstimeseries.rb +0 -49
  648. data/lib/open_api_sdk/models/shared/analyticstimeseries.rbi +0 -21
  649. data/lib/open_api_sdk/models/shared/analyticstoplinks.rb +0 -83
  650. data/lib/open_api_sdk/models/shared/analyticstoplinks.rbi +0 -37
  651. data/lib/open_api_sdk/models/shared/analyticstopurls.rb +0 -49
  652. data/lib/open_api_sdk/models/shared/analyticstopurls.rbi +0 -21
  653. data/lib/open_api_sdk/models/shared/analyticstriggers.rb +0 -49
  654. data/lib/open_api_sdk/models/shared/analyticstriggers.rbi +0 -21
  655. data/lib/open_api_sdk/models/shared/bannedreason.rb +0 -26
  656. data/lib/open_api_sdk/models/shared/bannedreason.rbi +0 -11
  657. data/lib/open_api_sdk/models/shared/city.rb +0 -21
  658. data/lib/open_api_sdk/models/shared/city.rbi +0 -11
  659. data/lib/open_api_sdk/models/shared/click.rb +0 -89
  660. data/lib/open_api_sdk/models/shared/click.rbi +0 -41
  661. data/lib/open_api_sdk/models/shared/clickevent.rb +0 -123
  662. data/lib/open_api_sdk/models/shared/clickevent.rbi +0 -45
  663. data/lib/open_api_sdk/models/shared/clickevent_testvariants.rb +0 -37
  664. data/lib/open_api_sdk/models/shared/clickevent_testvariants.rbi +0 -15
  665. data/lib/open_api_sdk/models/shared/code.rb +0 -31
  666. data/lib/open_api_sdk/models/shared/code.rbi +0 -11
  667. data/lib/open_api_sdk/models/shared/color.rb +0 -27
  668. data/lib/open_api_sdk/models/shared/color.rbi +0 -11
  669. data/lib/open_api_sdk/models/shared/commissioncreatedevent.rb +0 -45
  670. data/lib/open_api_sdk/models/shared/commissioncreatedevent.rbi +0 -19
  671. data/lib/open_api_sdk/models/shared/commissioncreatedevent_customer.rb +0 -65
  672. data/lib/open_api_sdk/models/shared/commissioncreatedevent_customer.rbi +0 -29
  673. data/lib/open_api_sdk/models/shared/commissioncreatedevent_data.rb +0 -85
  674. data/lib/open_api_sdk/models/shared/commissioncreatedevent_data.rbi +0 -39
  675. data/lib/open_api_sdk/models/shared/commissioncreatedevent_event.rb +0 -21
  676. data/lib/open_api_sdk/models/shared/commissioncreatedevent_event.rbi +0 -11
  677. data/lib/open_api_sdk/models/shared/commissioncreatedevent_status.rb +0 -27
  678. data/lib/open_api_sdk/models/shared/commissioncreatedevent_status.rbi +0 -11
  679. data/lib/open_api_sdk/models/shared/commissioncreatedevent_type.rb +0 -24
  680. data/lib/open_api_sdk/models/shared/commissioncreatedevent_type.rbi +0 -11
  681. data/lib/open_api_sdk/models/shared/continent.rb +0 -27
  682. data/lib/open_api_sdk/models/shared/continent.rbi +0 -11
  683. data/lib/open_api_sdk/models/shared/continentcode.rb +0 -27
  684. data/lib/open_api_sdk/models/shared/continentcode.rbi +0 -11
  685. data/lib/open_api_sdk/models/shared/customer.rb +0 -65
  686. data/lib/open_api_sdk/models/shared/customer.rbi +0 -29
  687. data/lib/open_api_sdk/models/shared/data.rb +0 -37
  688. data/lib/open_api_sdk/models/shared/data.rbi +0 -15
  689. data/lib/open_api_sdk/models/shared/domains.rb +0 -41
  690. data/lib/open_api_sdk/models/shared/domains.rbi +0 -17
  691. data/lib/open_api_sdk/models/shared/domainschema.rb +0 -85
  692. data/lib/open_api_sdk/models/shared/domainschema.rbi +0 -39
  693. data/lib/open_api_sdk/models/shared/event.rb +0 -21
  694. data/lib/open_api_sdk/models/shared/event.rbi +0 -11
  695. data/lib/open_api_sdk/models/shared/folderschema.rb +0 -53
  696. data/lib/open_api_sdk/models/shared/folderschema.rbi +0 -23
  697. data/lib/open_api_sdk/models/shared/leadcreatedevent.rb +0 -45
  698. data/lib/open_api_sdk/models/shared/leadcreatedevent.rbi +0 -19
  699. data/lib/open_api_sdk/models/shared/leadcreatedevent_click.rb +0 -89
  700. data/lib/open_api_sdk/models/shared/leadcreatedevent_click.rbi +0 -41
  701. data/lib/open_api_sdk/models/shared/leadcreatedevent_customer.rb +0 -65
  702. data/lib/open_api_sdk/models/shared/leadcreatedevent_customer.rbi +0 -29
  703. data/lib/open_api_sdk/models/shared/leadcreatedevent_data.rb +0 -45
  704. data/lib/open_api_sdk/models/shared/leadcreatedevent_data.rbi +0 -19
  705. data/lib/open_api_sdk/models/shared/leadcreatedevent_event.rb +0 -21
  706. data/lib/open_api_sdk/models/shared/leadcreatedevent_event.rbi +0 -11
  707. data/lib/open_api_sdk/models/shared/leadcreatedevent_link.rb +0 -233
  708. data/lib/open_api_sdk/models/shared/leadcreatedevent_link.rbi +0 -111
  709. data/lib/open_api_sdk/models/shared/leadcreatedevent_testvariants.rb +0 -37
  710. data/lib/open_api_sdk/models/shared/leadcreatedevent_testvariants.rbi +0 -15
  711. data/lib/open_api_sdk/models/shared/leadevent.rb +0 -139
  712. data/lib/open_api_sdk/models/shared/leadevent.rbi +0 -53
  713. data/lib/open_api_sdk/models/shared/leadevent_click.rb +0 -89
  714. data/lib/open_api_sdk/models/shared/leadevent_click.rbi +0 -41
  715. data/lib/open_api_sdk/models/shared/leadevent_event.rb +0 -21
  716. data/lib/open_api_sdk/models/shared/leadevent_event.rbi +0 -11
  717. data/lib/open_api_sdk/models/shared/leadevent_link.rb +0 -233
  718. data/lib/open_api_sdk/models/shared/leadevent_link.rbi +0 -111
  719. data/lib/open_api_sdk/models/shared/leadevent_testvariants.rb +0 -37
  720. data/lib/open_api_sdk/models/shared/leadevent_testvariants.rbi +0 -15
  721. data/lib/open_api_sdk/models/shared/link.rb +0 -233
  722. data/lib/open_api_sdk/models/shared/link.rbi +0 -111
  723. data/lib/open_api_sdk/models/shared/linkclickedevent.rb +0 -45
  724. data/lib/open_api_sdk/models/shared/linkclickedevent.rbi +0 -19
  725. data/lib/open_api_sdk/models/shared/linkclickedevent_click.rb +0 -89
  726. data/lib/open_api_sdk/models/shared/linkclickedevent_click.rbi +0 -41
  727. data/lib/open_api_sdk/models/shared/linkclickedevent_event.rb +0 -21
  728. data/lib/open_api_sdk/models/shared/linkclickedevent_event.rbi +0 -11
  729. data/lib/open_api_sdk/models/shared/linkclickedevent_link.rb +0 -233
  730. data/lib/open_api_sdk/models/shared/linkclickedevent_link.rbi +0 -111
  731. data/lib/open_api_sdk/models/shared/linkclickedevent_testvariants.rb +0 -37
  732. data/lib/open_api_sdk/models/shared/linkclickedevent_testvariants.rbi +0 -15
  733. data/lib/open_api_sdk/models/shared/linkerrorschema.rb +0 -41
  734. data/lib/open_api_sdk/models/shared/linkerrorschema.rbi +0 -17
  735. data/lib/open_api_sdk/models/shared/linkschema.rb +0 -233
  736. data/lib/open_api_sdk/models/shared/linkschema.rbi +0 -111
  737. data/lib/open_api_sdk/models/shared/linkwebhookevent.rb +0 -45
  738. data/lib/open_api_sdk/models/shared/linkwebhookevent.rbi +0 -19
  739. data/lib/open_api_sdk/models/shared/linkwebhookevent_event.rb +0 -28
  740. data/lib/open_api_sdk/models/shared/linkwebhookevent_event.rbi +0 -11
  741. data/lib/open_api_sdk/models/shared/linkwebhookevent_link.rb +0 -233
  742. data/lib/open_api_sdk/models/shared/linkwebhookevent_link.rbi +0 -111
  743. data/lib/open_api_sdk/models/shared/linkwebhookevent_testvariants.rb +0 -37
  744. data/lib/open_api_sdk/models/shared/linkwebhookevent_testvariants.rbi +0 -15
  745. data/lib/open_api_sdk/models/shared/one.rb +0 -21
  746. data/lib/open_api_sdk/models/shared/one.rbi +0 -11
  747. data/lib/open_api_sdk/models/shared/partner.rb +0 -77
  748. data/lib/open_api_sdk/models/shared/partner.rbi +0 -35
  749. data/lib/open_api_sdk/models/shared/partneranalyticscount.rb +0 -49
  750. data/lib/open_api_sdk/models/shared/partneranalyticscount.rbi +0 -21
  751. data/lib/open_api_sdk/models/shared/partneranalyticstimeseries.rb +0 -53
  752. data/lib/open_api_sdk/models/shared/partneranalyticstimeseries.rbi +0 -23
  753. data/lib/open_api_sdk/models/shared/partneranalyticstoplinks.rb +0 -87
  754. data/lib/open_api_sdk/models/shared/partneranalyticstoplinks.rbi +0 -39
  755. data/lib/open_api_sdk/models/shared/partnerenrolledevent.rb +0 -45
  756. data/lib/open_api_sdk/models/shared/partnerenrolledevent.rbi +0 -19
  757. data/lib/open_api_sdk/models/shared/partnerenrolledevent_data.rb +0 -209
  758. data/lib/open_api_sdk/models/shared/partnerenrolledevent_data.rbi +0 -101
  759. data/lib/open_api_sdk/models/shared/partnerenrolledevent_event.rb +0 -21
  760. data/lib/open_api_sdk/models/shared/partnerenrolledevent_event.rbi +0 -11
  761. data/lib/open_api_sdk/models/shared/partnerenrolledevent_link.rb +0 -65
  762. data/lib/open_api_sdk/models/shared/partnerenrolledevent_link.rbi +0 -29
  763. data/lib/open_api_sdk/models/shared/paymentprocessor.rb +0 -26
  764. data/lib/open_api_sdk/models/shared/paymentprocessor.rbi +0 -11
  765. data/lib/open_api_sdk/models/shared/plan.rb +0 -28
  766. data/lib/open_api_sdk/models/shared/plan.rbi +0 -11
  767. data/lib/open_api_sdk/models/shared/region.rb +0 -21
  768. data/lib/open_api_sdk/models/shared/region.rbi +0 -11
  769. data/lib/open_api_sdk/models/shared/registereddomain.rb +0 -49
  770. data/lib/open_api_sdk/models/shared/registereddomain.rbi +0 -21
  771. data/lib/open_api_sdk/models/shared/role.rb +0 -22
  772. data/lib/open_api_sdk/models/shared/role.rbi +0 -11
  773. data/lib/open_api_sdk/models/shared/sale.rb +0 -41
  774. data/lib/open_api_sdk/models/shared/sale.rbi +0 -17
  775. data/lib/open_api_sdk/models/shared/salecreatedevent.rb +0 -45
  776. data/lib/open_api_sdk/models/shared/salecreatedevent.rbi +0 -19
  777. data/lib/open_api_sdk/models/shared/salecreatedevent_click.rb +0 -89
  778. data/lib/open_api_sdk/models/shared/salecreatedevent_click.rbi +0 -41
  779. data/lib/open_api_sdk/models/shared/salecreatedevent_customer.rb +0 -65
  780. data/lib/open_api_sdk/models/shared/salecreatedevent_customer.rbi +0 -29
  781. data/lib/open_api_sdk/models/shared/salecreatedevent_data.rb +0 -49
  782. data/lib/open_api_sdk/models/shared/salecreatedevent_data.rbi +0 -21
  783. data/lib/open_api_sdk/models/shared/salecreatedevent_event.rb +0 -21
  784. data/lib/open_api_sdk/models/shared/salecreatedevent_event.rbi +0 -11
  785. data/lib/open_api_sdk/models/shared/salecreatedevent_link.rb +0 -233
  786. data/lib/open_api_sdk/models/shared/salecreatedevent_link.rbi +0 -111
  787. data/lib/open_api_sdk/models/shared/salecreatedevent_sale.rb +0 -45
  788. data/lib/open_api_sdk/models/shared/salecreatedevent_sale.rbi +0 -19
  789. data/lib/open_api_sdk/models/shared/salecreatedevent_testvariants.rb +0 -37
  790. data/lib/open_api_sdk/models/shared/salecreatedevent_testvariants.rbi +0 -15
  791. data/lib/open_api_sdk/models/shared/saleevent.rb +0 -161
  792. data/lib/open_api_sdk/models/shared/saleevent.rbi +0 -61
  793. data/lib/open_api_sdk/models/shared/saleevent_click.rb +0 -89
  794. data/lib/open_api_sdk/models/shared/saleevent_click.rbi +0 -41
  795. data/lib/open_api_sdk/models/shared/saleevent_customer.rb +0 -65
  796. data/lib/open_api_sdk/models/shared/saleevent_customer.rbi +0 -29
  797. data/lib/open_api_sdk/models/shared/saleevent_event.rb +0 -21
  798. data/lib/open_api_sdk/models/shared/saleevent_event.rbi +0 -11
  799. data/lib/open_api_sdk/models/shared/saleevent_link.rb +0 -233
  800. data/lib/open_api_sdk/models/shared/saleevent_link.rbi +0 -111
  801. data/lib/open_api_sdk/models/shared/saleevent_testvariants.rb +0 -37
  802. data/lib/open_api_sdk/models/shared/saleevent_testvariants.rbi +0 -15
  803. data/lib/open_api_sdk/models/shared/security.rb +0 -33
  804. data/lib/open_api_sdk/models/shared/security.rbi +0 -13
  805. data/lib/open_api_sdk/models/shared/status.rb +0 -27
  806. data/lib/open_api_sdk/models/shared/status.rbi +0 -11
  807. data/lib/open_api_sdk/models/shared/tagschema.rb +0 -41
  808. data/lib/open_api_sdk/models/shared/tagschema.rbi +0 -17
  809. data/lib/open_api_sdk/models/shared/testvariants.rb +0 -37
  810. data/lib/open_api_sdk/models/shared/testvariants.rbi +0 -15
  811. data/lib/open_api_sdk/models/shared/three.rb +0 -21
  812. data/lib/open_api_sdk/models/shared/three.rbi +0 -11
  813. data/lib/open_api_sdk/models/shared/trigger.rb +0 -24
  814. data/lib/open_api_sdk/models/shared/trigger.rbi +0 -11
  815. data/lib/open_api_sdk/models/shared/two.rb +0 -21
  816. data/lib/open_api_sdk/models/shared/two.rbi +0 -11
  817. data/lib/open_api_sdk/models/shared/type.rb +0 -22
  818. data/lib/open_api_sdk/models/shared/type.rbi +0 -11
  819. data/lib/open_api_sdk/models/shared/users.rb +0 -37
  820. data/lib/open_api_sdk/models/shared/users.rbi +0 -15
  821. data/lib/open_api_sdk/models/shared/webhookevent.rb +0 -28
  822. data/lib/open_api_sdk/models/shared/webhookevent.rbi +0 -11
  823. data/lib/open_api_sdk/models/shared/workspaceschema.rb +0 -165
  824. data/lib/open_api_sdk/models/shared/workspaceschema.rbi +0 -79
  825. data/lib/open_api_sdk/models/shared.rb +0 -112
  826. data/lib/open_api_sdk/partners.rb +0 -1424
  827. data/lib/open_api_sdk/qr_codes.rb +0 -264
  828. data/lib/open_api_sdk/sdk_hooks/hooks.rb +0 -97
  829. data/lib/open_api_sdk/sdk_hooks/registration.rb +0 -35
  830. data/lib/open_api_sdk/sdk_hooks/types.rb +0 -170
  831. data/lib/open_api_sdk/sdkconfiguration.rb +0 -104
  832. data/lib/open_api_sdk/sdkconfiguration.rbi +0 -57
  833. data/lib/open_api_sdk/tags.rb +0 -978
  834. data/lib/open_api_sdk/track.rb +0 -511
  835. data/lib/open_api_sdk/utils/forms.rb +0 -206
  836. data/lib/open_api_sdk/utils/headers.rb +0 -77
  837. data/lib/open_api_sdk/utils/query_params.rb +0 -131
  838. data/lib/open_api_sdk/utils/request_bodies.rb +0 -61
  839. data/lib/open_api_sdk/utils/retries.rb +0 -95
  840. data/lib/open_api_sdk/utils/security.rb +0 -130
  841. data/lib/open_api_sdk/utils/url.rb +0 -100
  842. data/lib/open_api_sdk/utils/utils.rb +0 -187
  843. data/lib/open_api_sdk/workspaces.rb +0 -514
@@ -0,0 +1,1337 @@
1
+ /*
2
+ ** $Id: lparser.c,v 2.42a 2006/06/05 15:57:59 roberto Exp $
3
+ ** Lua Parser
4
+ ** See Copyright Notice in lua.h
5
+ */
6
+
7
+
8
+ #include <string.h>
9
+
10
+ #define lparser_c
11
+ #define LUA_CORE
12
+
13
+ #include "lua.h"
14
+
15
+ #include "lcode.h"
16
+ #include "ldebug.h"
17
+ #include "ldo.h"
18
+ #include "lfunc.h"
19
+ #include "llex.h"
20
+ #include "lmem.h"
21
+ #include "lobject.h"
22
+ #include "lopcodes.h"
23
+ #include "lparser.h"
24
+ #include "lstate.h"
25
+ #include "lstring.h"
26
+ #include "ltable.h"
27
+
28
+
29
+
30
+ #define hasmultret(k) ((k) == VCALL || (k) == VVARARG)
31
+
32
+ #define getlocvar(fs, i) ((fs)->f->locvars[(fs)->actvar[i]])
33
+
34
+ #define luaY_checklimit(fs,v,l,m) if ((v)>(l)) errorlimit(fs,l,m)
35
+
36
+
37
+ /*
38
+ ** nodes for block list (list of active blocks)
39
+ */
40
+ typedef struct BlockCnt {
41
+ struct BlockCnt *previous; /* chain */
42
+ int breaklist; /* list of jumps out of this loop */
43
+ lu_byte nactvar; /* # active locals outside the breakable structure */
44
+ lu_byte upval; /* true if some variable in the block is an upvalue */
45
+ lu_byte isbreakable; /* true if `block' is a loop */
46
+ } BlockCnt;
47
+
48
+
49
+
50
+ /*
51
+ ** prototypes for recursive non-terminal functions
52
+ */
53
+ static void chunk (LexState *ls);
54
+ static void expr (LexState *ls, expdesc *v);
55
+
56
+
57
+ static void anchor_token (LexState *ls) {
58
+ if (ls->t.token == TK_NAME || ls->t.token == TK_STRING) {
59
+ TString *ts = ls->t.seminfo.ts;
60
+ luaX_newstring(ls, getstr(ts), ts->tsv.len);
61
+ }
62
+ }
63
+
64
+
65
+ static void error_expected (LexState *ls, int token) {
66
+ luaX_syntaxerror(ls,
67
+ luaO_pushfstring(ls->L, LUA_QS " expected", luaX_token2str(ls, token)));
68
+ }
69
+
70
+
71
+ static void errorlimit (FuncState *fs, int limit, const char *what) {
72
+ const char *msg = (fs->f->linedefined == 0) ?
73
+ luaO_pushfstring(fs->L, "main function has more than %d %s", limit, what) :
74
+ luaO_pushfstring(fs->L, "function at line %d has more than %d %s",
75
+ fs->f->linedefined, limit, what);
76
+ luaX_lexerror(fs->ls, msg, 0);
77
+ }
78
+
79
+
80
+ static int testnext (LexState *ls, int c) {
81
+ if (ls->t.token == c) {
82
+ luaX_next(ls);
83
+ return 1;
84
+ }
85
+ else return 0;
86
+ }
87
+
88
+
89
+ static void check (LexState *ls, int c) {
90
+ if (ls->t.token != c)
91
+ error_expected(ls, c);
92
+ }
93
+
94
+ static void checknext (LexState *ls, int c) {
95
+ check(ls, c);
96
+ luaX_next(ls);
97
+ }
98
+
99
+
100
+ #define check_condition(ls,c,msg) { if (!(c)) luaX_syntaxerror(ls, msg); }
101
+
102
+
103
+
104
+ static void check_match (LexState *ls, int what, int who, int where) {
105
+ if (!testnext(ls, what)) {
106
+ if (where == ls->linenumber)
107
+ error_expected(ls, what);
108
+ else {
109
+ luaX_syntaxerror(ls, luaO_pushfstring(ls->L,
110
+ LUA_QS " expected (to close " LUA_QS " at line %d)",
111
+ luaX_token2str(ls, what), luaX_token2str(ls, who), where));
112
+ }
113
+ }
114
+ }
115
+
116
+
117
+ static TString *str_checkname (LexState *ls) {
118
+ TString *ts;
119
+ check(ls, TK_NAME);
120
+ ts = ls->t.seminfo.ts;
121
+ luaX_next(ls);
122
+ return ts;
123
+ }
124
+
125
+
126
+ static void init_exp (expdesc *e, expkind k, int i) {
127
+ e->f = e->t = NO_JUMP;
128
+ e->k = k;
129
+ e->u.s.info = i;
130
+ }
131
+
132
+
133
+ static void codestring (LexState *ls, expdesc *e, TString *s) {
134
+ init_exp(e, VK, luaK_stringK(ls->fs, s));
135
+ }
136
+
137
+
138
+ static void checkname(LexState *ls, expdesc *e) {
139
+ codestring(ls, e, str_checkname(ls));
140
+ }
141
+
142
+
143
+ static int registerlocalvar (LexState *ls, TString *varname) {
144
+ FuncState *fs = ls->fs;
145
+ Proto *f = fs->f;
146
+ int oldsize = f->sizelocvars;
147
+ luaM_growvector(ls->L, f->locvars, fs->nlocvars, f->sizelocvars,
148
+ LocVar, SHRT_MAX, "too many local variables");
149
+ while (oldsize < f->sizelocvars) f->locvars[oldsize++].varname = NULL;
150
+ f->locvars[fs->nlocvars].varname = varname;
151
+ luaC_objbarrier(ls->L, f, varname);
152
+ return fs->nlocvars++;
153
+ }
154
+
155
+
156
+ #define new_localvarliteral(ls,v,n) \
157
+ new_localvar(ls, luaX_newstring(ls, "" v, (sizeof(v)/sizeof(char))-1), n)
158
+
159
+
160
+ static void new_localvar (LexState *ls, TString *name, int n) {
161
+ FuncState *fs = ls->fs;
162
+ luaY_checklimit(fs, fs->nactvar+n+1, LUAI_MAXVARS, "local variables");
163
+ fs->actvar[fs->nactvar+n] = cast(unsigned short, registerlocalvar(ls, name));
164
+ }
165
+
166
+
167
+ static void adjustlocalvars (LexState *ls, int nvars) {
168
+ FuncState *fs = ls->fs;
169
+ fs->nactvar = cast_byte(fs->nactvar + nvars);
170
+ for (; nvars; nvars--) {
171
+ getlocvar(fs, fs->nactvar - nvars).startpc = fs->pc;
172
+ }
173
+ }
174
+
175
+
176
+ static void removevars (LexState *ls, int tolevel) {
177
+ FuncState *fs = ls->fs;
178
+ while (fs->nactvar > tolevel)
179
+ getlocvar(fs, --fs->nactvar).endpc = fs->pc;
180
+ }
181
+
182
+
183
+ static int indexupvalue (FuncState *fs, TString *name, expdesc *v) {
184
+ int i;
185
+ Proto *f = fs->f;
186
+ int oldsize = f->sizeupvalues;
187
+ for (i=0; i<f->nups; i++) {
188
+ if (fs->upvalues[i].k == v->k && fs->upvalues[i].info == v->u.s.info) {
189
+ lua_assert(f->upvalues[i] == name);
190
+ return i;
191
+ }
192
+ }
193
+ /* new one */
194
+ luaY_checklimit(fs, f->nups + 1, LUAI_MAXUPVALUES, "upvalues");
195
+ luaM_growvector(fs->L, f->upvalues, f->nups, f->sizeupvalues,
196
+ TString *, MAX_INT, "");
197
+ while (oldsize < f->sizeupvalues) f->upvalues[oldsize++] = NULL;
198
+ f->upvalues[f->nups] = name;
199
+ luaC_objbarrier(fs->L, f, name);
200
+ lua_assert(v->k == VLOCAL || v->k == VUPVAL);
201
+ fs->upvalues[f->nups].k = cast_byte(v->k);
202
+ fs->upvalues[f->nups].info = cast_byte(v->u.s.info);
203
+ return f->nups++;
204
+ }
205
+
206
+
207
+ static int searchvar (FuncState *fs, TString *n) {
208
+ int i;
209
+ for (i=fs->nactvar-1; i >= 0; i--) {
210
+ if (n == getlocvar(fs, i).varname)
211
+ return i;
212
+ }
213
+ return -1; /* not found */
214
+ }
215
+
216
+
217
+ static void markupval (FuncState *fs, int level) {
218
+ BlockCnt *bl = fs->bl;
219
+ while (bl && bl->nactvar > level) bl = bl->previous;
220
+ if (bl) bl->upval = 1;
221
+ }
222
+
223
+
224
+ static int singlevaraux (FuncState *fs, TString *n, expdesc *var, int base) {
225
+ if (fs == NULL) { /* no more levels? */
226
+ init_exp(var, VGLOBAL, NO_REG); /* default is global variable */
227
+ return VGLOBAL;
228
+ }
229
+ else {
230
+ int v = searchvar(fs, n); /* look up at current level */
231
+ if (v >= 0) {
232
+ init_exp(var, VLOCAL, v);
233
+ if (!base)
234
+ markupval(fs, v); /* local will be used as an upval */
235
+ return VLOCAL;
236
+ }
237
+ else { /* not found at current level; try upper one */
238
+ if (singlevaraux(fs->prev, n, var, 0) == VGLOBAL)
239
+ return VGLOBAL;
240
+ var->u.s.info = indexupvalue(fs, n, var); /* else was LOCAL or UPVAL */
241
+ var->k = VUPVAL; /* upvalue in this level */
242
+ return VUPVAL;
243
+ }
244
+ }
245
+ }
246
+
247
+
248
+ static void singlevar (LexState *ls, expdesc *var) {
249
+ TString *varname = str_checkname(ls);
250
+ FuncState *fs = ls->fs;
251
+ if (singlevaraux(fs, varname, var, 1) == VGLOBAL)
252
+ var->u.s.info = luaK_stringK(fs, varname); /* info points to global name */
253
+ }
254
+
255
+
256
+ static void adjust_assign (LexState *ls, int nvars, int nexps, expdesc *e) {
257
+ FuncState *fs = ls->fs;
258
+ int extra = nvars - nexps;
259
+ if (hasmultret(e->k)) {
260
+ extra++; /* includes call itself */
261
+ if (extra < 0) extra = 0;
262
+ luaK_setreturns(fs, e, extra); /* last exp. provides the difference */
263
+ if (extra > 1) luaK_reserveregs(fs, extra-1);
264
+ }
265
+ else {
266
+ if (e->k != VVOID) luaK_exp2nextreg(fs, e); /* close last expression */
267
+ if (extra > 0) {
268
+ int reg = fs->freereg;
269
+ luaK_reserveregs(fs, extra);
270
+ luaK_nil(fs, reg, extra);
271
+ }
272
+ }
273
+ }
274
+
275
+
276
+ static void enterlevel (LexState *ls) {
277
+ if (++ls->L->nCcalls > LUAI_MAXCCALLS)
278
+ luaX_lexerror(ls, "chunk has too many syntax levels", 0);
279
+ }
280
+
281
+
282
+ #define leavelevel(ls) ((ls)->L->nCcalls--)
283
+
284
+
285
+ static void enterblock (FuncState *fs, BlockCnt *bl, lu_byte isbreakable) {
286
+ bl->breaklist = NO_JUMP;
287
+ bl->isbreakable = isbreakable;
288
+ bl->nactvar = fs->nactvar;
289
+ bl->upval = 0;
290
+ bl->previous = fs->bl;
291
+ fs->bl = bl;
292
+ lua_assert(fs->freereg == fs->nactvar);
293
+ }
294
+
295
+
296
+ static void leaveblock (FuncState *fs) {
297
+ BlockCnt *bl = fs->bl;
298
+ fs->bl = bl->previous;
299
+ removevars(fs->ls, bl->nactvar);
300
+ if (bl->upval)
301
+ luaK_codeABC(fs, OP_CLOSE, bl->nactvar, 0, 0);
302
+ /* a block either controls scope or breaks (never both) */
303
+ lua_assert(!bl->isbreakable || !bl->upval);
304
+ lua_assert(bl->nactvar == fs->nactvar);
305
+ fs->freereg = fs->nactvar; /* free registers */
306
+ luaK_patchtohere(fs, bl->breaklist);
307
+ }
308
+
309
+
310
+ static void pushclosure (LexState *ls, FuncState *func, expdesc *v) {
311
+ FuncState *fs = ls->fs;
312
+ Proto *f = fs->f;
313
+ int oldsize = f->sizep;
314
+ int i;
315
+ luaM_growvector(ls->L, f->p, fs->np, f->sizep, Proto *,
316
+ MAXARG_Bx, "constant table overflow");
317
+ while (oldsize < f->sizep) f->p[oldsize++] = NULL;
318
+ f->p[fs->np++] = func->f;
319
+ luaC_objbarrier(ls->L, f, func->f);
320
+ init_exp(v, VRELOCABLE, luaK_codeABx(fs, OP_CLOSURE, 0, fs->np-1));
321
+ for (i=0; i<func->f->nups; i++) {
322
+ OpCode o = (func->upvalues[i].k == VLOCAL) ? OP_MOVE : OP_GETUPVAL;
323
+ luaK_codeABC(fs, o, 0, func->upvalues[i].info, 0);
324
+ }
325
+ }
326
+
327
+
328
+ static void open_func (LexState *ls, FuncState *fs) {
329
+ lua_State *L = ls->L;
330
+ Proto *f = luaF_newproto(L);
331
+ fs->f = f;
332
+ fs->prev = ls->fs; /* linked list of funcstates */
333
+ fs->ls = ls;
334
+ fs->L = L;
335
+ ls->fs = fs;
336
+ fs->pc = 0;
337
+ fs->lasttarget = -1;
338
+ fs->jpc = NO_JUMP;
339
+ fs->freereg = 0;
340
+ fs->nk = 0;
341
+ fs->np = 0;
342
+ fs->nlocvars = 0;
343
+ fs->nactvar = 0;
344
+ fs->bl = NULL;
345
+ f->source = ls->source;
346
+ f->maxstacksize = 2; /* registers 0/1 are always valid */
347
+ fs->h = luaH_new(L, 0, 0);
348
+ /* anchor table of constants and prototype (to avoid being collected) */
349
+ sethvalue2s(L, L->top, fs->h);
350
+ incr_top(L);
351
+ setptvalue2s(L, L->top, f);
352
+ incr_top(L);
353
+ }
354
+
355
+
356
+ static void close_func (LexState *ls) {
357
+ lua_State *L = ls->L;
358
+ FuncState *fs = ls->fs;
359
+ Proto *f = fs->f;
360
+ removevars(ls, 0);
361
+ luaK_ret(fs, 0, 0); /* final return */
362
+ luaM_reallocvector(L, f->code, f->sizecode, fs->pc, Instruction);
363
+ f->sizecode = fs->pc;
364
+ luaM_reallocvector(L, f->lineinfo, f->sizelineinfo, fs->pc, int);
365
+ f->sizelineinfo = fs->pc;
366
+ luaM_reallocvector(L, f->k, f->sizek, fs->nk, TValue);
367
+ f->sizek = fs->nk;
368
+ luaM_reallocvector(L, f->p, f->sizep, fs->np, Proto *);
369
+ f->sizep = fs->np;
370
+ luaM_reallocvector(L, f->locvars, f->sizelocvars, fs->nlocvars, LocVar);
371
+ f->sizelocvars = fs->nlocvars;
372
+ luaM_reallocvector(L, f->upvalues, f->sizeupvalues, f->nups, TString *);
373
+ f->sizeupvalues = f->nups;
374
+ lua_assert(luaG_checkcode(f));
375
+ lua_assert(fs->bl == NULL);
376
+ ls->fs = fs->prev;
377
+ L->top -= 2; /* remove table and prototype from the stack */
378
+ /* last token read was anchored in defunct function; must reanchor it */
379
+ if (fs) anchor_token(ls);
380
+ }
381
+
382
+
383
+ Proto *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, const char *name) {
384
+ struct LexState lexstate;
385
+ struct FuncState funcstate;
386
+ lexstate.buff = buff;
387
+ luaX_setinput(L, &lexstate, z, luaS_new(L, name));
388
+ open_func(&lexstate, &funcstate);
389
+ funcstate.f->is_vararg = VARARG_ISVARARG; /* main func. is always vararg */
390
+ luaX_next(&lexstate); /* read first token */
391
+ chunk(&lexstate);
392
+ check(&lexstate, TK_EOS);
393
+ close_func(&lexstate);
394
+ lua_assert(funcstate.prev == NULL);
395
+ lua_assert(funcstate.f->nups == 0);
396
+ lua_assert(lexstate.fs == NULL);
397
+ return funcstate.f;
398
+ }
399
+
400
+
401
+
402
+ /*============================================================*/
403
+ /* GRAMMAR RULES */
404
+ /*============================================================*/
405
+
406
+
407
+ static void field (LexState *ls, expdesc *v) {
408
+ /* field -> ['.' | ':'] NAME */
409
+ FuncState *fs = ls->fs;
410
+ expdesc key;
411
+ luaK_exp2anyreg(fs, v);
412
+ luaX_next(ls); /* skip the dot or colon */
413
+ checkname(ls, &key);
414
+ luaK_indexed(fs, v, &key);
415
+ }
416
+
417
+
418
+ static void yindex (LexState *ls, expdesc *v) {
419
+ /* index -> '[' expr ']' */
420
+ luaX_next(ls); /* skip the '[' */
421
+ expr(ls, v);
422
+ luaK_exp2val(ls->fs, v);
423
+ checknext(ls, ']');
424
+ }
425
+
426
+
427
+ /*
428
+ ** {======================================================================
429
+ ** Rules for Constructors
430
+ ** =======================================================================
431
+ */
432
+
433
+
434
+ struct ConsControl {
435
+ expdesc v; /* last list item read */
436
+ expdesc *t; /* table descriptor */
437
+ int nh; /* total number of `record' elements */
438
+ int na; /* total number of array elements */
439
+ int tostore; /* number of array elements pending to be stored */
440
+ };
441
+
442
+
443
+ static void recfield (LexState *ls, struct ConsControl *cc) {
444
+ /* recfield -> (NAME | `['exp1`]') = exp1 */
445
+ FuncState *fs = ls->fs;
446
+ int reg = ls->fs->freereg;
447
+ expdesc key, val;
448
+ int rkkey;
449
+ if (ls->t.token == TK_NAME) {
450
+ luaY_checklimit(fs, cc->nh, MAX_INT, "items in a constructor");
451
+ checkname(ls, &key);
452
+ }
453
+ else /* ls->t.token == '[' */
454
+ yindex(ls, &key);
455
+ cc->nh++;
456
+ checknext(ls, '=');
457
+ rkkey = luaK_exp2RK(fs, &key);
458
+ expr(ls, &val);
459
+ luaK_codeABC(fs, OP_SETTABLE, cc->t->u.s.info, rkkey, luaK_exp2RK(fs, &val));
460
+ fs->freereg = reg; /* free registers */
461
+ }
462
+
463
+
464
+ static void closelistfield (FuncState *fs, struct ConsControl *cc) {
465
+ if (cc->v.k == VVOID) return; /* there is no list item */
466
+ luaK_exp2nextreg(fs, &cc->v);
467
+ cc->v.k = VVOID;
468
+ if (cc->tostore == LFIELDS_PER_FLUSH) {
469
+ luaK_setlist(fs, cc->t->u.s.info, cc->na, cc->tostore); /* flush */
470
+ cc->tostore = 0; /* no more items pending */
471
+ }
472
+ }
473
+
474
+
475
+ static void lastlistfield (FuncState *fs, struct ConsControl *cc) {
476
+ if (cc->tostore == 0) return;
477
+ if (hasmultret(cc->v.k)) {
478
+ luaK_setmultret(fs, &cc->v);
479
+ luaK_setlist(fs, cc->t->u.s.info, cc->na, LUA_MULTRET);
480
+ cc->na--; /* do not count last expression (unknown number of elements) */
481
+ }
482
+ else {
483
+ if (cc->v.k != VVOID)
484
+ luaK_exp2nextreg(fs, &cc->v);
485
+ luaK_setlist(fs, cc->t->u.s.info, cc->na, cc->tostore);
486
+ }
487
+ }
488
+
489
+
490
+ static void listfield (LexState *ls, struct ConsControl *cc) {
491
+ expr(ls, &cc->v);
492
+ luaY_checklimit(ls->fs, cc->na, MAX_INT, "items in a constructor");
493
+ cc->na++;
494
+ cc->tostore++;
495
+ }
496
+
497
+
498
+ static void constructor (LexState *ls, expdesc *t) {
499
+ /* constructor -> ?? */
500
+ FuncState *fs = ls->fs;
501
+ int line = ls->linenumber;
502
+ int pc = luaK_codeABC(fs, OP_NEWTABLE, 0, 0, 0);
503
+ struct ConsControl cc;
504
+ cc.na = cc.nh = cc.tostore = 0;
505
+ cc.t = t;
506
+ init_exp(t, VRELOCABLE, pc);
507
+ init_exp(&cc.v, VVOID, 0); /* no value (yet) */
508
+ luaK_exp2nextreg(ls->fs, t); /* fix it at stack top (for gc) */
509
+ checknext(ls, '{');
510
+ do {
511
+ lua_assert(cc.v.k == VVOID || cc.tostore > 0);
512
+ if (ls->t.token == '}') break;
513
+ closelistfield(fs, &cc);
514
+ switch(ls->t.token) {
515
+ case TK_NAME: { /* may be listfields or recfields */
516
+ luaX_lookahead(ls);
517
+ if (ls->lookahead.token != '=') /* expression? */
518
+ listfield(ls, &cc);
519
+ else
520
+ recfield(ls, &cc);
521
+ break;
522
+ }
523
+ case '[': { /* constructor_item -> recfield */
524
+ recfield(ls, &cc);
525
+ break;
526
+ }
527
+ default: { /* constructor_part -> listfield */
528
+ listfield(ls, &cc);
529
+ break;
530
+ }
531
+ }
532
+ } while (testnext(ls, ',') || testnext(ls, ';'));
533
+ check_match(ls, '}', '{', line);
534
+ lastlistfield(fs, &cc);
535
+ SETARG_B(fs->f->code[pc], luaO_int2fb(cc.na)); /* set initial array size */
536
+ SETARG_C(fs->f->code[pc], luaO_int2fb(cc.nh)); /* set initial table size */
537
+ }
538
+
539
+ /* }====================================================================== */
540
+
541
+
542
+
543
+ static void parlist (LexState *ls) {
544
+ /* parlist -> [ param { `,' param } ] */
545
+ FuncState *fs = ls->fs;
546
+ Proto *f = fs->f;
547
+ int nparams = 0;
548
+ f->is_vararg = 0;
549
+ if (ls->t.token != ')') { /* is `parlist' not empty? */
550
+ do {
551
+ switch (ls->t.token) {
552
+ case TK_NAME: { /* param -> NAME */
553
+ new_localvar(ls, str_checkname(ls), nparams++);
554
+ break;
555
+ }
556
+ case TK_DOTS: { /* param -> `...' */
557
+ luaX_next(ls);
558
+ #if defined(LUA_COMPAT_VARARG)
559
+ /* use `arg' as default name */
560
+ new_localvarliteral(ls, "arg", nparams++);
561
+ f->is_vararg = VARARG_HASARG | VARARG_NEEDSARG;
562
+ #endif
563
+ f->is_vararg |= VARARG_ISVARARG;
564
+ break;
565
+ }
566
+ default: luaX_syntaxerror(ls, "<name> or " LUA_QL("...") " expected");
567
+ }
568
+ } while (!f->is_vararg && testnext(ls, ','));
569
+ }
570
+ adjustlocalvars(ls, nparams);
571
+ f->numparams = cast_byte(fs->nactvar - (f->is_vararg & VARARG_HASARG));
572
+ luaK_reserveregs(fs, fs->nactvar); /* reserve register for parameters */
573
+ }
574
+
575
+
576
+ static void body (LexState *ls, expdesc *e, int needself, int line) {
577
+ /* body -> `(' parlist `)' chunk END */
578
+ FuncState new_fs;
579
+ open_func(ls, &new_fs);
580
+ new_fs.f->linedefined = line;
581
+ checknext(ls, '(');
582
+ if (needself) {
583
+ new_localvarliteral(ls, "self", 0);
584
+ adjustlocalvars(ls, 1);
585
+ }
586
+ parlist(ls);
587
+ checknext(ls, ')');
588
+ chunk(ls);
589
+ new_fs.f->lastlinedefined = ls->linenumber;
590
+ check_match(ls, TK_END, TK_FUNCTION, line);
591
+ close_func(ls);
592
+ pushclosure(ls, &new_fs, e);
593
+ }
594
+
595
+
596
+ static int explist1 (LexState *ls, expdesc *v) {
597
+ /* explist1 -> expr { `,' expr } */
598
+ int n = 1; /* at least one expression */
599
+ expr(ls, v);
600
+ while (testnext(ls, ',')) {
601
+ luaK_exp2nextreg(ls->fs, v);
602
+ expr(ls, v);
603
+ n++;
604
+ }
605
+ return n;
606
+ }
607
+
608
+
609
+ static void funcargs (LexState *ls, expdesc *f) {
610
+ FuncState *fs = ls->fs;
611
+ expdesc args;
612
+ int base, nparams;
613
+ int line = ls->linenumber;
614
+ switch (ls->t.token) {
615
+ case '(': { /* funcargs -> `(' [ explist1 ] `)' */
616
+ if (line != ls->lastline)
617
+ luaX_syntaxerror(ls,"ambiguous syntax (function call x new statement)");
618
+ luaX_next(ls);
619
+ if (ls->t.token == ')') /* arg list is empty? */
620
+ args.k = VVOID;
621
+ else {
622
+ explist1(ls, &args);
623
+ luaK_setmultret(fs, &args);
624
+ }
625
+ check_match(ls, ')', '(', line);
626
+ break;
627
+ }
628
+ case '{': { /* funcargs -> constructor */
629
+ constructor(ls, &args);
630
+ break;
631
+ }
632
+ case TK_STRING: { /* funcargs -> STRING */
633
+ codestring(ls, &args, ls->t.seminfo.ts);
634
+ luaX_next(ls); /* must use `seminfo' before `next' */
635
+ break;
636
+ }
637
+ default: {
638
+ luaX_syntaxerror(ls, "function arguments expected");
639
+ return;
640
+ }
641
+ }
642
+ lua_assert(f->k == VNONRELOC);
643
+ base = f->u.s.info; /* base register for call */
644
+ if (hasmultret(args.k))
645
+ nparams = LUA_MULTRET; /* open call */
646
+ else {
647
+ if (args.k != VVOID)
648
+ luaK_exp2nextreg(fs, &args); /* close last argument */
649
+ nparams = fs->freereg - (base+1);
650
+ }
651
+ init_exp(f, VCALL, luaK_codeABC(fs, OP_CALL, base, nparams+1, 2));
652
+ luaK_fixline(fs, line);
653
+ fs->freereg = base+1; /* call remove function and arguments and leaves
654
+ (unless changed) one result */
655
+ }
656
+
657
+
658
+
659
+
660
+ /*
661
+ ** {======================================================================
662
+ ** Expression parsing
663
+ ** =======================================================================
664
+ */
665
+
666
+
667
+ static void prefixexp (LexState *ls, expdesc *v) {
668
+ /* prefixexp -> NAME | '(' expr ')' */
669
+ switch (ls->t.token) {
670
+ case '(': {
671
+ int line = ls->linenumber;
672
+ luaX_next(ls);
673
+ expr(ls, v);
674
+ check_match(ls, ')', '(', line);
675
+ luaK_dischargevars(ls->fs, v);
676
+ return;
677
+ }
678
+ case TK_NAME: {
679
+ singlevar(ls, v);
680
+ return;
681
+ }
682
+ default: {
683
+ luaX_syntaxerror(ls, "unexpected symbol");
684
+ return;
685
+ }
686
+ }
687
+ }
688
+
689
+
690
+ static void primaryexp (LexState *ls, expdesc *v) {
691
+ /* primaryexp ->
692
+ prefixexp { `.' NAME | `[' exp `]' | `:' NAME funcargs | funcargs } */
693
+ FuncState *fs = ls->fs;
694
+ prefixexp(ls, v);
695
+ for (;;) {
696
+ switch (ls->t.token) {
697
+ case '.': { /* field */
698
+ field(ls, v);
699
+ break;
700
+ }
701
+ case '[': { /* `[' exp1 `]' */
702
+ expdesc key;
703
+ luaK_exp2anyreg(fs, v);
704
+ yindex(ls, &key);
705
+ luaK_indexed(fs, v, &key);
706
+ break;
707
+ }
708
+ case ':': { /* `:' NAME funcargs */
709
+ expdesc key;
710
+ luaX_next(ls);
711
+ checkname(ls, &key);
712
+ luaK_self(fs, v, &key);
713
+ funcargs(ls, v);
714
+ break;
715
+ }
716
+ case '(': case TK_STRING: case '{': { /* funcargs */
717
+ luaK_exp2nextreg(fs, v);
718
+ funcargs(ls, v);
719
+ break;
720
+ }
721
+ default: return;
722
+ }
723
+ }
724
+ }
725
+
726
+
727
+ static void simpleexp (LexState *ls, expdesc *v) {
728
+ /* simpleexp -> NUMBER | STRING | NIL | true | false | ... |
729
+ constructor | FUNCTION body | primaryexp */
730
+ switch (ls->t.token) {
731
+ case TK_NUMBER: {
732
+ init_exp(v, VKNUM, 0);
733
+ v->u.nval = ls->t.seminfo.r;
734
+ break;
735
+ }
736
+ case TK_STRING: {
737
+ codestring(ls, v, ls->t.seminfo.ts);
738
+ break;
739
+ }
740
+ case TK_NIL: {
741
+ init_exp(v, VNIL, 0);
742
+ break;
743
+ }
744
+ case TK_TRUE: {
745
+ init_exp(v, VTRUE, 0);
746
+ break;
747
+ }
748
+ case TK_FALSE: {
749
+ init_exp(v, VFALSE, 0);
750
+ break;
751
+ }
752
+ case TK_DOTS: { /* vararg */
753
+ FuncState *fs = ls->fs;
754
+ check_condition(ls, fs->f->is_vararg,
755
+ "cannot use " LUA_QL("...") " outside a vararg function");
756
+ fs->f->is_vararg &= ~VARARG_NEEDSARG; /* don't need 'arg' */
757
+ init_exp(v, VVARARG, luaK_codeABC(fs, OP_VARARG, 0, 1, 0));
758
+ break;
759
+ }
760
+ case '{': { /* constructor */
761
+ constructor(ls, v);
762
+ return;
763
+ }
764
+ case TK_FUNCTION: {
765
+ luaX_next(ls);
766
+ body(ls, v, 0, ls->linenumber);
767
+ return;
768
+ }
769
+ default: {
770
+ primaryexp(ls, v);
771
+ return;
772
+ }
773
+ }
774
+ luaX_next(ls);
775
+ }
776
+
777
+
778
+ static UnOpr getunopr (int op) {
779
+ switch (op) {
780
+ case TK_NOT: return OPR_NOT;
781
+ case '-': return OPR_MINUS;
782
+ case '#': return OPR_LEN;
783
+ default: return OPR_NOUNOPR;
784
+ }
785
+ }
786
+
787
+
788
+ static BinOpr getbinopr (int op) {
789
+ switch (op) {
790
+ case '+': return OPR_ADD;
791
+ case '-': return OPR_SUB;
792
+ case '*': return OPR_MUL;
793
+ case '/': return OPR_DIV;
794
+ case '%': return OPR_MOD;
795
+ case '^': return OPR_POW;
796
+ case TK_CONCAT: return OPR_CONCAT;
797
+ case TK_NE: return OPR_NE;
798
+ case TK_EQ: return OPR_EQ;
799
+ case '<': return OPR_LT;
800
+ case TK_LE: return OPR_LE;
801
+ case '>': return OPR_GT;
802
+ case TK_GE: return OPR_GE;
803
+ case TK_AND: return OPR_AND;
804
+ case TK_OR: return OPR_OR;
805
+ default: return OPR_NOBINOPR;
806
+ }
807
+ }
808
+
809
+
810
+ static const struct {
811
+ lu_byte left; /* left priority for each binary operator */
812
+ lu_byte right; /* right priority */
813
+ } priority[] = { /* ORDER OPR */
814
+ {6, 6}, {6, 6}, {7, 7}, {7, 7}, {7, 7}, /* `+' `-' `/' `%' */
815
+ {10, 9}, {5, 4}, /* power and concat (right associative) */
816
+ {3, 3}, {3, 3}, /* equality and inequality */
817
+ {3, 3}, {3, 3}, {3, 3}, {3, 3}, /* order */
818
+ {2, 2}, {1, 1} /* logical (and/or) */
819
+ };
820
+
821
+ #define UNARY_PRIORITY 8 /* priority for unary operators */
822
+
823
+
824
+ /*
825
+ ** subexpr -> (simpleexp | unop subexpr) { binop subexpr }
826
+ ** where `binop' is any binary operator with a priority higher than `limit'
827
+ */
828
+ static BinOpr subexpr (LexState *ls, expdesc *v, unsigned int limit) {
829
+ BinOpr op;
830
+ UnOpr uop;
831
+ enterlevel(ls);
832
+ uop = getunopr(ls->t.token);
833
+ if (uop != OPR_NOUNOPR) {
834
+ luaX_next(ls);
835
+ subexpr(ls, v, UNARY_PRIORITY);
836
+ luaK_prefix(ls->fs, uop, v);
837
+ }
838
+ else simpleexp(ls, v);
839
+ /* expand while operators have priorities higher than `limit' */
840
+ op = getbinopr(ls->t.token);
841
+ while (op != OPR_NOBINOPR && priority[op].left > limit) {
842
+ expdesc v2;
843
+ BinOpr nextop;
844
+ luaX_next(ls);
845
+ luaK_infix(ls->fs, op, v);
846
+ /* read sub-expression with higher priority */
847
+ nextop = subexpr(ls, &v2, priority[op].right);
848
+ luaK_posfix(ls->fs, op, v, &v2);
849
+ op = nextop;
850
+ }
851
+ leavelevel(ls);
852
+ return op; /* return first untreated operator */
853
+ }
854
+
855
+
856
+ static void expr (LexState *ls, expdesc *v) {
857
+ subexpr(ls, v, 0);
858
+ }
859
+
860
+ /* }==================================================================== */
861
+
862
+
863
+
864
+ /*
865
+ ** {======================================================================
866
+ ** Rules for Statements
867
+ ** =======================================================================
868
+ */
869
+
870
+
871
+ static int block_follow (int token) {
872
+ switch (token) {
873
+ case TK_ELSE: case TK_ELSEIF: case TK_END:
874
+ case TK_UNTIL: case TK_EOS:
875
+ return 1;
876
+ default: return 0;
877
+ }
878
+ }
879
+
880
+
881
+ static void block (LexState *ls) {
882
+ /* block -> chunk */
883
+ FuncState *fs = ls->fs;
884
+ BlockCnt bl;
885
+ enterblock(fs, &bl, 0);
886
+ chunk(ls);
887
+ lua_assert(bl.breaklist == NO_JUMP);
888
+ leaveblock(fs);
889
+ }
890
+
891
+
892
+ /*
893
+ ** structure to chain all variables in the left-hand side of an
894
+ ** assignment
895
+ */
896
+ struct LHS_assign {
897
+ struct LHS_assign *prev;
898
+ expdesc v; /* variable (global, local, upvalue, or indexed) */
899
+ };
900
+
901
+
902
+ /*
903
+ ** check whether, in an assignment to a local variable, the local variable
904
+ ** is needed in a previous assignment (to a table). If so, save original
905
+ ** local value in a safe place and use this safe copy in the previous
906
+ ** assignment.
907
+ */
908
+ static void check_conflict (LexState *ls, struct LHS_assign *lh, expdesc *v) {
909
+ FuncState *fs = ls->fs;
910
+ int extra = fs->freereg; /* eventual position to save local variable */
911
+ int conflict = 0;
912
+ for (; lh; lh = lh->prev) {
913
+ if (lh->v.k == VINDEXED) {
914
+ if (lh->v.u.s.info == v->u.s.info) { /* conflict? */
915
+ conflict = 1;
916
+ lh->v.u.s.info = extra; /* previous assignment will use safe copy */
917
+ }
918
+ if (lh->v.u.s.aux == v->u.s.info) { /* conflict? */
919
+ conflict = 1;
920
+ lh->v.u.s.aux = extra; /* previous assignment will use safe copy */
921
+ }
922
+ }
923
+ }
924
+ if (conflict) {
925
+ luaK_codeABC(fs, OP_MOVE, fs->freereg, v->u.s.info, 0); /* make copy */
926
+ luaK_reserveregs(fs, 1);
927
+ }
928
+ }
929
+
930
+
931
+ static void assignment (LexState *ls, struct LHS_assign *lh, int nvars) {
932
+ expdesc e;
933
+ check_condition(ls, VLOCAL <= lh->v.k && lh->v.k <= VINDEXED,
934
+ "syntax error");
935
+ if (testnext(ls, ',')) { /* assignment -> `,' primaryexp assignment */
936
+ struct LHS_assign nv;
937
+ nv.prev = lh;
938
+ primaryexp(ls, &nv.v);
939
+ if (nv.v.k == VLOCAL)
940
+ check_conflict(ls, lh, &nv.v);
941
+ assignment(ls, &nv, nvars+1);
942
+ }
943
+ else { /* assignment -> `=' explist1 */
944
+ int nexps;
945
+ checknext(ls, '=');
946
+ nexps = explist1(ls, &e);
947
+ if (nexps != nvars) {
948
+ adjust_assign(ls, nvars, nexps, &e);
949
+ if (nexps > nvars)
950
+ ls->fs->freereg -= nexps - nvars; /* remove extra values */
951
+ }
952
+ else {
953
+ luaK_setoneret(ls->fs, &e); /* close last expression */
954
+ luaK_storevar(ls->fs, &lh->v, &e);
955
+ return; /* avoid default */
956
+ }
957
+ }
958
+ init_exp(&e, VNONRELOC, ls->fs->freereg-1); /* default assignment */
959
+ luaK_storevar(ls->fs, &lh->v, &e);
960
+ }
961
+
962
+
963
+ static int cond (LexState *ls) {
964
+ /* cond -> exp */
965
+ expdesc v;
966
+ expr(ls, &v); /* read condition */
967
+ if (v.k == VNIL) v.k = VFALSE; /* `falses' are all equal here */
968
+ luaK_goiftrue(ls->fs, &v);
969
+ return v.f;
970
+ }
971
+
972
+
973
+ static void breakstat (LexState *ls) {
974
+ FuncState *fs = ls->fs;
975
+ BlockCnt *bl = fs->bl;
976
+ int upval = 0;
977
+ while (bl && !bl->isbreakable) {
978
+ upval |= bl->upval;
979
+ bl = bl->previous;
980
+ }
981
+ if (!bl)
982
+ luaX_syntaxerror(ls, "no loop to break");
983
+ if (upval)
984
+ luaK_codeABC(fs, OP_CLOSE, bl->nactvar, 0, 0);
985
+ luaK_concat(fs, &bl->breaklist, luaK_jump(fs));
986
+ }
987
+
988
+
989
+ static void whilestat (LexState *ls, int line) {
990
+ /* whilestat -> WHILE cond DO block END */
991
+ FuncState *fs = ls->fs;
992
+ int whileinit;
993
+ int condexit;
994
+ BlockCnt bl;
995
+ luaX_next(ls); /* skip WHILE */
996
+ whileinit = luaK_getlabel(fs);
997
+ condexit = cond(ls);
998
+ enterblock(fs, &bl, 1);
999
+ checknext(ls, TK_DO);
1000
+ block(ls);
1001
+ luaK_patchlist(fs, luaK_jump(fs), whileinit);
1002
+ check_match(ls, TK_END, TK_WHILE, line);
1003
+ leaveblock(fs);
1004
+ luaK_patchtohere(fs, condexit); /* false conditions finish the loop */
1005
+ }
1006
+
1007
+
1008
+ static void repeatstat (LexState *ls, int line) {
1009
+ /* repeatstat -> REPEAT block UNTIL cond */
1010
+ int condexit;
1011
+ FuncState *fs = ls->fs;
1012
+ int repeat_init = luaK_getlabel(fs);
1013
+ BlockCnt bl1, bl2;
1014
+ enterblock(fs, &bl1, 1); /* loop block */
1015
+ enterblock(fs, &bl2, 0); /* scope block */
1016
+ luaX_next(ls); /* skip REPEAT */
1017
+ chunk(ls);
1018
+ check_match(ls, TK_UNTIL, TK_REPEAT, line);
1019
+ condexit = cond(ls); /* read condition (inside scope block) */
1020
+ if (!bl2.upval) { /* no upvalues? */
1021
+ leaveblock(fs); /* finish scope */
1022
+ luaK_patchlist(ls->fs, condexit, repeat_init); /* close the loop */
1023
+ }
1024
+ else { /* complete semantics when there are upvalues */
1025
+ breakstat(ls); /* if condition then break */
1026
+ luaK_patchtohere(ls->fs, condexit); /* else... */
1027
+ leaveblock(fs); /* finish scope... */
1028
+ luaK_patchlist(ls->fs, luaK_jump(fs), repeat_init); /* and repeat */
1029
+ }
1030
+ leaveblock(fs); /* finish loop */
1031
+ }
1032
+
1033
+
1034
+ static int exp1 (LexState *ls) {
1035
+ expdesc e;
1036
+ int k;
1037
+ expr(ls, &e);
1038
+ k = e.k;
1039
+ luaK_exp2nextreg(ls->fs, &e);
1040
+ return k;
1041
+ }
1042
+
1043
+
1044
+ static void forbody (LexState *ls, int base, int line, int nvars, int isnum) {
1045
+ /* forbody -> DO block */
1046
+ BlockCnt bl;
1047
+ FuncState *fs = ls->fs;
1048
+ int prep, endfor;
1049
+ adjustlocalvars(ls, 3); /* control variables */
1050
+ checknext(ls, TK_DO);
1051
+ prep = isnum ? luaK_codeAsBx(fs, OP_FORPREP, base, NO_JUMP) : luaK_jump(fs);
1052
+ enterblock(fs, &bl, 0); /* scope for declared variables */
1053
+ adjustlocalvars(ls, nvars);
1054
+ luaK_reserveregs(fs, nvars);
1055
+ block(ls);
1056
+ leaveblock(fs); /* end of scope for declared variables */
1057
+ luaK_patchtohere(fs, prep);
1058
+ endfor = (isnum) ? luaK_codeAsBx(fs, OP_FORLOOP, base, NO_JUMP) :
1059
+ luaK_codeABC(fs, OP_TFORLOOP, base, 0, nvars);
1060
+ luaK_fixline(fs, line); /* pretend that `OP_FOR' starts the loop */
1061
+ luaK_patchlist(fs, (isnum ? endfor : luaK_jump(fs)), prep + 1);
1062
+ }
1063
+
1064
+
1065
+ static void fornum (LexState *ls, TString *varname, int line) {
1066
+ /* fornum -> NAME = exp1,exp1[,exp1] forbody */
1067
+ FuncState *fs = ls->fs;
1068
+ int base = fs->freereg;
1069
+ new_localvarliteral(ls, "(for index)", 0);
1070
+ new_localvarliteral(ls, "(for limit)", 1);
1071
+ new_localvarliteral(ls, "(for step)", 2);
1072
+ new_localvar(ls, varname, 3);
1073
+ checknext(ls, '=');
1074
+ exp1(ls); /* initial value */
1075
+ checknext(ls, ',');
1076
+ exp1(ls); /* limit */
1077
+ if (testnext(ls, ','))
1078
+ exp1(ls); /* optional step */
1079
+ else { /* default step = 1 */
1080
+ luaK_codeABx(fs, OP_LOADK, fs->freereg, luaK_numberK(fs, 1));
1081
+ luaK_reserveregs(fs, 1);
1082
+ }
1083
+ forbody(ls, base, line, 1, 1);
1084
+ }
1085
+
1086
+
1087
+ static void forlist (LexState *ls, TString *indexname) {
1088
+ /* forlist -> NAME {,NAME} IN explist1 forbody */
1089
+ FuncState *fs = ls->fs;
1090
+ expdesc e;
1091
+ int nvars = 0;
1092
+ int line;
1093
+ int base = fs->freereg;
1094
+ /* create control variables */
1095
+ new_localvarliteral(ls, "(for generator)", nvars++);
1096
+ new_localvarliteral(ls, "(for state)", nvars++);
1097
+ new_localvarliteral(ls, "(for control)", nvars++);
1098
+ /* create declared variables */
1099
+ new_localvar(ls, indexname, nvars++);
1100
+ while (testnext(ls, ','))
1101
+ new_localvar(ls, str_checkname(ls), nvars++);
1102
+ checknext(ls, TK_IN);
1103
+ line = ls->linenumber;
1104
+ adjust_assign(ls, 3, explist1(ls, &e), &e);
1105
+ luaK_checkstack(fs, 3); /* extra space to call generator */
1106
+ forbody(ls, base, line, nvars - 3, 0);
1107
+ }
1108
+
1109
+
1110
+ static void forstat (LexState *ls, int line) {
1111
+ /* forstat -> FOR (fornum | forlist) END */
1112
+ FuncState *fs = ls->fs;
1113
+ TString *varname;
1114
+ BlockCnt bl;
1115
+ enterblock(fs, &bl, 1); /* scope for loop and control variables */
1116
+ luaX_next(ls); /* skip `for' */
1117
+ varname = str_checkname(ls); /* first variable name */
1118
+ switch (ls->t.token) {
1119
+ case '=': fornum(ls, varname, line); break;
1120
+ case ',': case TK_IN: forlist(ls, varname); break;
1121
+ default: luaX_syntaxerror(ls, LUA_QL("=") " or " LUA_QL("in") " expected");
1122
+ }
1123
+ check_match(ls, TK_END, TK_FOR, line);
1124
+ leaveblock(fs); /* loop scope (`break' jumps to this point) */
1125
+ }
1126
+
1127
+
1128
+ static int test_then_block (LexState *ls) {
1129
+ /* test_then_block -> [IF | ELSEIF] cond THEN block */
1130
+ int condexit;
1131
+ luaX_next(ls); /* skip IF or ELSEIF */
1132
+ condexit = cond(ls);
1133
+ checknext(ls, TK_THEN);
1134
+ block(ls); /* `then' part */
1135
+ return condexit;
1136
+ }
1137
+
1138
+
1139
+ static void ifstat (LexState *ls, int line) {
1140
+ /* ifstat -> IF cond THEN block {ELSEIF cond THEN block} [ELSE block] END */
1141
+ FuncState *fs = ls->fs;
1142
+ int flist;
1143
+ int escapelist = NO_JUMP;
1144
+ flist = test_then_block(ls); /* IF cond THEN block */
1145
+ while (ls->t.token == TK_ELSEIF) {
1146
+ luaK_concat(fs, &escapelist, luaK_jump(fs));
1147
+ luaK_patchtohere(fs, flist);
1148
+ flist = test_then_block(ls); /* ELSEIF cond THEN block */
1149
+ }
1150
+ if (ls->t.token == TK_ELSE) {
1151
+ luaK_concat(fs, &escapelist, luaK_jump(fs));
1152
+ luaK_patchtohere(fs, flist);
1153
+ luaX_next(ls); /* skip ELSE (after patch, for correct line info) */
1154
+ block(ls); /* `else' part */
1155
+ }
1156
+ else
1157
+ luaK_concat(fs, &escapelist, flist);
1158
+ luaK_patchtohere(fs, escapelist);
1159
+ check_match(ls, TK_END, TK_IF, line);
1160
+ }
1161
+
1162
+
1163
+ static void localfunc (LexState *ls) {
1164
+ expdesc v, b;
1165
+ FuncState *fs = ls->fs;
1166
+ new_localvar(ls, str_checkname(ls), 0);
1167
+ init_exp(&v, VLOCAL, fs->freereg);
1168
+ luaK_reserveregs(fs, 1);
1169
+ adjustlocalvars(ls, 1);
1170
+ body(ls, &b, 0, ls->linenumber);
1171
+ luaK_storevar(fs, &v, &b);
1172
+ /* debug information will only see the variable after this point! */
1173
+ getlocvar(fs, fs->nactvar - 1).startpc = fs->pc;
1174
+ }
1175
+
1176
+
1177
+ static void localstat (LexState *ls) {
1178
+ /* stat -> LOCAL NAME {`,' NAME} [`=' explist1] */
1179
+ int nvars = 0;
1180
+ int nexps;
1181
+ expdesc e;
1182
+ do {
1183
+ new_localvar(ls, str_checkname(ls), nvars++);
1184
+ } while (testnext(ls, ','));
1185
+ if (testnext(ls, '='))
1186
+ nexps = explist1(ls, &e);
1187
+ else {
1188
+ e.k = VVOID;
1189
+ nexps = 0;
1190
+ }
1191
+ adjust_assign(ls, nvars, nexps, &e);
1192
+ adjustlocalvars(ls, nvars);
1193
+ }
1194
+
1195
+
1196
+ static int funcname (LexState *ls, expdesc *v) {
1197
+ /* funcname -> NAME {field} [`:' NAME] */
1198
+ int needself = 0;
1199
+ singlevar(ls, v);
1200
+ while (ls->t.token == '.')
1201
+ field(ls, v);
1202
+ if (ls->t.token == ':') {
1203
+ needself = 1;
1204
+ field(ls, v);
1205
+ }
1206
+ return needself;
1207
+ }
1208
+
1209
+
1210
+ static void funcstat (LexState *ls, int line) {
1211
+ /* funcstat -> FUNCTION funcname body */
1212
+ int needself;
1213
+ expdesc v, b;
1214
+ luaX_next(ls); /* skip FUNCTION */
1215
+ needself = funcname(ls, &v);
1216
+ body(ls, &b, needself, line);
1217
+ luaK_storevar(ls->fs, &v, &b);
1218
+ luaK_fixline(ls->fs, line); /* definition `happens' in the first line */
1219
+ }
1220
+
1221
+
1222
+ static void exprstat (LexState *ls) {
1223
+ /* stat -> func | assignment */
1224
+ FuncState *fs = ls->fs;
1225
+ struct LHS_assign v;
1226
+ primaryexp(ls, &v.v);
1227
+ if (v.v.k == VCALL) /* stat -> func */
1228
+ SETARG_C(getcode(fs, &v.v), 1); /* call statement uses no results */
1229
+ else { /* stat -> assignment */
1230
+ v.prev = NULL;
1231
+ assignment(ls, &v, 1);
1232
+ }
1233
+ }
1234
+
1235
+
1236
+ static void retstat (LexState *ls) {
1237
+ /* stat -> RETURN explist */
1238
+ FuncState *fs = ls->fs;
1239
+ expdesc e;
1240
+ int first, nret; /* registers with returned values */
1241
+ luaX_next(ls); /* skip RETURN */
1242
+ if (block_follow(ls->t.token) || ls->t.token == ';')
1243
+ first = nret = 0; /* return no values */
1244
+ else {
1245
+ nret = explist1(ls, &e); /* optional return values */
1246
+ if (hasmultret(e.k)) {
1247
+ luaK_setmultret(fs, &e);
1248
+ if (e.k == VCALL && nret == 1) { /* tail call? */
1249
+ SET_OPCODE(getcode(fs,&e), OP_TAILCALL);
1250
+ lua_assert(GETARG_A(getcode(fs,&e)) == fs->nactvar);
1251
+ }
1252
+ first = fs->nactvar;
1253
+ nret = LUA_MULTRET; /* return all values */
1254
+ }
1255
+ else {
1256
+ if (nret == 1) /* only one single value? */
1257
+ first = luaK_exp2anyreg(fs, &e);
1258
+ else {
1259
+ luaK_exp2nextreg(fs, &e); /* values must go to the `stack' */
1260
+ first = fs->nactvar; /* return all `active' values */
1261
+ lua_assert(nret == fs->freereg - first);
1262
+ }
1263
+ }
1264
+ }
1265
+ luaK_ret(fs, first, nret);
1266
+ }
1267
+
1268
+
1269
+ static int statement (LexState *ls) {
1270
+ int line = ls->linenumber; /* may be needed for error messages */
1271
+ switch (ls->t.token) {
1272
+ case TK_IF: { /* stat -> ifstat */
1273
+ ifstat(ls, line);
1274
+ return 0;
1275
+ }
1276
+ case TK_WHILE: { /* stat -> whilestat */
1277
+ whilestat(ls, line);
1278
+ return 0;
1279
+ }
1280
+ case TK_DO: { /* stat -> DO block END */
1281
+ luaX_next(ls); /* skip DO */
1282
+ block(ls);
1283
+ check_match(ls, TK_END, TK_DO, line);
1284
+ return 0;
1285
+ }
1286
+ case TK_FOR: { /* stat -> forstat */
1287
+ forstat(ls, line);
1288
+ return 0;
1289
+ }
1290
+ case TK_REPEAT: { /* stat -> repeatstat */
1291
+ repeatstat(ls, line);
1292
+ return 0;
1293
+ }
1294
+ case TK_FUNCTION: {
1295
+ funcstat(ls, line); /* stat -> funcstat */
1296
+ return 0;
1297
+ }
1298
+ case TK_LOCAL: { /* stat -> localstat */
1299
+ luaX_next(ls); /* skip LOCAL */
1300
+ if (testnext(ls, TK_FUNCTION)) /* local function? */
1301
+ localfunc(ls);
1302
+ else
1303
+ localstat(ls);
1304
+ return 0;
1305
+ }
1306
+ case TK_RETURN: { /* stat -> retstat */
1307
+ retstat(ls);
1308
+ return 1; /* must be last statement */
1309
+ }
1310
+ case TK_BREAK: { /* stat -> breakstat */
1311
+ luaX_next(ls); /* skip BREAK */
1312
+ breakstat(ls);
1313
+ return 1; /* must be last statement */
1314
+ }
1315
+ default: {
1316
+ exprstat(ls);
1317
+ return 0; /* to avoid warnings */
1318
+ }
1319
+ }
1320
+ }
1321
+
1322
+
1323
+ static void chunk (LexState *ls) {
1324
+ /* chunk -> { stat [`;'] } */
1325
+ int islast = 0;
1326
+ enterlevel(ls);
1327
+ while (!islast && !block_follow(ls->t.token)) {
1328
+ islast = statement(ls);
1329
+ testnext(ls, ';');
1330
+ lua_assert(ls->fs->f->maxstacksize >= ls->fs->freereg &&
1331
+ ls->fs->freereg >= ls->fs->nactvar);
1332
+ ls->fs->freereg = ls->fs->nactvar; /* free registers */
1333
+ }
1334
+ leavelevel(ls);
1335
+ }
1336
+
1337
+ /* }====================================================================== */