@lpc-lang/core 1.1.2-5.1

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.
Files changed (317) hide show
  1. package/README.md +255 -0
  2. package/bin/lpc +4 -0
  3. package/bin/lpcserver +4 -0
  4. package/cancellationToken/cancellationToken.d.ts +8 -0
  5. package/cancellationToken/cancellationToken.d.ts.map +1 -0
  6. package/cancellationToken/serverCancellationToken.d.ts +21 -0
  7. package/cancellationToken/serverCancellationToken.d.ts.map +1 -0
  8. package/cli/_namespaces/lpc.d.ts +2 -0
  9. package/cli/_namespaces/lpc.d.ts.map +1 -0
  10. package/cli/lpc.d.ts +2 -0
  11. package/cli/lpc.d.ts.map +1 -0
  12. package/compiler/LpcConfig.d.ts +17 -0
  13. package/compiler/LpcConfig.d.ts.map +1 -0
  14. package/compiler/_namespaces/lpc.d.ts +49 -0
  15. package/compiler/_namespaces/lpc.d.ts.map +1 -0
  16. package/compiler/_namespaces/lpc.moduleSpecifiers.d.ts +2 -0
  17. package/compiler/_namespaces/lpc.moduleSpecifiers.d.ts.map +1 -0
  18. package/compiler/_namespaces/lpc.performance.d.ts +2 -0
  19. package/compiler/_namespaces/lpc.performance.d.ts.map +1 -0
  20. package/compiler/binder.d.ts +2 -0
  21. package/compiler/binder.d.ts.map +1 -0
  22. package/compiler/builderPublic.d.ts +76 -0
  23. package/compiler/builderPublic.d.ts.map +1 -0
  24. package/compiler/checker.d.ts +2 -0
  25. package/compiler/checker.d.ts.map +1 -0
  26. package/compiler/commandLineParser.d.ts +47 -0
  27. package/compiler/commandLineParser.d.ts.map +1 -0
  28. package/compiler/core.d.ts +3 -0
  29. package/compiler/core.d.ts.map +1 -0
  30. package/compiler/corePublic.d.ts +19 -0
  31. package/compiler/corePublic.d.ts.map +1 -0
  32. package/compiler/debug.d.ts +71 -0
  33. package/compiler/debug.d.ts.map +1 -0
  34. package/compiler/diagnosticInformation.d.ts +518 -0
  35. package/compiler/diagnosticInformation.d.ts.map +1 -0
  36. package/compiler/emitter.d.ts +11 -0
  37. package/compiler/emitter.d.ts.map +1 -0
  38. package/compiler/executeCommandLine.d.ts +15 -0
  39. package/compiler/executeCommandLine.d.ts.map +1 -0
  40. package/compiler/expressionToTypeNode.d.ts +2 -0
  41. package/compiler/expressionToTypeNode.d.ts.map +1 -0
  42. package/compiler/factory/baseNodeFactory.d.ts +2 -0
  43. package/compiler/factory/baseNodeFactory.d.ts.map +1 -0
  44. package/compiler/factory/emitHelper.d.ts +2 -0
  45. package/compiler/factory/emitHelper.d.ts.map +1 -0
  46. package/compiler/factory/emitNode.d.ts +22 -0
  47. package/compiler/factory/emitNode.d.ts.map +1 -0
  48. package/compiler/factory/nodeChildren.d.ts +2 -0
  49. package/compiler/factory/nodeChildren.d.ts.map +1 -0
  50. package/compiler/factory/nodeConverters.d.ts +2 -0
  51. package/compiler/factory/nodeConverters.d.ts.map +1 -0
  52. package/compiler/factory/nodeFactory.d.ts +4 -0
  53. package/compiler/factory/nodeFactory.d.ts.map +1 -0
  54. package/compiler/factory/parenthesizerRules.d.ts +2 -0
  55. package/compiler/factory/parenthesizerRules.d.ts.map +1 -0
  56. package/compiler/factory/utilities.d.ts +2 -0
  57. package/compiler/factory/utilities.d.ts.map +1 -0
  58. package/compiler/factory/utilitiesPublic.d.ts +4 -0
  59. package/compiler/factory/utilitiesPublic.d.ts.map +1 -0
  60. package/compiler/lpcFileHandler.d.ts +10 -0
  61. package/compiler/lpcFileHandler.d.ts.map +1 -0
  62. package/compiler/lpcJsHelpers.d.ts +17 -0
  63. package/compiler/lpcJsHelpers.d.ts.map +1 -0
  64. package/compiler/lpcbuild.d.ts +2 -0
  65. package/compiler/lpcbuild.d.ts.map +1 -0
  66. package/compiler/lpcbuildPublic.d.ts +26 -0
  67. package/compiler/lpcbuildPublic.d.ts.map +1 -0
  68. package/compiler/moduleNameResolver.d.ts +55 -0
  69. package/compiler/moduleNameResolver.d.ts.map +1 -0
  70. package/compiler/moduleSpecifiers.d.ts +2 -0
  71. package/compiler/moduleSpecifiers.d.ts.map +1 -0
  72. package/compiler/nodeTests.d.ts +115 -0
  73. package/compiler/nodeTests.d.ts.map +1 -0
  74. package/compiler/parser.d.ts +65 -0
  75. package/compiler/parser.d.ts.map +1 -0
  76. package/compiler/path.d.ts +2 -0
  77. package/compiler/path.d.ts.map +1 -0
  78. package/compiler/perfLoger.d.ts +2 -0
  79. package/compiler/perfLoger.d.ts.map +1 -0
  80. package/compiler/performance.d.ts +2 -0
  81. package/compiler/performance.d.ts.map +1 -0
  82. package/compiler/performanceCore.d.ts +2 -0
  83. package/compiler/performanceCore.d.ts.map +1 -0
  84. package/compiler/program.d.ts +72 -0
  85. package/compiler/program.d.ts.map +1 -0
  86. package/compiler/resolutionCache.d.ts +6 -0
  87. package/compiler/resolutionCache.d.ts.map +1 -0
  88. package/compiler/resolver.d.ts +1 -0
  89. package/compiler/resolver.d.ts.map +1 -0
  90. package/compiler/scanner.d.ts +85 -0
  91. package/compiler/scanner.d.ts.map +1 -0
  92. package/compiler/sourcemap.d.ts +2 -0
  93. package/compiler/sourcemap.d.ts.map +1 -0
  94. package/compiler/sys.d.ts +56 -0
  95. package/compiler/sys.d.ts.map +1 -0
  96. package/compiler/tracing.d.ts +31 -0
  97. package/compiler/tracing.d.ts.map +1 -0
  98. package/compiler/transformers/declarations.d.ts +2 -0
  99. package/compiler/transformers/declarations.d.ts.map +1 -0
  100. package/compiler/transformers.d.ts +2 -0
  101. package/compiler/transformers.d.ts.map +1 -0
  102. package/compiler/types.d.ts +3284 -0
  103. package/compiler/types.d.ts.map +1 -0
  104. package/compiler/utilities.d.ts +57 -0
  105. package/compiler/utilities.d.ts.map +1 -0
  106. package/compiler/utilitiesPublic.d.ts +213 -0
  107. package/compiler/utilitiesPublic.d.ts.map +1 -0
  108. package/compiler/visitorPublic.d.ts +72 -0
  109. package/compiler/visitorPublic.d.ts.map +1 -0
  110. package/compiler/watch.d.ts +2 -0
  111. package/compiler/watch.d.ts.map +1 -0
  112. package/compiler/watchPublic.d.ts +44 -0
  113. package/compiler/watchPublic.d.ts.map +1 -0
  114. package/compiler/watchUtilities.d.ts +14 -0
  115. package/compiler/watchUtilities.d.ts.map +1 -0
  116. package/config-types.d.ts +33 -0
  117. package/config-types.d.ts.map +1 -0
  118. package/harness/harnessIO.d.ts +4 -0
  119. package/harness/harnessIO.d.ts.map +1 -0
  120. package/lpc/_namespaces/lpc.d.ts +6 -0
  121. package/lpc/_namespaces/lpc.d.ts.map +1 -0
  122. package/lpc/_namespaces/lpc.server.d.ts +2 -0
  123. package/lpc/_namespaces/lpc.server.d.ts.map +1 -0
  124. package/lpc/lpc.d.ts +2 -0
  125. package/lpc/lpc.d.ts.map +1 -0
  126. package/lpcserver/document.d.ts +1 -0
  127. package/lpcserver/document.d.ts.map +1 -0
  128. package/lpcserver/nodeServer.d.ts +25 -0
  129. package/lpcserver/nodeServer.d.ts.map +1 -0
  130. package/lpcserver/protocol.const.d.ts +46 -0
  131. package/lpcserver/protocol.const.d.ts.map +1 -0
  132. package/lpcserver/server.d.ts +3 -0
  133. package/lpcserver/server.d.ts.map +1 -0
  134. package/lpcserver/textRendering.d.ts +14 -0
  135. package/lpcserver/textRendering.d.ts.map +1 -0
  136. package/lpcserver/typeConverters.d.ts +44 -0
  137. package/lpcserver/typeConverters.d.ts.map +1 -0
  138. package/lpcserver/utils.d.ts +14 -0
  139. package/lpcserver/utils.d.ts.map +1 -0
  140. package/package.json +48 -0
  141. package/parse-fluff-docs.d.ts +2 -0
  142. package/parse-fluff-docs.d.ts.map +1 -0
  143. package/parse-ld-docs.d.ts +2 -0
  144. package/parse-ld-docs.d.ts.map +1 -0
  145. package/server/_namespaces/lpc.d.ts +5 -0
  146. package/server/_namespaces/lpc.d.ts.map +1 -0
  147. package/server/_namespaces/lpc.server.d.ts +11 -0
  148. package/server/_namespaces/lpc.server.d.ts.map +1 -0
  149. package/server/_namespaces/lpc.server.protocol.d.ts +2 -0
  150. package/server/_namespaces/lpc.server.protocol.d.ts.map +1 -0
  151. package/server/editorServices.d.ts +261 -0
  152. package/server/editorServices.d.ts.map +1 -0
  153. package/server/project.d.ts +143 -0
  154. package/server/project.d.ts.map +1 -0
  155. package/server/protocol.d.ts +962 -0
  156. package/server/protocol.d.ts.map +1 -0
  157. package/server/scriptInfo.d.ts +53 -0
  158. package/server/scriptInfo.d.ts.map +1 -0
  159. package/server/scriptVersionCache.d.ts +2 -0
  160. package/server/scriptVersionCache.d.ts.map +1 -0
  161. package/server/session.d.ts +150 -0
  162. package/server/session.d.ts.map +1 -0
  163. package/server/types.d.ts +24 -0
  164. package/server/types.d.ts.map +1 -0
  165. package/server/utilities.d.ts +2 -0
  166. package/server/utilities.d.ts.map +1 -0
  167. package/server/utilitiesPublic.d.ts +37 -0
  168. package/server/utilitiesPublic.d.ts.map +1 -0
  169. package/server.d.ts +2 -0
  170. package/server.d.ts.map +1 -0
  171. package/services/_namespaces/lpc.Completions.StringCompletions.d.ts +2 -0
  172. package/services/_namespaces/lpc.Completions.StringCompletions.d.ts.map +1 -0
  173. package/services/_namespaces/lpc.Completions.d.ts +4 -0
  174. package/services/_namespaces/lpc.Completions.d.ts.map +1 -0
  175. package/services/_namespaces/lpc.FindAllReferences.d.ts +3 -0
  176. package/services/_namespaces/lpc.FindAllReferences.d.ts.map +1 -0
  177. package/services/_namespaces/lpc.GoToDefinition.d.ts +2 -0
  178. package/services/_namespaces/lpc.GoToDefinition.d.ts.map +1 -0
  179. package/services/_namespaces/lpc.JsDoc.d.ts +2 -0
  180. package/services/_namespaces/lpc.JsDoc.d.ts.map +1 -0
  181. package/services/_namespaces/lpc.NavigationBar.d.ts +2 -0
  182. package/services/_namespaces/lpc.NavigationBar.d.ts.map +1 -0
  183. package/services/_namespaces/lpc.Rename.d.ts +2 -0
  184. package/services/_namespaces/lpc.Rename.d.ts.map +1 -0
  185. package/services/_namespaces/lpc.SignatureHelp.d.ts +2 -0
  186. package/services/_namespaces/lpc.SignatureHelp.d.ts.map +1 -0
  187. package/services/_namespaces/lpc.SymbolDisplay.d.ts +2 -0
  188. package/services/_namespaces/lpc.SymbolDisplay.d.ts.map +1 -0
  189. package/services/_namespaces/lpc.codefix.d.ts +3 -0
  190. package/services/_namespaces/lpc.codefix.d.ts.map +1 -0
  191. package/services/_namespaces/lpc.d.ts +30 -0
  192. package/services/_namespaces/lpc.d.ts.map +1 -0
  193. package/services/_namespaces/lpc.formatting.d.ts +7 -0
  194. package/services/_namespaces/lpc.formatting.d.ts.map +1 -0
  195. package/services/_namespaces/lpc.textChanges.d.ts +2 -0
  196. package/services/_namespaces/lpc.textChanges.d.ts.map +1 -0
  197. package/services/classifier2020.d.ts +2 -0
  198. package/services/classifier2020.d.ts.map +1 -0
  199. package/services/codefixes/helpers.d.ts +2 -0
  200. package/services/codefixes/helpers.d.ts.map +1 -0
  201. package/services/codefixes/importFixes.d.ts +2 -0
  202. package/services/codefixes/importFixes.d.ts.map +1 -0
  203. package/services/completions.d.ts +2 -0
  204. package/services/completions.d.ts.map +1 -0
  205. package/services/documentRegistry.d.ts +90 -0
  206. package/services/documentRegistry.d.ts.map +1 -0
  207. package/services/exportInfoMap.d.ts +5 -0
  208. package/services/exportInfoMap.d.ts.map +1 -0
  209. package/services/findAllReferences.d.ts +2 -0
  210. package/services/findAllReferences.d.ts.map +1 -0
  211. package/services/formatting/formatting.d.ts +2 -0
  212. package/services/formatting/formatting.d.ts.map +1 -0
  213. package/services/formatting/formattingContext.d.ts +2 -0
  214. package/services/formatting/formattingContext.d.ts.map +1 -0
  215. package/services/formatting/rule.d.ts +2 -0
  216. package/services/formatting/rule.d.ts.map +1 -0
  217. package/services/formatting/rules.d.ts +2 -0
  218. package/services/formatting/rules.d.ts.map +1 -0
  219. package/services/formatting/rulesMap.d.ts +2 -0
  220. package/services/formatting/rulesMap.d.ts.map +1 -0
  221. package/services/formatting/smartIndenter.d.ts +2 -0
  222. package/services/formatting/smartIndenter.d.ts.map +1 -0
  223. package/services/goToDefinition.d.ts +2 -0
  224. package/services/goToDefinition.d.ts.map +1 -0
  225. package/services/importTracker.d.ts +2 -0
  226. package/services/importTracker.d.ts.map +1 -0
  227. package/services/jsDoc.d.ts +2 -0
  228. package/services/jsDoc.d.ts.map +1 -0
  229. package/services/navigationBar.d.ts +2 -0
  230. package/services/navigationBar.d.ts.map +1 -0
  231. package/services/rename.d.ts +2 -0
  232. package/services/rename.d.ts.map +1 -0
  233. package/services/services.d.ts +54 -0
  234. package/services/services.d.ts.map +1 -0
  235. package/services/signatureHelp.d.ts +2 -0
  236. package/services/signatureHelp.d.ts.map +1 -0
  237. package/services/sourcemaps.d.ts +2 -0
  238. package/services/sourcemaps.d.ts.map +1 -0
  239. package/services/stringCompletions.d.ts +2 -0
  240. package/services/stringCompletions.d.ts.map +1 -0
  241. package/services/suggestionDiagnostics.d.ts +2 -0
  242. package/services/suggestionDiagnostics.d.ts.map +1 -0
  243. package/services/symbolDisplay.d.ts +2 -0
  244. package/services/symbolDisplay.d.ts.map +1 -0
  245. package/services/textChanges.d.ts +2 -0
  246. package/services/textChanges.d.ts.map +1 -0
  247. package/services/types.d.ts +901 -0
  248. package/services/types.d.ts.map +1 -0
  249. package/services/utilities.d.ts +3 -0
  250. package/services/utilities.d.ts.map +1 -0
  251. package/src/cli.js +58 -0
  252. package/src/cli.js.map +7 -0
  253. package/src/efuns/fluffos/arrays.h +205 -0
  254. package/src/efuns/fluffos/async.h +84 -0
  255. package/src/efuns/fluffos/buffers.h +80 -0
  256. package/src/efuns/fluffos/calls.h +275 -0
  257. package/src/efuns/fluffos/contrib.h +805 -0
  258. package/src/efuns/fluffos/db.h +125 -0
  259. package/src/efuns/fluffos/driver.h +107 -0
  260. package/src/efuns/fluffos/ed.h +48 -0
  261. package/src/efuns/fluffos/efuns.fluffos.h +75 -0
  262. package/src/efuns/fluffos/external.h +30 -0
  263. package/src/efuns/fluffos/filesystem.h +154 -0
  264. package/src/efuns/fluffos/floats.h +136 -0
  265. package/src/efuns/fluffos/functions.h +104 -0
  266. package/src/efuns/fluffos/general.h +548 -0
  267. package/src/efuns/fluffos/interactive.h +777 -0
  268. package/src/efuns/fluffos/internals.h +455 -0
  269. package/src/efuns/fluffos/lpc-config.json +10 -0
  270. package/src/efuns/fluffos/mappings.h +205 -0
  271. package/src/efuns/fluffos/misc.h +43 -0
  272. package/src/efuns/fluffos/mudlib.h +228 -0
  273. package/src/efuns/fluffos/numbers.h +41 -0
  274. package/src/efuns/fluffos/objects.h +365 -0
  275. package/src/efuns/fluffos/parsing.h +220 -0
  276. package/src/efuns/fluffos/pcre.h +75 -0
  277. package/src/efuns/fluffos/sockets.h +276 -0
  278. package/src/efuns/fluffos/strings.h +542 -0
  279. package/src/efuns/fluffos/system.h +408 -0
  280. package/src/efuns/fluffos/zh-cn/arrays.zh-cn.h +167 -0
  281. package/src/efuns/fluffos/zh-cn/async.zh-cn.h +81 -0
  282. package/src/efuns/fluffos/zh-cn/buffers.zh-cn.h +69 -0
  283. package/src/efuns/fluffos/zh-cn/calls.zh-cn.h +242 -0
  284. package/src/efuns/fluffos/zh-cn/contrib.zh-cn.h +767 -0
  285. package/src/efuns/fluffos/zh-cn/db.zh-cn.h +113 -0
  286. package/src/efuns/fluffos/zh-cn/ed.zh-cn.h +42 -0
  287. package/src/efuns/fluffos/zh-cn/efuns.fluffos.h +76 -0
  288. package/src/efuns/fluffos/zh-cn/external.zh-cn.h +25 -0
  289. package/src/efuns/fluffos/zh-cn/filesystem.zh-cn.h +140 -0
  290. package/src/efuns/fluffos/zh-cn/floats.zh-cn.h +129 -0
  291. package/src/efuns/fluffos/zh-cn/functions.zh-cn.h +87 -0
  292. package/src/efuns/fluffos/zh-cn/general.zh-cn.h +506 -0
  293. package/src/efuns/fluffos/zh-cn/interactive.zh-cn.h +659 -0
  294. package/src/efuns/fluffos/zh-cn/internals.zh-cn.h +356 -0
  295. package/src/efuns/fluffos/zh-cn/mappings.zh-cn.h +188 -0
  296. package/src/efuns/fluffos/zh-cn/misc.zh-cn.h +43 -0
  297. package/src/efuns/fluffos/zh-cn/mudlib.zh-cn.h +190 -0
  298. package/src/efuns/fluffos/zh-cn/numbers.zh-cn.h +36 -0
  299. package/src/efuns/fluffos/zh-cn/objects.zh-cn.h +280 -0
  300. package/src/efuns/fluffos/zh-cn/parsing.zh-cn.h +212 -0
  301. package/src/efuns/fluffos/zh-cn/pcre.zh-cn.h +67 -0
  302. package/src/efuns/fluffos/zh-cn/sockets.zh-cn.h +230 -0
  303. package/src/efuns/fluffos/zh-cn/strings.zh-cn.h +484 -0
  304. package/src/efuns/fluffos/zh-cn/system.zh-cn.h +366 -0
  305. package/src/efuns/ldmud/defines.h +69 -0
  306. package/src/efuns/ldmud/efun.h +10449 -0
  307. package/src/efuns/ldmud/efuns.ldmud.h +87 -0
  308. package/src/efuns/ldmud/lpc-config.json +9 -0
  309. package/src/efuns/ldmud/obsolete.h +2168 -0
  310. package/src/lpc.js +82486 -0
  311. package/src/lpc.js.map +6 -0
  312. package/src/server.js +129 -0
  313. package/src/server.js.map +7 -0
  314. package/types.d.ts +23 -0
  315. package/types.d.ts.map +1 -0
  316. package/utils.d.ts +21 -0
  317. package/utils.d.ts.map +1 -0
@@ -0,0 +1,113 @@
1
+ // db.h
2
+
3
+ /**
4
+ * db_status() - 返回包状态
5
+ *
6
+ * 返回描述当前数据库包状态的字符串。
7
+ *
8
+ */
9
+ string db_status( void );
10
+
11
+ /**
12
+ * db_rollback() - 回滚上一个事务
13
+ *
14
+ * 对于事务性数据库,这将回滚最后一组操作。
15
+ *
16
+ * 成功时返回1,否则返回0。
17
+ *
18
+ */
19
+ int db_rollback( int );
20
+
21
+ /**
22
+ * db_fetch() - 获取结果集
23
+ *
24
+ * 获取给定行的最后执行的SQL结果集,使用传递的数据库句柄。
25
+ *
26
+ * 成功时返回命名行的列数组,否则返回错误字符串。
27
+ *
28
+ * string *res;
29
+ * mixed rows;
30
+ * int dbconn, i;
31
+ *
32
+ * dbconn = db_connect("db.server", "db_mud");
33
+ * if(dbconn < 1)
34
+ * return 0;
35
+ * rows = db_exec(dbconn, "SELECT player_name, exp FROM t_player");
36
+ * if(!rows)
37
+ * write("没有返回行。");
38
+ * else
39
+ * if(stringp(rows)) /* 错误 *\/
40
+ * write(rows);
41
+ * else
42
+ * for(i = 1; i <= rows; i++)
43
+ * {
44
+ * res = db_fetch(dbconn, i);
45
+ * write(res[0]);
46
+ * write(res[1]);
47
+ * }
48
+ *
49
+ * db_close(dbconn);
50
+ *
51
+ */
52
+ mixed *db_fetch( int handle, int row );
53
+
54
+ /**
55
+ * db_exec() - 执行SQL语句
56
+ *
57
+ * 此函数将为给定的数据库句柄执行传递的SQL语句。
58
+ *
59
+ * 成功时返回结果集中行的数量,否则返回错误字符串。
60
+ *
61
+ */
62
+ mixed db_exec( int handle, string sql_query );
63
+
64
+ /**
65
+ * db_connect() - 关闭数据库连接
66
+ *
67
+ * 在给定主机上创建与数据库db的新连接。连接使用给定用户或编译时值作为登录ID。类型可以用于选择数据库服务器的类型。有效值取决于编译时设置,应通过mudlib中的相应头文件提供。
68
+ *
69
+ * 成功时返回新连接的句柄,否则返回0。
70
+ *
71
+ * 驱动程序将调用主对象的valid_database函数以检索此数据库的密码(字符串)或批准(正整数)。
72
+ *
73
+ * FlufFOS支持MYSQL、SQLITE3和PostgreSQL。
74
+ *
75
+ * 编译驱动程序时,需要传递-DPACKAGE_DB=ON和
76
+ * -DPACKAGE_DB_MYSQL=X或
77
+ * -DPACKAGE_DB_SQLITE=X或
78
+ * -DPACKAGE_DB_POSTGRESQL=X
79
+ * 同时还应传递-DPACKAGE_DB_DEFAULT_DB=X,该值应为上述其中一个。如果某个值为空字符串,则驱动程序对该数据库的支持将被禁用。
80
+ *
81
+ * 这里的X代表表示db_connect()中“类型”参数的整数。
82
+ *
83
+ * 驱动程序为lib提供以下预定义常量以供数据库类型使用。
84
+ *
85
+ * __USE_MYSQL__ 是-DPACKAGE_DB_MYSQL=<value>的值,默认值为1
86
+ * __USE_SQLITE3__ 是-DPACKAGE_DB_SQLITE=<value>的值,默认未定义。
87
+ * __USE_POSTGRE__ 是-DPACKAGE_DB_POSTGRESQL=<value>的值,默认未定义。
88
+ * __DEFAULT_DB__ 是-DPACKAGE_DB_DEFAULT_DB=<value>的值,默认值为1
89
+ *
90
+ */
91
+ int db_connect( string host, string db );
92
+ int db_connect( string host, string db, string user );
93
+ int db_connect( string host, string db, string user, int type );
94
+
95
+ /**
96
+ * db_commit() - 提交上一个事务
97
+ *
98
+ * 对于事务性数据库,这将提交最后一组操作。
99
+ *
100
+ * 成功时返回1,否则返回0。
101
+ *
102
+ */
103
+ int db_commit(int handle );
104
+
105
+ /**
106
+ * db_close() - 关闭数据库连接
107
+ *
108
+ * 关闭由给定句柄表示的数据库连接。
109
+ *
110
+ * 成功时返回1,否则返回0。
111
+ *
112
+ */
113
+ int db_close( int handle );
@@ -0,0 +1,42 @@
1
+ // ed.h
2
+
3
+ /**
4
+ * query_ed_mode() - 查询当前编辑会话的状态
5
+ *
6
+ * 找出当前对象的编辑会话状态(如果存在)。返回值为:
7
+ *
8
+ * 0 - 当前对象处于正常的编辑提示(':')
9
+ *
10
+ * -1 - 当前对象不在编辑状态
11
+ *
12
+ * -2 - 当前对象在帮助中处于中间的更多提示
13
+ *
14
+ * >0 - 当前对象处于处理某一行的提示。数字表示行号。
15
+ *
16
+ */
17
+ int query_ed_mode();
18
+
19
+ /**
20
+ * ed_start() - 开始一个编辑会话
21
+ *
22
+ * 本函数仅在未定义 __OLD_ED__ 时可用。
23
+ *
24
+ * 内部编辑器启动, optionally 加载 'file' 进行编辑。
25
+ * 返回结果输出。编辑会话保持活跃,可以进一步调用 ed_cmd() 发送命令。
26
+ *
27
+ * 如果 restricted 为1,则将禁用更改正在编辑的文件的命令。
28
+ *
29
+ * 每个对象一次只能有一个编辑会话处于活跃状态。
30
+ *
31
+ */
32
+ string ed_start(void|string file, void|int restricted);
33
+
34
+ /**
35
+ * ed_cmd() - 向编辑会话发送命令
36
+ *
37
+ * 本函数仅在未定义 __OLD_ED__ 时可用。
38
+ *
39
+ * 命令 'cmd' 被发送到活跃的编辑会话,返回相应的输出。
40
+ *
41
+ */
42
+ string ed_cmd(string cmd);
@@ -0,0 +1,76 @@
1
+ /** These objects must be here - they are used by the type checker for various non-primitive types */
2
+ object __LS__Array;
3
+ object __LS__Mapping;
4
+ object __LS__Object;
5
+ object __LS__Function;
6
+ object __LS__CallableFunction;
7
+ object __LS__NewableFunction;
8
+ object __LS__Int;
9
+ object __LS__ReadonlyArray;
10
+ object __LS__String;
11
+ object __LS__Closure;
12
+
13
+ // Driver Provided Defines
14
+ // These are made available to each sourcefile
15
+ #define MUDOS 1
16
+ #define FLUFFOS 1
17
+ #define __GET_CHAR_IS_BUFFERED__ 1
18
+ #define __MAX_READ_FILE_SIZE__ 1000000
19
+ #define __PORT__ 1
20
+ #define __VERSION__ "1.0"
21
+ #define __ARCH__ "x86_64"
22
+ #define __COMPILER__ "gcc"
23
+ #define __CXXFLAGS__ "linux"
24
+ #define MUD_NAME "FluffOS"
25
+
26
+ #define SIZEOFINT 4
27
+ #define MAX_INT 2147483647 /* the largest integer number */
28
+ #define MIN_INT -2147483648 /* the smallest integer number */
29
+ #define MAX_FLOAT 1.0e+20 /* the largest (positive) float number */
30
+ #define MIN_FLOAT 0.00000 /* the smallest (positive) float number */
31
+ #define __LARGEST_PRINTABLE_STRING__ 8192
32
+ #define __CACHE_STATS__ 1
33
+ #define __STRING_STATS__ 1
34
+ #define __ARRAY_STATS__ 1
35
+ #define __CLASS_STATS__ 1
36
+ #define __CALLOUT_HANDLES__ 1
37
+ #define __ARGUMENTS_IN_TRACEBACK__ 1
38
+ #define __LOCALS_IN_TRACEBACK__ 1
39
+ #define __DEBUG_MACRO__ 1
40
+
41
+ /*
42
+ * efun 定义
43
+ *
44
+ * FluffOS efun 文件中的文档注释是从 FluffOS 源代码中生成的。
45
+ * https://github.com/fluffos/fluffos/tree/master/docs
46
+ *
47
+ * 请参阅 https://github.com/fluffos/fluffos/blob/master/Copyright
48
+ * 获取许可证/版权信息。
49
+ */
50
+
51
+
52
+ #include "arrays.zh-cn.h"
53
+ #include "async.zh-cn.h"
54
+ #include "buffers.zh-cn.h"
55
+ #include "calls.zh-cn.h"
56
+ #include "contrib.zh-cn.h"
57
+ #include "db.zh-cn.h"
58
+ #include "ed.zh-cn.h"
59
+ #include "external.zh-cn.h"
60
+ #include "filesystem.zh-cn.h"
61
+ #include "floats.zh-cn.h"
62
+ #include "functions.zh-cn.h"
63
+ #include "general.zh-cn.h"
64
+ #include "interactive.zh-cn.h"
65
+ #include "internals.zh-cn.h"
66
+ #include "mappings.zh-cn.h"
67
+ #include "misc.zh-cn.h"
68
+ #include "mudlib.zh-cn.h"
69
+ #include "numbers.zh-cn.h"
70
+ #include "objects.zh-cn.h"
71
+ #include "parsing.zh-cn.h"
72
+ #include "pcre.zh-cn.h"
73
+ #include "sockets.zh-cn.h"
74
+ #include "strings.zh-cn.h"
75
+ #include "system.zh-cn.h"
76
+
@@ -0,0 +1,25 @@
1
+ // external.h
2
+
3
+ /**
4
+ * external_start() - 执行一个外部于驱动的shell命令
5
+ *
6
+ * 执行一个外部于驱动的shell命令。
7
+ *
8
+ * 您希望执行的命令必须添加到运行时配置中。
9
+ * 这些枚举的命令可以通过它们的编号作为第一个参数 `external_index` 调用 external_start。
10
+ *
11
+ * 此函数返回您应该记录的套接字号码,以便后续处理外部命令的结果。
12
+ *
13
+ * `args` - 传递给外部命令的参数数组。
14
+ * `read_call_back` - 当数据可用时,此函数将被调用,参数是包含该数据的字符串。
15
+ * `write_call_back` - 我不太确定会向外部命令写入什么,但这是一个必需的参数。
16
+ * `close_call_back` - 当套接字关闭时,将调用此函数。
17
+ *
18
+ * 这是一个使用本文件提供的信息的非常基本的示例。
19
+ *
20
+ */
21
+ int external_start(int external_index,
22
+ string *args,
23
+ string|function read_call_back,
24
+ string|function write_call_back,
25
+ string|function close_call_back);
@@ -0,0 +1,140 @@
1
+ // filesystem.h
2
+
3
+ /**
4
+ * write_file() - 将字符串写入文件
5
+ *
6
+ * 将字符串 'str' 追加到文件 'file' 中。返回 0 或 1 表示失败或成功。
7
+ * 如果 flag 为 1,write_file 将覆盖而不是追加。
8
+ *
9
+ */
10
+ varargs int write_file( string file, string str, int flag );
11
+
12
+ /**
13
+ * write_bytes() - 将连续的一系列字节写入文件
14
+ *
15
+ * 此函数将 'series' 中的字节写入由 'path' 指定的文件,从字节 # 'start' 开始。
16
+ * 如果失败则返回零 (0),否则返回 1。
17
+ *
18
+ */
19
+ int write_bytes( string path, int start, string series );
20
+
21
+ /**
22
+ * stat() - 返回有关文件或目录的信息
23
+ *
24
+ * 如果 str 是常规文件的名称(不是目录),则 stat() 将返回与该文件相关的信息数组。
25
+ * 数组的格式如下:
26
+ *
27
+ * ({ file_size, last_time_file_touched, time_object_loaded, time_file_created })
28
+ *
29
+ * 如果 stat 被调用的对象是目录(而不是常规文件),或者第二个参数为 -1,则 stat() 的行为与 get_dir(3) 相同。
30
+ *
31
+ * @param {string} str - 要获取信息的文件或目录
32
+ * @param {int} flag 默认值为 0,如果为 0,则返回信息数组;如果为 -1,则返回子数组数组
33
+ */
34
+ mixed stat( string str, int flag );
35
+
36
+ /**
37
+ * rmdir() - 删除一个目录
38
+ *
39
+ * 删除目录 'dir'。
40
+ *
41
+ */
42
+ int rmdir( string dir );
43
+
44
+ /**
45
+ * rm() - 删除一个文件
46
+ *
47
+ * 删除文件 'file'。返回 0 表示失败,1 表示成功。
48
+ *
49
+ */
50
+ int rm( string file );
51
+
52
+ /**
53
+ * rename() - 重命名一个文件
54
+ *
55
+ * 将文件 <src> 重命名为 <dst>。
56
+ *
57
+ */
58
+ int rename( string src, string dst );
59
+
60
+ /**
61
+ * read_file() - 将文件读入字符串
62
+ *
63
+ * 从文件中读取一行文本到字符串中。第二个和第三个参数是可选的。
64
+ * 如果仅指定第一个参数,将返回整个文件(作为字符串)。
65
+ *
66
+ * start_line 是您希望读取的行的行号。此例程将在您尝试超出文件末尾时返回 0,
67
+ * 或如果您尝试从非正行读取。
68
+ *
69
+ */
70
+ varargs string read_file( string file, int start_line, int number_of_lines );
71
+
72
+ /**
73
+ * read_bytes() - 将连续的一系列字节从文件读取到字符串中
74
+ *
75
+ * 此函数从名为 'path' 的文件的字节 # 'start' 开始读取 'length' 字节。
76
+ * 这些字节作为字符串返回。注意 (start + length) 不能超出文件末尾,否则
77
+ * read_bytes 将失败。如果省略第二个和第三个参数,将返回整个文件。
78
+ *
79
+ */
80
+ string read_bytes( string path, int start, int length );
81
+
82
+ /**
83
+ * mkdir() - 创建一个目录
84
+ *
85
+ * 创建指定的目录。如果成功返回 1,失败返回 0。
86
+ *
87
+ */
88
+ int mkdir( string directory );
89
+
90
+ /**
91
+ * link() - 将文件链接到另一个文件
92
+ *
93
+ * 创建一个链接 <reference> 到文件 <original>。
94
+ * 此 efun 会在主对象中调用 valid_link(original, reference)。
95
+ * 如果 valid_link() 返回 0,则 link() 调用失败。
96
+ * 如果 valid_link() 返回 1,则 link() 成功,前提是如果使用相同的参数调用 rename() 会成功。
97
+ *
98
+ * 注意:此 efun 创建硬链接,而不是符号链接。
99
+ * https://www.geeksforgeeks.org/difference-between-hard-link-and-soft-link/
100
+ *
101
+ */
102
+ void link( string original, string reference );
103
+
104
+ /**
105
+ * get_dir() - 返回与文件系统目录相关的信息
106
+ *
107
+ * 如果 'dir' 是文件名(支持 '*' 和 '?' 通配符),将返回一个字符串数组,
108
+ * 包含所有与该规范匹配的文件名。如果 'dir' 是目录名(以斜杠结束--即:"/u/",
109
+ * "/adm/",等),将返回该目录中的所有文件名。
110
+ *
111
+ * 如果以第二个参数 -1 调用,get_dir 将返回一个子数组数组,每个子数组的格式为:
112
+ *
113
+ * ({ filename, size_of_file, last_time_file_touched })
114
+ *
115
+ * 其中 filename 是一个字符串,last_time_file_touched 是一个整数,
116
+ * 表示从 1970 年 1 月 1 日以来的秒数(与 time(3) 格式相同)。
117
+ * size_of_file 元素是 file_size(3) 返回的相同值;文件的大小(以字节为单位),
118
+ * 或 -2 如果它是目录。
119
+ *
120
+ * @param {string} dir - 要获取信息的目录
121
+ * @param {int} flag 默认值为 0,如果为 0,则返回字符串数组;如果为 -1,则返回子数组数组
122
+ */
123
+ varargs mixed *get_dir(string dir, int flag);
124
+
125
+ /**
126
+ * file_size() - 获取文件的大小
127
+ *
128
+ * file_size() 返回文件 <file> 的大小(以字节为单位)。大小为 -1 表示 <file>
129
+ * 不存在,或您无法读取。大小为 -2 表示 <file> 是一个目录。
130
+ *
131
+ */
132
+ int file_size( string file );
133
+
134
+ /**
135
+ * cp() - 复制一个文件
136
+ *
137
+ * 将文件 <src> 复制到文件 <dst>。
138
+ *
139
+ */
140
+ int cp( string src, string dst );
@@ -0,0 +1,129 @@
1
+ // floats.h
2
+
3
+ /**
4
+ * to_int - 将浮点数或缓冲区转换为整数
5
+ *
6
+ * 如果 'x' 是浮点数,to_int() 调用返回与 'x' 等效的整数类型的数字
7
+ * (去掉小数部分,并向下取整)。
8
+ *
9
+ * 如果 'x' 是缓冲区,调用返回在缓冲区中嵌入的整数(以网络字节顺序)。
10
+ *
11
+ * 如果 'x' 是字符串,调用将尝试将字符串转换为整数。转换将从第一个字符开始,
12
+ * 在最后一个非数字的字符串表示数字之前停止并返回。如果转换不成功,
13
+ * 将返回 UNDEFINED。
14
+ *
15
+ */
16
+ int to_int( float | string | buffer x);
17
+
18
+ /**
19
+ * tan() - 返回浮点数的正切
20
+ *
21
+ * 返回其参数 'f' 的正切值,单位为弧度。
22
+ *
23
+ */
24
+ float tan( float f );
25
+
26
+ /**
27
+ * sqrt() - 返回浮点数的平方根
28
+ *
29
+ * sqrt() 返回其参数 'f' 的非负平方根。'f' 的值不能为负数。
30
+ *
31
+ */
32
+ float sqrt( float f );
33
+
34
+ /**
35
+ * sin() - 返回浮点数的正弦
36
+ *
37
+ * 返回其参数 'f' 的正弦值,单位为弧度。
38
+ *
39
+ */
40
+ float sin( float f );
41
+
42
+ /**
43
+ * round() - 四舍五入浮点数
44
+ *
45
+ * 返回 'f' 的四舍五入值,类型为浮点数。
46
+ *
47
+ */
48
+ float round( float f );
49
+
50
+ /**
51
+ * pow() - 计算浮点数的指数
52
+ *
53
+ * pow() 返回 x 的 y 次方。如果 x 为 0.0,则 y 必须为正数。如果 x 为负数,
54
+ * 则 y 必须为整数。
55
+ *
56
+ */
57
+ float pow( float x, float y );
58
+
59
+ /**
60
+ * log() - 返回浮点数的自然对数
61
+ *
62
+ * 返回其参数 'f' 的自然对数。'f' 必须是正数。
63
+ *
64
+ */
65
+ float log( float f );
66
+
67
+ /**
68
+ * floor() - 将浮点数向下舍入到最接近的整数
69
+ *
70
+ * 返回(作为浮点数)小于或等于 f 的最接近的整数。
71
+ *
72
+ */
73
+ float floor( float f );
74
+
75
+ /**
76
+ * floatp() - 确定给定变量是否为浮点数
77
+ *
78
+ * 如果 'arg' 是浮点数,则返回 1,否则返回 0。
79
+ *
80
+ */
81
+ int floatp( mixed arg );
82
+
83
+ /**
84
+ * exp() - 计算 e 的浮点数次方
85
+ *
86
+ * exp() 返回 e^f。
87
+ *
88
+ */
89
+ float exp( float f );
90
+
91
+ /**
92
+ * cos() - 返回浮点数的余弦
93
+ *
94
+ * 返回其参数 'f' 的余弦值,单位为弧度。
95
+ *
96
+ */
97
+ float cos( float f );
98
+
99
+ /**
100
+ * ceil() - 将浮点数向上舍入到最接近的整数
101
+ *
102
+ * 返回(作为浮点数)大于或等于 f 的最接近的整数。
103
+ *
104
+ */
105
+ float ceil( float f );
106
+
107
+ /**
108
+ * atan() - 返回浮点数的反正切
109
+ *
110
+ * 返回其参数 'f' 的反正切值,单位为弧度。
111
+ *
112
+ */
113
+ float atan( float f );
114
+
115
+ /**
116
+ * asin() - 返回浮点数的反正弦
117
+ *
118
+ * 返回其参数 'f' 的反正弦值,单位为弧度。
119
+ *
120
+ */
121
+ float asin( float f );
122
+
123
+ /**
124
+ * acos() - 返回浮点数的反余弦
125
+ *
126
+ * 返回其参数 'f' 的反余弦值,单位为弧度。
127
+ *
128
+ */
129
+ float acos( float f );
@@ -0,0 +1,87 @@
1
+ // functions.h
2
+
3
+ /**
4
+ * functionp() - 确定给定变量是否是函数指针,如果是,则返回其类型
5
+ * @param arg - 要检查的变量
6
+ * @returns {arg is function} 如果 arg 是函数指针,则返回 1,否则返回 0
7
+ *
8
+ * 如果 'arg' 是一个函数指针,则返回非零值,否则返回零 (0)。
9
+ * 函数指针是类型为 'function' 的变量,如文档中所述,例如:
10
+ * ```c
11
+ * f = (: obj, func :);
12
+ * ```
13
+ * 返回值使用在驱动程序包含文件 "include/function.h" 中给出的值来指示函数指针的类型。
14
+ *
15
+ * 函数指针类型 值
16
+ * --------------------- -----
17
+ * call_other FP_CALL_OTHER
18
+ * lfun FP_LOCAL
19
+ * efun FP_EFUN
20
+ * simul_efun FP_SIMUL
21
+ * functional FP_FUNCTIONAL
22
+ *
23
+ * 此外,在某些情况下,将添加以下值:
24
+ * FP_HAS_ARGUMENTS 提供了参数
25
+ * FP_OWNER_DESTED 创建者已被销毁
26
+ * FP_NOT_BINDABLE 不可重新绑定
27
+ *
28
+ * 最后一组值是位值,可以使用位运算进行测试。 值 FP_MASK 用于忽略位值并测试函数指针的基本类型。
29
+ *
30
+ * 示例:
31
+ *
32
+ * 检查一个函数变量是否是 efun 指针:
33
+ * ```c
34
+ * if ((functionp(f) & FP_MASK) == FP_EFUN) ...
35
+ * ```
36
+ * 检查它是否有参数:
37
+ * ```c
38
+ * if (functionp(f) & FP_HAS_ARGUMENTS) ...
39
+ * ```
40
+ */
41
+ int functionp( mixed arg );
42
+
43
+ /**
44
+ * evaluate() - 评估一个函数指针
45
+ *
46
+ * 如果 f 是一个函数,则使用其余参数调用 f。否则,返回 f。 evaluate(f, ...) 等同于 (*f)(...)。
47
+ *
48
+ */
49
+ mixed evaluate(mixed f... );
50
+
51
+ /**
52
+ * defer() - 在当前函数结束后执行函数
53
+ *
54
+ * 在当前函数结束时调用函数指针 *f(即使是由于运行时错误导致的)。
55
+ *
56
+ * 例如:
57
+ *
58
+ * void create()
59
+ * {
60
+ * ::create();
61
+ *
62
+ * defer( (: enable_commands :) );
63
+ * }
64
+ *
65
+ * defer() 函数的效果是它会导致 enable_commands() efun 在 create() 函数执行结束后被调用。传递给 defer() 的参数可以是任何函数类型。
66
+ *
67
+ */
68
+ void defer(function f);
69
+
70
+ /**
71
+ * bind() - 更改函数指针的所有者
72
+ *
73
+ * 返回一个与 f 完全相同的函数指针,但属于对象 'ob',而不是创建 f 的对象。 如果 'f' 的创建者已经被销毁,或者 f 是一个 efun 指针指向一个对 'this_object' 做某事的 efun,则很有用。
74
+ *
75
+ * 例如:
76
+ *
77
+ * void make_living(object ob) {
78
+ * function f;
79
+ *
80
+ * f = bind( (: enable_commands :), ob );
81
+ *
82
+ * evaluate(f); }
83
+ *
84
+ * 上述效果与 'ob' 自身评估 enable_commands() efun 的效果相同。 请注意,这涉及到安全风险,因为 bind() 允许您强制另一个对象运行一段代码。 为了防止这种情况,必须有一个有效的 valid_bind() 主应用程序返回 1,否则调用 bind() 将失败。
85
+ *
86
+ */
87
+ function bind(function f, object ob);