Mercurial Hosting > luan
annotate website/src/manual.html @ 1650:cc3b10a94612
rm push.sh
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 31 Mar 2022 14:13:48 -0600 |
parents | 0af6a9d6d12f |
children |
rev | line source |
---|---|
1216 | 1 <!doctype html> |
391
2f5cc9c2cbf0
replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents:
389
diff
changeset
|
2 <html> |
2f5cc9c2cbf0
replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents:
389
diff
changeset
|
3 <head> |
2f5cc9c2cbf0
replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents:
389
diff
changeset
|
4 <title>Luan Reference Manual</title> |
1521
d3e61cd2aca0
docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
1520
diff
changeset
|
5 <meta name="viewport" content="width=device-width, initial-scale=1"> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
6 <style> |
1326
29d6d7d79c41
website - use relative paths
Franklin Schmidt <fschmidt@gmail.com>
parents:
1325
diff
changeset
|
7 @import "site.css"; |
1645 | 8 |
9 p[keywords] { | |
10 font-family: monospace; | |
11 margin-left: 40px; | |
12 max-width: 700px; | |
13 } | |
14 p[keywords] span { | |
15 display: inline-block; | |
16 width: 100px; | |
17 } | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
18 </style> |
391
2f5cc9c2cbf0
replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents:
389
diff
changeset
|
19 </head> |
2f5cc9c2cbf0
replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents:
389
diff
changeset
|
20 <body> |
386
db23f654f87d
make all of website use luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
382
diff
changeset
|
21 |
1326
29d6d7d79c41
website - use relative paths
Franklin Schmidt <fschmidt@gmail.com>
parents:
1325
diff
changeset
|
22 <div small> |
29d6d7d79c41
website - use relative paths
Franklin Schmidt <fschmidt@gmail.com>
parents:
1325
diff
changeset
|
23 <a href=".">Luan</a> |
29d6d7d79c41
website - use relative paths
Franklin Schmidt <fschmidt@gmail.com>
parents:
1325
diff
changeset
|
24 / <a href="docs.html">Documentation</a> |
29d6d7d79c41
website - use relative paths
Franklin Schmidt <fschmidt@gmail.com>
parents:
1325
diff
changeset
|
25 </div> |
372 | 26 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
27 <h1><a href="manual.html">Luan Reference Manual</a></h1> |
372 | 28 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
29 <p small> |
372 | 30 Original copyright © 2015 Lua.org, PUC-Rio. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
31 Freely available under the terms of the |
372 | 32 <a href="http://www.lua.org/license.html">Lua license</a>. |
33 Modified for Luan. | |
34 </p> | |
35 | |
36 <hr/> | |
37 | |
38 <h2>Contents</h2> | |
39 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
40 <div contents><a href="#intro">Introduction</a></div> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
41 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
42 <div contents> |
373 | 43 <a href="#basic">Basic Concepts</a> |
44 <ul> | |
45 <li><a href="#types">Values and Types</a></li> | |
46 <li><a href="#env">Environments</a></li> | |
47 <li><a href="#error">Error Handling</a></li> | |
48 <li><a href="#meta">Metatables and Metamethods</a></li> | |
380 | 49 <li><a href="#gc">Garbage Collection</a></li> |
50 </ul> | |
51 </div> | |
52 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
53 <div contents> |
380 | 54 <a href="#lang">The Language</a> |
55 <ul> | |
56 <li><a href="#lex">Lexical Conventions</a></li> | |
57 <li><a href="#vars">Variables</a></li> | |
389 | 58 <li> |
59 <a href="#stmts">Statements</a> | |
60 <ul> | |
61 <li><a href="#blocks">Blocks</a></li> | |
395 | 62 <li><a href="#chunks">Chunks</a></li> |
63 <li><a href="#assignment">Assignment</a></li> | |
64 <li><a href="#control">Control Structures</a></li> | |
65 <li><a href="#for">For Statement</a></li> | |
1520 | 66 <li><a href="#try">Try Statement</a></li> |
395 | 67 <li><a href="#fn_stmt">Function Calls as Statements</a></li> |
68 <li><a href="#local_stmt">Local Declarations</a></li> | |
465 | 69 <li><a href="#template_stmt">Template Statements</a></li> |
395 | 70 </ul> |
71 </li> | |
72 <li> | |
73 <a href="#expressions">Expressions</a> | |
74 <ul> | |
75 <li><a href="#arithmetic">Arithmetic Operators</a></li> | |
396 | 76 <li><a href="#conversions">Coercions and Conversions</a></li> |
77 <li><a href="#relational">Relational Operators</a></li> | |
78 <li><a href="#logical_ops">Logical Operators</a></li> | |
79 <li><a href="#concatenation">Concatenation</a></li> | |
80 <li><a href="#length">The Length Operator</a></li> | |
81 <li><a href="#precedence">Precedence</a></li> | |
82 <li><a href="#constructors">Table Constructors</a></li> | |
417 | 83 <li><a href="#fn_calls">Function Calls</a></li> |
84 <li><a href="#fn_def">Function Definitions</a></li> | |
389 | 85 </ul> |
86 </li> | |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
87 <li><a href="#visibility">Visibility Rules</a></li> |
373 | 88 </ul> |
89 </div> | |
90 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
91 <div contents> |
468 | 92 <a href="#libs">Standard Libraries</a> |
93 <ul> | |
94 <li><a href="#default_lib">Default Environment</a></li> | |
470 | 95 <li><a href="#luan_lib">Basic Functions</a></li> |
476 | 96 <li><a href="#package_lib">Modules</a></li> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
97 <li><a href="#string_lib">String Manipulation</a></li> |
567 | 98 <li><a href="#binary_lib">Binary Manipulation</a></li> |
565
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
99 <li><a href="#table_lib">Table Manipulation</a></li> |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
100 <li><a href="#number_lib">Number Manipulation</a></li> |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
101 <li><a href="#math_lib">Mathematical Functions</a></li> |
468 | 102 </ul> |
103 </div> | |
104 | |
372 | 105 <hr/> |
106 | |
373 | 107 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
108 <h2 heading><a name="intro" href="#intro">Introduction</a></h2> |
372 | 109 |
110 <p>Luan is a high level programming language based on <a href="http://www.lua.org">Lua</a>. A great strength of Lua is its simplicity and Luan takes this even further, being even simpler than Lua. The goal is to provide a simple programming language for the casual programmer with as few concepts as possible so that one can quickly learn the language and then easily understand any code written in Luan.</p> | |
111 | |
112 <p>Luan is implemented in Java and is tightly coupled with Java. So it makes a great scripting language for Java programmers.</p> | |
113 | |
114 <p>Unlike Lua which is meant to be embedded, Luan is meant to be a full scripting language. This done not by adding feature to Luan, but rather by providing a complete set of libraries.</p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
115 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
116 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
117 <h2 heading><a name="basic" href="#basic">Basic Concepts</a></h2> |
373 | 118 |
119 <p>This section describes the basic concepts of the language.</p> | |
120 | |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
121 <h3 heading><a name="types" href="#types">Values and Types</a></h3> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
122 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
123 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
124 Luan is a <em>dynamically typed language</em>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
125 This means that |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
126 variables do not have types; only values do. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
127 There are no type definitions in the language. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
128 All values carry their own type. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
129 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
130 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
131 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
132 All values in Luan are <em>first-class values</em>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
133 This means that all values can be stored in variables, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
134 passed as arguments to other functions, and returned as results. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
135 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
136 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
137 <p> |
373 | 138 There are eight basic types in Luan: |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
139 <em>nil</em>, <em>boolean</em>, <em>number</em>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
140 <em>string</em>, <em>binary</em>, <em>function</em>, <em>java</em>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
141 and <em>table</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
142 <em>Nil</em> is the type of the value <b>nil</b>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
143 whose main property is to be different from any other value; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
144 it usually represents the absence of a useful value. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
145 <em>Nil</em> is implemented as the Java value <em>null</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
146 <em>Boolean</em> is the type of the values <b>false</b> and <b>true</b>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
147 <em>Boolean</em> is implemented as the Java class <em>Boolean</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
148 <em>Number</em> represents both |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
149 integer numbers and real (floating-point) numbers. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
150 <em>Number</em> is implemented as the Java class <em>Number</em>. Any Java subclass of <em>Number</em> is allowed and this is invisible to the Luan user. Operations on numbers follow the same rules of |
373 | 151 the underlying Java implementation. |
152 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
153 <em>String</em> is implemented as the Java class <em>String</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
154 <em>Binary</em> is implemented as the Java type <em>byte[]</em>. |
373 | 155 |
156 | |
157 <p> | |
158 Luan can call (and manipulate) functions written in Luan and | |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
159 functions written in Java (see <a href="#fn_calls">Function Calls</a>). |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
160 Both are represented by the type <em>function</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
161 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
162 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
163 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
164 The type <em>java</em> is provided to allow arbitrary Java objects to |
373 | 165 be stored in Luan variables. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
166 A <em>java</em> value is a Java object that isn't one of the standard Luan types. |
513
0dfc01d8d42d
rename type "userdata" to "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
512
diff
changeset
|
167 Java values have no predefined operations in Luan, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
168 except assignment and identity test. |
513
0dfc01d8d42d
rename type "userdata" to "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
512
diff
changeset
|
169 Java values are useful when Java access is enabled in Luan |
373 | 170 |
171 | |
172 | |
173 <p> | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
174 The type <em>table</em> implements associative arrays, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
175 that is, arrays that can be indexed not only with numbers, |
373 | 176 but with any Luan value except <b>nil</b>. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
177 Tables can be <em>heterogeneous</em>; |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
178 that is, they can contain values of all types (except <b>nil</b>). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
179 Any key with value <b>nil</b> is not considered part of the table. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
180 Conversely, any key that is not part of a table has |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
181 an associated value <b>nil</b>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
182 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
183 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
184 <p> |
373 | 185 Tables are the sole data-structuring mechanism in Luan; |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
186 they can be used to represent ordinary arrays, sequences, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
187 symbol tables, sets, records, graphs, trees, etc. |
373 | 188 To represent records, Luan uses the field name as an index. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
189 The language supports this representation by |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
190 providing <code>a.name</code> as syntactic sugar for <code>a["name"]</code>. |
373 | 191 There are several convenient ways to create tables in Luan |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
192 (see <a href="#constructors">Table Constructors</a>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
193 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
194 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
195 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
196 We use the term <em>sequence</em> to denote a table where |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
197 the set of all positive numeric keys is equal to {1..<em>n</em>} |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
198 for some non-negative integer <em>n</em>, |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
199 which is called the length of the sequence (see <a href="#length">The Length Operator</a>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
200 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
201 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
202 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
203 Like indices, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
204 the values of table fields can be of any type. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
205 In particular, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
206 because functions are first-class values, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
207 table fields can contain functions. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
208 Thus tables can also carry <em>methods</em> (see <a href="#fn_def">Function Definitions</a>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
209 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
210 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
211 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
212 The indexing of tables follows |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
213 the definition of raw equality in the language. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
214 The expressions <code>a[i]</code> and <code>a[j]</code> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
215 denote the same table element |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
216 if and only if <code>i</code> and <code>j</code> are raw equal |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
217 (that is, equal without metamethods). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
218 In particular, floats with integral values |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
219 are equal to their respective integers |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
220 (e.g., <code>1.0 == 1</code>). |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
221 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
222 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
223 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
224 Luan values are <em>objects</em>: |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
225 variables do not actually <em>contain</em> values, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
226 only <em>references</em> to them. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
227 Assignment, parameter passing, and function returns |
373 | 228 always manipulate references to values; |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
229 these operations do not imply any kind of copy. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
230 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
231 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
232 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
233 The library function <a href="#Luan.type"><code>Luan.type</code></a> returns a string describing the type |
478 | 234 of a given value. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
235 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
236 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
237 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
238 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
239 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
240 <h3 heading><a name="env" href="#env">Environments</a></h3> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
241 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
242 <p> |
1353
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1342
diff
changeset
|
243 The environment of a chunk starts with only one local variable: <code><a href="#require">require</a></code>. This function is used to load and access libraries and other modules. All other variables must be added to the environment using <a href="http://localhost:8080/manual.html#local_stmt">local declarations</a>. |
512
d96944467ffc
update documentation for luan changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
505
diff
changeset
|
244 |
d96944467ffc
update documentation for luan changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
505
diff
changeset
|
245 <p> |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
246 As will be discussed in <a href="#vars">Variables</a> and <a href=#assignment">Assignment</a>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
247 any reference to a free name |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
248 (that is, a name not bound to any declaration) <code>var</code> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
249 can be syntactically translated to <code>_ENV.var</code> if <code>_ENV</code> is defined. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
250 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
251 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
252 <h3 heading><a name="error" href="#error">Error Handling</a></h3> |
373 | 253 |
254 <p> | |
255 Luan code can explicitly generate an error by calling the | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
256 <a href="#Luan.error"><code>error</code></a> function. |
373 | 257 If you need to catch errors in Luan, |
1520 | 258 you can use the <a href="#try">Try Statement</code></a>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
259 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
260 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
261 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
262 Whenever there is an error, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
263 an <em>error table</em> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
264 is propagated with information about the error. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
265 See <a href="#Luan.new_error"><code>Luan.new_error</code></a>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
266 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
267 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
268 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
269 <h3 heading><a name="meta" href="#meta">Metatables and Metamethods</a></h3> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
270 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
271 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
272 Every table in Luan can have a <em>metatable</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
273 This <em>metatable</em> is an ordinary Luan table |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
274 that defines the behavior of the original value |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
275 under certain special operations. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
276 You can change several aspects of the behavior |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
277 of operations over a value by setting specific fields in its metatable. |
373 | 278 For instance, when a table is the operand of an addition, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
279 Luan checks for a function in the field "<code>__add</code>" of the table's metatable. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
280 If it finds one, |
373 | 281 Luan calls this function to perform the addition. |
282 | |
283 | |
284 <p> | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
285 The keys in a metatable are derived from the <em>event</em> names; |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
286 the corresponding values are called <ii>metamethods</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
287 In the previous example, the event is <code>"add"</code> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
288 and the metamethod is the function that performs the addition. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
289 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
290 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
291 <p> |
373 | 292 You can query the metatable of any table |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
293 using the <a href="#Luan.get_metatable"><code>get_metatable</code></a> function. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
294 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
295 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
296 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
297 You can replace the metatable of tables |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
298 using the <a href="#Luan.set_metatable"><code>set_metatable</code></a> function. |
373 | 299 |
300 | |
301 <p> | |
302 A metatable controls how a table behaves in | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
303 arithmetic operations, bitwise operations, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
304 order comparisons, concatenation, length operation, calls, and indexing. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
305 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
306 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
307 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
308 A detailed list of events controlled by metatables is given next. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
309 Each operation is identified by its corresponding event name. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
310 The key for each event is a string with its name prefixed by |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
311 two underscores, '<code>__</code>'; |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
312 for instance, the key for operation "add" is the |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
313 string "<code>__add</code>". |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
314 Note that queries for metamethods are always raw; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
315 the access to a metamethod does not invoke other metamethods. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
316 You can emulate how Luan queries a metamethod for an object <code>obj</code> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
317 with the following code: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
318 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
319 <pre> |
373 | 320 raw_get(get_metatable(obj) or {}, "__" .. event_name) |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
321 </pre> |
373 | 322 |
323 <p> | |
324 Here are the events: | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
325 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
326 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
327 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
328 <li><p><b>"add": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
329 the <code>+</code> operation. |
373 | 330 |
331 If any operand for an addition is a table, | |
332 Luan will try to call a metamethod. | |
333 First, Luan will check the first operand (even if it is valid). | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
334 If that operand does not define a metamethod for the "<code>__add</code>" event, |
373 | 335 then Luan will check the second operand. |
336 If Luan can find a metamethod, | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
337 it calls the metamethod with the two operands as arguments, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
338 and the result of the call |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
339 (adjusted to one value) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
340 is the result of the operation. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
341 Otherwise, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
342 it raises an error. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
343 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
344 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
345 <li><p><b>"sub": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
346 the <code>-</code> operation. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
347 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
348 Behavior similar to the "add" operation. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
349 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
350 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
351 <li><p><b>"mul": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
352 the <code>*</code> operation. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
353 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
354 Behavior similar to the "add" operation. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
355 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
356 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
357 <li><p><b>"div": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
358 the <code>/</code> operation. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
359 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
360 Behavior similar to the "add" operation. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
361 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
362 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
363 <li><p><b>"mod": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
364 the <code>%</code> operation. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
365 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
366 Behavior similar to the "add" operation. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
367 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
368 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
369 <li><p><b>"pow": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
370 the <code>^</code> (exponentiation) operation. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
371 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
372 Behavior similar to the "add" operation. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
373 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
374 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
375 <li><p><b>"unm": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
376 the <code>-</code> (unary minus) operation. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
377 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
378 Behavior similar to the "add" operation. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
379 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
380 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
381 <li><p><b>"concat": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
382 the <code>..</code> (concatenation) operation. |
373 | 383 |
384 Behavior similar to the "add" operation. | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
385 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
386 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
387 <li><p><b>"len": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
388 the <code>#</code> (length) operation. |
373 | 389 |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
390 If there is a metamethod, |
373 | 391 Luan calls it with the object as argument, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
392 and the result of the call |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
393 (always adjusted to one value) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
394 is the result of the operation. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
395 If there is no metamethod but the object is a table, |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
396 then Luan uses the table length operation (see <a href="#length">The Length Operator</a>). |
373 | 397 Otherwise, Luan raises an error. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
398 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
399 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
400 <li><p><b>"eq": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
401 the <code>==</code> (equal) operation. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
402 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
403 Behavior similar to the "add" operation, |
373 | 404 except that Luan will try a metamethod only when the values |
405 being compared are both tables | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
406 and they are not primitively equal. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
407 The result of the call is always converted to a boolean. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
408 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
409 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
410 <li><p><b>"lt": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
411 the <code><</code> (less than) operation. |
373 | 412 |
413 Behavior similar to the "add" operation. | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
414 The result of the call is always converted to a boolean. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
415 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
416 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
417 <li><p><b>"le": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
418 the <code><=</code> (less equal) operation. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
419 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
420 Unlike other operations, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
421 The less-equal operation can use two different events. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
422 First, Luan looks for the "<code>__le</code>" metamethod in both operands, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
423 like in the "lt" operation. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
424 If it cannot find such a metamethod, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
425 then it will try the "<code>__lt</code>" event, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
426 assuming that <code>a <= b</code> is equivalent to <code>not (b < a)</code>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
427 As with the other comparison operators, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
428 the result is always a boolean. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
429 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
430 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
431 <li><p><b>"index": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
432 The indexing access <code>table[key]</code>. |
373 | 433 |
434 This event happens | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
435 when <code>key</code> is not present in <code>table</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
436 The metamethod is looked up in <code>table</code>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
437 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
438 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
439 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
440 Despite the name, |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
441 the metamethod for this event can be any type. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
442 If it is a function, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
443 it is called with <code>table</code> and <code>key</code> as arguments. |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
444 Otherwise |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
445 the final result is the result of indexing this metamethod object with <code>key</code>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
446 (This indexing is regular, not raw, |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
447 and therefore can trigger another metamethod if the metamethod object is a table.) |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
448 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
449 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
450 <li><p><b>"new_index": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
451 The indexing assignment <code>table[key] = value</code>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
452 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
453 Like the index event, |
373 | 454 this event happens when |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
455 when <code>key</code> is not present in <code>table</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
456 The metamethod is looked up in <code>table</code>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
457 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
458 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
459 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
460 Like with indexing, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
461 the metamethod for this event can be either a function or a table. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
462 If it is a function, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
463 it is called with <code>table</code>, <code>key</code>, and <code>value</code> as arguments. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
464 If it is a table, |
373 | 465 Luan does an indexing assignment to this table with the same key and value. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
466 (This assignment is regular, not raw, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
467 and therefore can trigger another metamethod.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
468 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
469 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
470 <p> |
428
df95199ca4c0
rename __newindex to __new_index
Franklin Schmidt <fschmidt@gmail.com>
parents:
418
diff
changeset
|
471 Whenever there is a "new_index" metamethod, |
373 | 472 Luan does not perform the primitive assignment. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
473 (If necessary, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
474 the metamethod itself can call <a href="#Luan.raw_set"><code>raw_set</code></a> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
475 to do the assignment.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
476 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
477 |
1272 | 478 <li><p><b>"gc":</b> |
479 This is when a table is garbage collected. When the table's <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#finalize()">finalize</a> method is called by the Java garbage collector, if there is a "<code>__gc</code>" metamethod then it is called with the table as a parameter. | |
480 | |
481 </li> | |
482 | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
483 </ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
484 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
485 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
486 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
487 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
488 <h3 heading><a name="gc" href="#gc">Garbage Collection</a></h3> |
380 | 489 |
490 <p> | |
491 Luan uses Java's garbage collection. | |
492 | |
493 | |
494 | |
495 | |
496 | |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
497 <h2 heading><a name="lang" href="#lang">The Language</a></h2> |
380 | 498 |
499 <p> | |
500 This section describes the lexis, the syntax, and the semantics of Luan. | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
501 In other words, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
502 this section describes |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
503 which tokens are valid, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
504 how they can be combined, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
505 and what their combinations mean. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
506 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
507 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
508 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
509 Language constructs will be explained using the usual extended BNF notation, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
510 in which |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
511 {<em>a</em>} means 0 or more <em>a</em>'s, and |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
512 [<em>a</em>] means an optional <em>a</em>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
513 Non-terminals are shown like non-terminal, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
514 keywords are shown like <b>kword</b>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
515 and other terminal symbols are shown like ‘<b>=</b>’. |
380 | 516 The complete syntax of Luan can be found in <a href="#9">§9</a> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
517 at the end of this manual. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
518 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
519 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
520 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
521 <h3 heading><a name="lex" href="#lex">Lexical Conventions</a></h3> |
380 | 522 |
523 <p> | |
524 Luan ignores spaces and comments | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
525 between lexical elements (tokens), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
526 except as delimiters between names and keywords. |
685 | 527 Luan considers the end of a line to be the end of a statement. This catches errors and encourages readability. If you want to continue a statement on another line, you can use a backslash followed by a newline which will be treated as white space. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
528 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
529 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
530 <em>Names</em> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
531 (also called <em>identifiers</em>) |
380 | 532 in Luan can be any string of letters, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
533 digits, and underscores, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
534 not beginning with a digit. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
535 Identifiers are used to name variables, table fields, and labels. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
536 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
537 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
538 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
539 The following <em>keywords</em> are reserved |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
540 and cannot be used as names: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
541 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
542 |
1645 | 543 <p keywords> |
544 <span>and</span> | |
545 <span>break</span> | |
546 <span>catch</span> | |
547 <span>continue</span> | |
548 <span>do</span> | |
549 <span>else</span> | |
550 <span>elseif</span> | |
551 <span>end_do</span> | |
552 <span>end_for</span> | |
553 <span>end_function</span> | |
554 <span>end_if</span> | |
555 <span>end_try</span> | |
556 <span>end_while</span> | |
557 <span>false</span> | |
558 <span>finally</span> | |
559 <span>for</span> | |
560 <span>function</span> | |
561 <span>if</span> | |
562 <span>in</span> | |
563 <span>local</span> | |
564 <span>nil</span> | |
565 <span>not</span> | |
566 <span>or</span> | |
567 <span>repeat</span> | |
568 <span>return</span> | |
569 <span>then</span> | |
570 <span>true</span> | |
571 <span>try</span> | |
572 <span>until</span> | |
573 <span>while</span> | |
574 </p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
575 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
576 <p> |
380 | 577 Luan is a case-sensitive language: |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
578 <code>and</code> is a reserved word, but <code>And</code> and <code>AND</code> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
579 are two different, valid names. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
580 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
581 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
582 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
583 The following strings denote other tokens: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
584 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
585 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
586 + - * / % ^ # |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
587 & ~ | << >> // |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
588 == ~= <= >= < > = |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
589 ( ) { } [ ] :: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
590 ; : , . .. ... |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
591 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
592 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
593 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
594 <em>Literal strings</em> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
595 can be delimited by matching single or double quotes, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
596 and can contain the following C-like escape sequences: |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
597 '<code>\a</code>' (bell), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
598 '<code>\b</code>' (backspace), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
599 '<code>\f</code>' (form feed), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
600 '<code>\n</code>' (newline), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
601 '<code>\r</code>' (carriage return), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
602 '<code>\t</code>' (horizontal tab), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
603 '<code>\v</code>' (vertical tab), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
604 '<code>\\</code>' (backslash), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
605 '<code>\"</code>' (quotation mark [double quote]), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
606 and '<code>\'</code>' (apostrophe [single quote]). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
607 A backslash followed by a real newline |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
608 results in a newline in the string. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
609 The escape sequence '<code>\z</code>' skips the following span |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
610 of white-space characters, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
611 including line breaks; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
612 it is particularly useful to break and indent a long literal string |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
613 into multiple lines without adding the newlines and spaces |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
614 into the string contents. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
615 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
616 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
617 <p> |
380 | 618 Luan can specify any character in a literal string by its numerical value. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
619 This can be done |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
620 with the escape sequence <code>\x<em>XX</em></code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
621 where <em>XX</em> is a sequence of exactly two hexadecimal digits, |
793 | 622 or with the escape sequence <code>\u<em>XXXX</em></code>, |
623 where <em>XXXX</em> is a sequence of exactly four hexadecimal digits, | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
624 or with the escape sequence <code>\<em>ddd</em></code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
625 where <em>ddd</em> is a sequence of up to three decimal digits. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
626 (Note that if a decimal escape sequence is to be followed by a digit, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
627 it must be expressed using exactly three digits.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
628 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
629 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
630 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
631 Literal strings can also be defined using a long format |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
632 enclosed by <em>long brackets</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
633 We define an <em>opening long bracket of level <em>n</em></em> as an opening |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
634 square bracket followed by <em>n</em> equal signs followed by another |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
635 opening square bracket. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
636 So, an opening long bracket of level 0 is written as <code>[[</code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
637 an opening long bracket of level 1 is written as <code>[=[</code>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
638 and so on. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
639 A <em>closing long bracket</em> is defined similarly; |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
640 for instance, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
641 a closing long bracket of level 4 is written as <code>]====]</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
642 A <em>long literal</em> starts with an opening long bracket of any level and |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
643 ends at the first closing long bracket of the same level. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
644 It can contain any text except a closing bracket of the same level. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
645 Literals in this bracketed form can run for several lines, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
646 do not interpret any escape sequences, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
647 and ignore long brackets of any other level. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
648 Any kind of end-of-line sequence |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
649 (carriage return, newline, carriage return followed by newline, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
650 or newline followed by carriage return) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
651 is converted to a simple newline. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
652 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
653 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
654 <p> |
380 | 655 Any character in a literal string not |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
656 explicitly affected by the previous rules represents itself. |
380 | 657 However, Luan opens files for parsing in text mode, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
658 and the system file functions may have problems with |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
659 some control characters. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
660 So, it is safer to represent |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
661 non-text data as a quoted literal with |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
662 explicit escape sequences for non-text characters. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
663 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
664 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
665 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
666 For convenience, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
667 when the opening long bracket is immediately followed by a newline, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
668 the newline is not included in the string. |
380 | 669 As an example |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
670 the five literal strings below denote the same string: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
671 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
672 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
673 a = 'alo\n123"' |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
674 a = "alo\n123\"" |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
675 a = '\97lo\10\04923"' |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
676 a = [[alo |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
677 123"]] |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
678 a = [==[ |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
679 alo |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
680 123"]==] |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
681 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
682 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
683 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
684 A <em>numerical constant</em> (or <em>numeral</em>) |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
685 can be written with an optional fractional part |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
686 and an optional decimal exponent, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
687 marked by a letter '<code>e</code>' or '<code>E</code>'. |
380 | 688 Luan also accepts hexadecimal constants, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
689 which start with <code>0x</code> or <code>0X</code>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
690 Hexadecimal constants also accept an optional fractional part |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
691 plus an optional binary exponent, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
692 marked by a letter '<code>p</code>' or '<code>P</code>'. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
693 A numeric constant with a fractional dot or an exponent |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
694 denotes a float; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
695 otherwise it denotes an integer. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
696 Examples of valid integer constants are |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
697 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
698 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
699 3 345 0xff 0xBEBADA |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
700 </pre> |
382 | 701 |
702 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
703 Examples of valid float constants are |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
704 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
705 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
706 3.0 3.1416 314.16e-2 0.31416E1 34e1 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
707 0x0.1E 0xA23p-4 0X1.921FB54442D18P+1 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
708 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
709 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
710 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
711 A <em>comment</em> starts with a double hyphen (<code>--</code>) |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
712 anywhere outside a string. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
713 If the text immediately after <code>--</code> is not an opening long bracket, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
714 the comment is a <em>short comment</em>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
715 which runs until the end of the line. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
716 Otherwise, it is a <em>long comment</em>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
717 which runs until the corresponding closing long bracket. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
718 Long comments are frequently used to disable code temporarily. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
719 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
720 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
721 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
722 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
723 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
724 <h3 heading><a name="vars" href="#vars">Variables</a></h3> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
725 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
726 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
727 Variables are places that store values. |
380 | 728 There are three kinds of variables in Luan: |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
729 global variables, local variables, and table fields. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
730 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
731 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
732 A single name can denote a global variable or a local variable |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
733 (or a function's formal parameter, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
734 which is a particular kind of local variable): |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
735 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
736 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
737 var ::= Name |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
738 </pre> |
382 | 739 |
740 <p> | |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
741 Name denotes identifiers, as defined in <a href="#lex">Lexical Conventions</a>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
742 |
512
d96944467ffc
update documentation for luan changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
505
diff
changeset
|
743 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
744 Local variables are <em>lexically scoped</em>: |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
745 local variables can be freely accessed by functions |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
746 defined inside their scope (see <a href="#visibility">Visibility Rules</a>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
747 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
748 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
749 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
750 Before the first assignment to a variable, its value is <b>nil</b>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
751 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
752 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
753 Square brackets are used to index a table: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
754 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
755 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
756 var ::= prefixexp ‘<b>[</b>’ exp ‘<b>]</b>’ |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
757 </pre> |
382 | 758 |
759 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
760 The meaning of accesses to table fields can be changed via metatables. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
761 An access to an indexed variable <code>t[i]</code> is equivalent to |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
762 a call <code>gettable_event(t,i)</code>. |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
763 (See <a href="#meta">Metatables and Metamethods</a> for a complete description of the |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
764 <code>gettable_event</code> function. |
380 | 765 This function is not defined or callable in Luan. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
766 We use it here only for explanatory purposes.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
767 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
768 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
769 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
770 The syntax <code>var.Name</code> is just syntactic sugar for |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
771 <code>var["Name"]</code>: |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
772 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
773 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
774 var ::= prefixexp ‘<b>.</b>’ Name |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
775 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
776 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
777 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
778 Global variables are not available by default. To enable global variable, you must define <code>_ENV</code> as a local variable whose value is a table. If <code>_ENV</code> is not defined, then an unrecognized variable name will produce a compile error. If <code>_ENV</code> is defined then an access to an unrecognized variable name will be consider a global variable. So then an acces to global variable <code>x</code> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
779 is equivalent to <code>_ENV.x</code>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
780 Due to the way that chunks are compiled, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
781 <code>_ENV</code> is never a global name (see <a href="#env">Environments</a>). |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
782 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
783 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
784 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
785 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
786 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
787 <h3 heading><a name="stmts" href="#stmts">Statements</a></h3> |
389 | 788 |
789 <p> | |
790 Luan supports an almost conventional set of statements, | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
791 similar to those in Pascal or C. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
792 This set includes |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
793 assignments, control structures, function calls, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
794 and variable declarations. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
795 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
796 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
797 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
798 <h4 heading><a name="blocks" href="#blocks">Blocks</a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
799 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
800 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
801 A block is a list of statements, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
802 which are executed sequentially: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
803 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
804 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
805 block ::= {stat} |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
806 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
807 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
808 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
809 Luan has <em>empty statements</em> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
810 that allow you to separate statements with semicolons, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
811 start a block with a semicolon |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
812 or write two semicolons in sequence: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
813 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
814 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
815 stat ::= ‘<b>;</b>’ |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
816 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
817 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
818 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
819 A block can be explicitly delimited to produce a single statement: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
820 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
821 <pre> |
1092 | 822 stat ::= <b>do</b> block end_do |
823 end_do ::= <b>end_do</b> | <b>end</b> | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
824 </pre> |
389 | 825 |
826 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
827 Explicit blocks are useful |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
828 to control the scope of variable declarations. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
829 Explicit blocks are also sometimes used to |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
830 add a <b>return</b> statement in the middle |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
831 of another block (see <a href="#control">Control Structures</a>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
832 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
833 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
834 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
835 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
836 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
837 <h4 heading><a name="chunks" href="#chunks">Chunks</a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
838 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
839 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
840 The unit of compilation of Luan is called a <em>chunk</em>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
841 Syntactically, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
842 a chunk is simply a block: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
843 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
844 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
845 chunk ::= block |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
846 </pre> |
395 | 847 |
848 <p> | |
849 Luan handles a chunk as the body of an anonymous function | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
850 with a variable number of arguments |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
851 (see <a href="#fn_def">Function Definitions</a>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
852 As such, chunks can define local variables, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
853 receive arguments, and return values. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
854 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
855 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
856 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
857 A chunk can be stored in a file or in a string inside the host program. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
858 To execute a chunk, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
859 Luan first <em>loads</em> it, |
395 | 860 compiling the chunk's code, |
861 and then Luan executes the compiled code. | |
862 | |
863 | |
864 | |
865 | |
866 | |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
867 <h4 heading><a name="assignment" href="#assignment">Assignment</a></h4> |
395 | 868 |
869 <p> | |
870 Luan allows multiple assignments. | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
871 Therefore, the syntax for assignment |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
872 defines a list of variables on the left side |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
873 and a list of expressions on the right side. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
874 The elements in both lists are separated by commas: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
875 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
876 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
877 stat ::= varlist ‘<b>=</b>’ explist |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
878 varlist ::= var {‘<b>,</b>’ var} |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
879 explist ::= exp {‘<b>,</b>’ exp} |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
880 </pre> |
395 | 881 |
882 <p> | |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
883 Expressions are discussed in <a href="#expressions">Expressions</a>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
884 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
885 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
886 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
887 Before the assignment, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
888 the list of values is <em>adjusted</em> to the length of |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
889 the list of variables. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
890 If there are more values than needed, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
891 the excess values are thrown away. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
892 If there are fewer values than needed, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
893 the list is extended with as many <b>nil</b>'s as needed. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
894 If the list of expressions ends with a function call, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
895 then all values returned by that call enter the list of values, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
896 before the adjustment |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
897 (except when the call is enclosed in parentheses; see <a href="#expressions">Expressions</a>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
898 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
899 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
900 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
901 The assignment statement first evaluates all its expressions |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
902 and only then the assignments are performed. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
903 Thus the code |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
904 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
905 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
906 i = 3 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
907 i, a[i] = i+1, 20 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
908 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
909 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
910 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
911 sets <code>a[3]</code> to 20, without affecting <code>a[4]</code> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
912 because the <code>i</code> in <code>a[i]</code> is evaluated (to 3) |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
913 before it is assigned 4. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
914 Similarly, the line |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
915 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
916 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
917 x, y = y, x |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
918 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
919 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
920 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
921 exchanges the values of <code>x</code> and <code>y</code>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
922 and |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
923 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
924 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
925 x, y, z = y, z, x |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
926 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
927 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
928 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
929 cyclically permutes the values of <code>x</code>, <code>y</code>, and <code>z</code>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
930 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
931 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
932 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
933 The meaning of assignments to global variables |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
934 and table fields can be changed via metatables. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
935 An assignment to an indexed variable <code>t[i] = val</code> is equivalent to |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
936 <code>settable_event(t,i,val)</code>. |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
937 (See <a href="#meta">Metatables and Metamethods</a> for a complete description of the |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
938 <code>settable_event</code> function. |
395 | 939 This function is not defined or callable in Luan. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
940 We use it here only for explanatory purposes.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
941 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
942 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
943 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
944 An assignment to a global name <code>x = val</code> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
945 is equivalent to the assignment |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
946 <code>_ENV.x = val</code> (see <a href="#env">Environments</a>). |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
947 Global names are only available when <code>_ENV</code> is defined. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
948 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
949 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
950 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
951 <h4 heading><a name="control" href="#control">Control Structures</a></h4> |
395 | 952 |
953 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
954 The control structures |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
955 <b>if</b>, <b>while</b>, and <b>repeat</b> have the usual meaning and |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
956 familiar syntax: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
957 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
958 <pre> |
1092 | 959 stat ::= <b>while</b> exp <b>do</b> block end_while |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
960 stat ::= <b>repeat</b> block <b>until</b> exp |
1092 | 961 stat ::= <b>if</b> exp <b>then</b> block {<b>elseif</b> exp <b>then</b> block} [<b>else</b> block] end_if |
962 end_while ::= <b>end_while</b> | <b>end</b> | |
963 end_if ::= <b>end_if</b> | <b>end</b> | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
964 </pre> |
395 | 965 |
966 <p> | |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
967 Luan also has a <b>for</b> statement (see <a href="#for">For Statement</a>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
968 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
969 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
970 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
971 The condition expression of a |
395 | 972 control structure must be a boolean. |
973 Any other value type will produce an error. | |
974 This helps catch errors and makes code more readable. | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
975 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
976 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
977 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
978 In the <b>repeat</b>–<b>until</b> loop, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
979 the inner block does not end at the <b>until</b> keyword, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
980 but only after the condition. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
981 So, the condition can refer to local variables |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
982 declared inside the loop block. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
983 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
984 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
985 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
986 The <b>break</b> statement terminates the execution of a |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
987 <b>while</b>, <b>repeat</b>, or <b>for</b> loop, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
988 skipping to the next statement after the loop: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
989 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
990 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
991 stat ::= <b>break</b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
992 </pre> |
395 | 993 |
994 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
995 A <b>break</b> ends the innermost enclosing loop. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
996 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
997 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
998 <p> |
1645 | 999 The <b>continue</b> statement jumps to the beginning of a |
1000 <b>while</b>, <b>repeat</b>, or <b>for</b> loop for next iteration, | |
1001 skipping the execution of statements inside the body of loop for the current iteration: | |
1002 | |
1003 <pre> | |
1004 stat ::= <b>continue</b> | |
1005 </pre> | |
1006 | |
1007 | |
1008 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1009 The <b>return</b> statement is used to return values |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1010 from a function or a chunk |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1011 (which is an anonymous function). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1012 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1013 Functions can return more than one value, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1014 so the syntax for the <b>return</b> statement is |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1015 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1016 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1017 stat ::= <b>return</b> [explist] [‘<b>;</b>’] |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1018 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1019 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1020 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1021 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1022 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1023 <h4 heading><a name="for" href="#for">For Statement</a></h4> |
395 | 1024 |
1025 <p> | |
1026 The <b>for</b> statement works over functions, | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1027 called <em>iterators</em>. |
395 | 1028 On each iteration, the iterator function is called to produce a new value, |
1029 stopping when this new value is <b>nil</b>. | |
1030 The <b>for</b> loop has the following syntax: | |
1031 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1032 <pre> |
1092 | 1033 stat ::= <b>for</b> namelist <b>in</b> exp <b>do</b> block end_for |
395 | 1034 namelist ::= Name {‘<b>,</b>’ Name} |
1092 | 1035 end_for ::= <b>end_for</b> | <b>end</b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1036 </pre> |
395 | 1037 |
1038 <p> | |
1039 A <b>for</b> statement like | |
1040 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1041 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1042 for <em>var_1</em>, ···, <em>var_n</em> in <em>exp</em> do <em>block</em> end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1043 </pre> |
395 | 1044 |
1045 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1046 is equivalent to the code: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1047 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1048 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1049 do |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1050 local <em>f</em> = <em>exp</em> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1051 while true do |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1052 local <em>var_1</em>, ···, <em>var_n</em> = <em>f</em>() |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1053 if <em>var_1</em> == nil then break end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1054 <em>block</em> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1055 end |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1056 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1057 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1058 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1059 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1060 Note the following: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1061 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1062 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1063 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1064 <li> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1065 <code><em>exp</em></code> is evaluated only once. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1066 Its result is an <em>iterator</em> function. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1067 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1068 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1069 <li> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1070 <code><em>f</em></code> is an invisible variable. |
395 | 1071 The name is here for explanatory purposes only. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1072 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1073 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1074 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1075 You can use <b>break</b> to exit a <b>for</b> loop. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1076 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1077 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1078 <li> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1079 The loop variables <code><em>var_i</em></code> are local to the loop; |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1080 you cannot use their values after the <b>for</b> ends. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1081 If you need these values, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1082 then assign them to other variables before breaking or exiting the loop. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1083 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1084 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1085 </ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1086 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1087 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1088 |
1520 | 1089 <h4 heading><a name="try" href="#for">Try Statement</a></h4> |
1090 | |
1091 <p>The <b>try</b> statement has the same semantics as in Java.</p> | |
1092 | |
1093 <pre> | |
1094 stat ::= <b>try</b> block [<b>catch</b> Name block] [<b>finally</b> block] end_try | |
1095 end_try ::= <b>end_try</b> | <b>end</b> | |
1096 </pre> | |
1097 | |
1098 | |
1099 | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1100 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1101 <h4 heading><a name="fn_stmt" href="#fn_stmt">Function Calls as Statements</a></h4> |
395 | 1102 |
1103 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1104 To allow possible side-effects, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1105 function calls can be executed as statements: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1106 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1107 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1108 stat ::= functioncall |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1109 </pre> |
395 | 1110 |
1111 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1112 In this case, all returned values are thrown away. |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1113 Function calls are explained in <a href="#fn_calls">Function Calls</a>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1114 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1115 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1116 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1117 <h4 heading><a name="local_stmt" href="#local_stmt">Local Declarations</a></h4> |
395 | 1118 |
1119 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1120 Local variables can be declared anywhere inside a block. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1121 The declaration can include an initial assignment: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1122 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1123 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1124 stat ::= <b>local</b> namelist [‘<b>=</b>’ explist] |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1125 </pre> |
395 | 1126 |
1127 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1128 If present, an initial assignment has the same semantics |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1129 of a multiple assignment (see <a href="#assignment">Assignment</a>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1130 Otherwise, all variables are initialized with <b>nil</b>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1131 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1132 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1133 <p> |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1134 A chunk is also a block (see <a href="#chunks">Chunks</a>), |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1135 and so local variables can be declared in a chunk outside any explicit block. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1136 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1137 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1138 <p> |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1139 The visibility rules for local variables are explained in <a href="#visibility">Visibility Rules</a>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1140 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1141 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1142 <h4 heading><a name="template_stmt" href="#template_stmt">Template Statements</a></h4> |
465 | 1143 |
1384
f5368cd8c056
remove template expressions and String.concat
Franklin Schmidt <fschmidt@gmail.com>
parents:
1373
diff
changeset
|
1144 <p>Template statements provide the full equivalent of <a href="http://en.wikipedia.org/wiki/JavaServer_Pages">JSP</a> but in a general way. Template statements write to standard output. For example:</p> |
465 | 1145 |
1325
28c1fc6d9d29
website - make docs html
Franklin Schmidt <fschmidt@gmail.com>
parents:
1324
diff
changeset
|
1146 <pre> |
465 | 1147 local name = "Bob" |
1148 %> | |
469 | 1149 Hello <%= name %>! |
1150 Bye <%= name %>. | |
465 | 1151 <% |
1325
28c1fc6d9d29
website - make docs html
Franklin Schmidt <fschmidt@gmail.com>
parents:
1324
diff
changeset
|
1152 </pre> |
465 | 1153 |
1154 <p>is equivalent to the code:</p> | |
1155 | |
1325
28c1fc6d9d29
website - make docs html
Franklin Schmidt <fschmidt@gmail.com>
parents:
1324
diff
changeset
|
1156 <pre> |
465 | 1157 local name = "Bob" |
1384
f5368cd8c056
remove template expressions and String.concat
Franklin Schmidt <fschmidt@gmail.com>
parents:
1373
diff
changeset
|
1158 require("luan:Io.luan").stdout.write( "Hello ", name , "!\nBye ", name , ".\n" ) |
1325
28c1fc6d9d29
website - make docs html
Franklin Schmidt <fschmidt@gmail.com>
parents:
1324
diff
changeset
|
1159 </pre> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1160 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1161 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1162 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1163 <h3 heading><a name="expressions" href="#expressions">Expressions</a></h3> |
395 | 1164 |
1165 <p> | |
1166 The basic expressions in Luan are the following: | |
1167 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1168 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1169 exp ::= prefixexp |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1170 exp ::= <b>nil</b> | <b>false</b> | <b>true</b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1171 exp ::= Numeral |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1172 exp ::= LiteralString |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1173 exp ::= functiondef |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1174 exp ::= tableconstructor |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1175 exp ::= ‘<b>...</b>’ |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1176 exp ::= exp binop exp |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1177 exp ::= unop exp |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1178 prefixexp ::= var | functioncall | ‘<b>(</b>’ exp ‘<b>)</b>’ |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1179 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1180 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1181 <p> |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1182 Numerals and literal strings are explained in <a href="#lex">Lexical Conventions</a>; |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1183 variables are explained in <a href="#vars">Variables</a>; |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1184 function definitions are explained in <a href="#fn_def">Function Definitions</a>; |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1185 function calls are explained in <a href="#fn_calls">Function Calls</a>; |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1186 table constructors are explained in <a href="#constructors">Table Constructors</a>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1187 Vararg expressions, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1188 denoted by three dots ('<code>...</code>'), can only be used when |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1189 directly inside a vararg function; |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1190 they are explained in <a href="#fn_def">Function Definitions</a>. |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1191 |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1192 |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1193 <p> |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1194 Binary operators comprise arithmetic operators (see <a href="#arithmetic">Arithmetic Operators</a>), |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1195 relational operators (see <a href="#relational">Relational Operators</a>), logical operators (see <a href="#logical_ops">Logical Operators</a>), |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1196 and the concatenation operator (see <a href="#concatenation">Concatenation</a>). |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1197 Unary operators comprise the unary minus (see <a href="#arithmetic">Arithmetic Operators</a>), |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1198 the unary logical <b>not</b> (see <a href="#logical_ops">Logical Operators</a>), |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1199 and the unary <em>length operator</em> (see <a href="#length">The Length Operator</a>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1200 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1201 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1202 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1203 Both function calls and vararg expressions can result in multiple values. |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1204 If a function call is used as a statement (see <a href="#fn_stmt">Function Calls as Statements</a>), |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1205 then its return list is adjusted to zero elements, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1206 thus discarding all returned values. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1207 If an expression is used as the last (or the only) element |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1208 of a list of expressions, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1209 then no adjustment is made |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1210 (unless the expression is enclosed in parentheses). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1211 In all other contexts, |
395 | 1212 Luan adjusts the result list to one element, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1213 either discarding all values except the first one |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1214 or adding a single <b>nil</b> if there are no values. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1215 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1216 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1217 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1218 Here are some examples: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1219 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1220 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1221 f() -- adjusted to 0 results |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1222 g(f(), x) -- f() is adjusted to 1 result |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1223 g(x, f()) -- g gets x plus all results from f() |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1224 a,b,c = f(), x -- f() is adjusted to 1 result (c gets nil) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1225 a,b = ... -- a gets the first vararg parameter, b gets |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1226 -- the second (both a and b can get nil if there |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1227 -- is no corresponding vararg parameter) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1228 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1229 a,b,c = x, f() -- f() is adjusted to 2 results |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1230 a,b,c = f() -- f() is adjusted to 3 results |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1231 return f() -- returns all results from f() |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1232 return ... -- returns all received vararg parameters |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1233 return x,y,f() -- returns x, y, and all results from f() |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1234 {f()} -- creates a list with all results from f() |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1235 {...} -- creates a list with all vararg parameters |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1236 {f(), nil} -- f() is adjusted to 1 result |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1237 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1238 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1239 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1240 Any expression enclosed in parentheses always results in only one value. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1241 Thus, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1242 <code>(f(x,y,z))</code> is always a single value, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1243 even if <code>f</code> returns several values. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1244 (The value of <code>(f(x,y,z))</code> is the first value returned by <code>f</code> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1245 or <b>nil</b> if <code>f</code> does not return any values.) |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1246 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1247 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1248 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1249 <h4 heading><a name="arithmetic" href="#arithmetic">Arithmetic Operators</a></h4> |
395 | 1250 |
1251 <p> | |
1252 Luan supports the following arithmetic operators: | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1253 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1254 <ul> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1255 <li><b><code>+</code>: </b>addition</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1256 <li><b><code>-</code>: </b>subtraction</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1257 <li><b><code>*</code>: </b>multiplication</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1258 <li><b><code>/</code>: </b>division</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1259 <li><b><code>%</code>: </b>modulo</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1260 <li><b><code>^</code>: </b>exponentiation</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1261 <li><b><code>-</code>: </b>unary minus</li> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1262 </ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1263 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1264 <p> |
395 | 1265 Addition, subtraction, multiplication, division, and unary minus are the same as these operators in Java. Exponentiation uses Java's <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#pow(double,%20double)">Math.pow</a> function. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1266 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1267 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1268 Modulo is defined as the remainder of a division |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1269 that rounds the quotient towards minus infinite (floor division). |
395 | 1270 (The Java modulo operator is not used.) |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1271 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1272 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1273 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1274 <h4 heading><a name="conversions" href="#conversions">Coercions and Conversions</a></h4> |
396 | 1275 |
1276 <p> | |
465 | 1277 Luan generally avoids automatic conversions. |
1278 String concatenation automatically converts all of its arguments to strings. | |
1279 | |
1280 <p> | |
1281 Luan provides library functions for explicit type conversions. | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1282 |
396 | 1283 |
1284 | |
1285 | |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1286 <h4 heading><a name="relational" href="#relational">Relational Operators</a></h4> |
396 | 1287 |
1288 <p> | |
1289 Luan supports the following relational operators: | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1290 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1291 <ul> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1292 <li><b><code>==</code>: </b>equality</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1293 <li><b><code>~=</code>: </b>inequality</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1294 <li><b><code><</code>: </b>less than</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1295 <li><b><code>></code>: </b>greater than</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1296 <li><b><code><=</code>: </b>less or equal</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1297 <li><b><code>>=</code>: </b>greater or equal</li> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1298 </ul><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1299 These operators always result in <b>false</b> or <b>true</b>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1300 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1301 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1302 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1303 Equality (<code>==</code>) first compares the type of its operands. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1304 If the types are different, then the result is <b>false</b>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1305 Otherwise, the values of the operands are compared. |
396 | 1306 Strings, numbers, and binary values are compared in the obvious way (by value). |
1307 | |
1308 <p> | |
1309 Tables | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1310 are compared by reference: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1311 two objects are considered equal only if they are the same object. |
396 | 1312 Every time you create a new table, |
1313 it is different from any previously existing table. | |
1314 Closures are also compared by reference. | |
1315 | |
1316 <p> | |
417 | 1317 You can change the way that Luan compares tables |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1318 by using the "eq" metamethod (see <a href="#meta">Metatables and Metamethods</a>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1319 |
396 | 1320 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1321 Java values are compared for equality with the Java <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)"><code>equals</code></a> method. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1322 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1323 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1324 Equality comparisons do not convert strings to numbers |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1325 or vice versa. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1326 Thus, <code>"0"==0</code> evaluates to <b>false</b>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1327 and <code>t[0]</code> and <code>t["0"]</code> denote different |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1328 entries in a table. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1329 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1330 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1331 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1332 The operator <code>~=</code> is exactly the negation of equality (<code>==</code>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1333 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1334 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1335 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1336 The order operators work as follows. |
396 | 1337 |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1338 If both arguments are numbers, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1339 then they are compared following |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1340 the usual rule for binary operations. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1341 Otherwise, if both arguments are strings, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1342 then their values are compared according to the current locale. |
396 | 1343 Otherwise, Luan tries to call the "lt" or the "le" |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1344 metamethod (see <a href="#meta">Metatables and Metamethods</a>). |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1345 A comparison <code>a > b</code> is translated to <code>b < a</code> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1346 and <code>a >= b</code> is translated to <code>b <= a</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1347 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1348 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1349 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1350 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1351 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1352 <h4 heading><a name="logical_ops" href="#logical_ops">Logical Operators</a></h4> |
396 | 1353 |
1354 <p> | |
1355 The logical operators in Luan are | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1356 <b>and</b>, <b>or</b>, and <b>not</b>. |
396 | 1357 The <b>and</b> and <b>or</b> operators consider both <b>false</b> and <b>nil</b> as false |
1358 and anything else as true. | |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1359 Like the control structures (see <a href="#control">Control Structures</a>), |
396 | 1360 the <b>not</b> operator requires a boolean value. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1361 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1362 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1363 The negation operator <b>not</b> always returns <b>false</b> or <b>true</b>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1364 The conjunction operator <b>and</b> returns its first argument |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1365 if this value is <b>false</b> or <b>nil</b>; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1366 otherwise, <b>and</b> returns its second argument. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1367 The disjunction operator <b>or</b> returns its first argument |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1368 if this value is different from <b>nil</b> and <b>false</b>; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1369 otherwise, <b>or</b> returns its second argument. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1370 Both <b>and</b> and <b>or</b> use short-circuit evaluation; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1371 that is, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1372 the second operand is evaluated only if necessary. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1373 Here are some examples: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1374 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1375 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1376 10 or 20 --> 10 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1377 10 or error() --> 10 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1378 nil or "a" --> "a" |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1379 nil and 10 --> nil |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1380 false and error() --> false |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1381 false and nil --> false |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1382 false or nil --> nil |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1383 10 and 20 --> 20 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1384 </pre> |
396 | 1385 |
1386 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1387 (In this manual, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1388 <code>--></code> indicates the result of the preceding expression.) |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1389 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1390 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1391 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1392 <h4 heading><a name="concatenation" href="#concatenation">Concatenation</a></h4> |
396 | 1393 |
1394 <p> | |
1395 The string concatenation operator in Luan is | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1396 denoted by two dots ('<code>..</code>'). |
396 | 1397 All operands are converted to strings. |
1398 | |
1399 | |
1400 | |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1401 <h4 heading><a name="length" href="#length">The Length Operator</a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1402 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1403 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1404 The length operator is denoted by the unary prefix operator <code>#</code>. |
396 | 1405 The length of a string is its number of characters. |
1406 The length of a binary is its number of bytes. | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1407 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1408 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1409 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1410 A program can modify the behavior of the length operator for |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1411 any table through the <code>__len</code> metamethod (see <a href="#meta">Metatables and Metamethods</a>). |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1412 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1413 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1414 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1415 Unless a <code>__len</code> metamethod is given, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1416 the length of a table <code>t</code> is defined |
396 | 1417 as the number of elements in <em>sequence</em>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1418 that is, |
396 | 1419 the size of the set of its positive numeric keys is equal to <em>{1..n}</em> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1420 for some non-negative integer <em>n</em>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1421 In that case, <em>n</em> is its length. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1422 Note that a table like |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1423 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1424 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1425 {10, 20, nil, 40} |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1426 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1427 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1428 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1429 has a length of <code>2</code>, because that is the last key in sequence. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1430 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1431 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1432 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1433 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1434 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1435 <h4 heading><a name="precedence" href="#precedence">Precedence</a></h4> |
396 | 1436 |
1437 <p> | |
1438 Operator precedence in Luan follows the table below, | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1439 from lower to higher priority: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1440 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1441 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1442 or |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1443 and |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1444 < > <= >= ~= == |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1445 .. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1446 + - |
396 | 1447 * / % |
1448 unary operators (not # -) | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1449 ^ |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1450 </pre> |
396 | 1451 |
1452 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1453 As usual, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1454 you can use parentheses to change the precedences of an expression. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1455 The concatenation ('<code>..</code>') and exponentiation ('<code>^</code>') |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1456 operators are right associative. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1457 All other binary operators are left associative. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1458 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1459 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1460 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1461 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1462 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1463 <h4 heading><a name="constructors" href="#constructors">Table Constructors</a></h4> |
396 | 1464 |
1465 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1466 Table constructors are expressions that create tables. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1467 Every time a constructor is evaluated, a new table is created. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1468 A constructor can be used to create an empty table |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1469 or to create a table and initialize some of its fields. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1470 The general syntax for constructors is |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1471 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1472 <pre> |
604
b73f005f3735
table constructor now uses end_of_line as a delimiter
Franklin Schmidt <fschmidt@gmail.com>
parents:
589
diff
changeset
|
1473 tableconstructor ::= ‘<b>{</b>’ fieldlist ‘<b>}</b>’ |
b73f005f3735
table constructor now uses end_of_line as a delimiter
Franklin Schmidt <fschmidt@gmail.com>
parents:
589
diff
changeset
|
1474 fieldlist ::= [field] {fieldsep [field]} |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1475 field ::= ‘<b>[</b>’ exp ‘<b>]</b>’ ‘<b>=</b>’ exp | Name ‘<b>=</b>’ exp | exp |
604
b73f005f3735
table constructor now uses end_of_line as a delimiter
Franklin Schmidt <fschmidt@gmail.com>
parents:
589
diff
changeset
|
1476 fieldsep ::= ‘<b>,</b>’ | ‘<b>;</b>’ | <b>end_of_line</b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1477 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1478 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1479 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1480 Each field of the form <code>[exp1] = exp2</code> adds to the new table an entry |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1481 with key <code>exp1</code> and value <code>exp2</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1482 A field of the form <code>name = exp</code> is equivalent to |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1483 <code>["name"] = exp</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1484 Finally, fields of the form <code>exp</code> are equivalent to |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1485 <code>[i] = exp</code>, where <code>i</code> are consecutive integers |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1486 starting with 1. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1487 Fields in the other formats do not affect this counting. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1488 For example, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1489 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1490 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1491 a = { [f(1)] = g; "x", "y"; x = 1, f(x), [30] = 23; 45 } |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1492 </pre> |
396 | 1493 |
1494 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1495 is equivalent to |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1496 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1497 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1498 do |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1499 local t = {} |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1500 t[f(1)] = g |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1501 t[1] = "x" -- 1st exp |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1502 t[2] = "y" -- 2nd exp |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1503 t.x = 1 -- t["x"] = 1 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1504 t[3] = f(x) -- 3rd exp |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1505 t[30] = 23 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1506 t[4] = 45 -- 4th exp |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1507 a = t |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1508 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1509 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1510 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1511 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1512 The order of the assignments in a constructor is undefined. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1513 (This order would be relevant only when there are repeated keys.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1514 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1515 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1516 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1517 If the last field in the list has the form <code>exp</code> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1518 and the expression is a function call or a vararg expression, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1519 then all values returned by this expression enter the list consecutively |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1520 (see <a href="#fn_calls">Function Calls</a>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1521 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1522 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1523 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1524 The field list can have an optional trailing separator, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1525 as a convenience for machine-generated code. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1526 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1527 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1528 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1529 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1530 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1531 <h4 heading><a name="fn_calls" href="#fn_calls">Function Calls</a></h4> |
417 | 1532 |
1533 <p> | |
1534 A function call in Luan has the following syntax: | |
1535 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1536 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1537 functioncall ::= prefixexp args |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1538 </pre> |
417 | 1539 |
1540 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1541 In a function call, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1542 first prefixexp and args are evaluated. |
685 | 1543 The value of prefixexp must have type <em>function</em>. |
1544 This function is called | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1545 with the given arguments. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1546 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1547 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1548 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1549 Arguments have the following syntax: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1550 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1551 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1552 args ::= ‘<b>(</b>’ [explist] ‘<b>)</b>’ |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1553 args ::= tableconstructor |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1554 args ::= LiteralString |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1555 </pre> |
417 | 1556 |
1557 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1558 All argument expressions are evaluated before the call. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1559 A call of the form <code>f{<em>fields</em>}</code> is |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1560 syntactic sugar for <code>f({<em>fields</em>})</code>; |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1561 that is, the argument list is a single new table. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1562 A call of the form <code>f'<em>string</em>'</code> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1563 (or <code>f"<em>string</em>"</code> or <code>f[[<em>string</em>]]</code>) |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1564 is syntactic sugar for <code>f('<em>string</em>')</code>; |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1565 that is, the argument list is a single literal string. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1566 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1567 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1568 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1569 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1570 <h4 heading><a name="fn_def" href="#fn_def">Function Definitions</a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1571 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1572 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1573 The syntax for function definition is |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1574 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1575 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1576 functiondef ::= <b>function</b> funcbody |
1092 | 1577 funcbody ::= ‘<b>(</b>’ [parlist] ‘<b>)</b>’ block end_function |
1578 end_function ::= <b>end_function</b> | <b>end</b> | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1579 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1580 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1581 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1582 The following syntactic sugar simplifies function definitions: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1583 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1584 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1585 stat ::= <b>function</b> funcname funcbody |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1586 stat ::= <b>local</b> <b>function</b> Name funcbody |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1587 funcname ::= Name {‘<b>.</b>’ Name} [‘<b>:</b>’ Name] |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1588 </pre> |
417 | 1589 |
1590 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1591 The statement |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1592 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1593 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1594 function f () <em>body</em> end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1595 </pre> |
417 | 1596 |
1597 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1598 translates to |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1599 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1600 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1601 f = function () <em>body</em> end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1602 </pre> |
417 | 1603 |
1604 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1605 The statement |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1606 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1607 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1608 function t.a.b.c.f () <em>body</em> end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1609 </pre> |
417 | 1610 |
1611 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1612 translates to |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1613 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1614 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1615 t.a.b.c.f = function () <em>body</em> end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1616 </pre> |
417 | 1617 |
1618 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1619 The statement |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1620 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1621 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1622 local function f () <em>body</em> end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1623 </pre> |
417 | 1624 |
1625 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1626 translates to |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1627 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1628 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1629 local f; f = function () <em>body</em> end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1630 </pre> |
417 | 1631 |
1632 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1633 not to |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1634 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1635 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1636 local f = function () <em>body</em> end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1637 </pre> |
417 | 1638 |
1639 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1640 (This only makes a difference when the body of the function |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1641 contains references to <code>f</code>.) |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1642 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1643 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1644 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1645 A function definition is an executable expression, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1646 whose value has type <em>function</em>. |
417 | 1647 When Luan precompiles a chunk, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1648 all its function bodies are precompiled too. |
417 | 1649 Then, whenever Luan executes the function definition, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1650 the function is <em>instantiated</em> (or <em>closed</em>). |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1651 This function instance (or <em>closure</em>) |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1652 is the final value of the expression. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1653 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1654 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1655 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1656 Parameters act as local variables that are |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1657 initialized with the argument values: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1658 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1659 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1660 parlist ::= namelist [‘<b>,</b>’ ‘<b>...</b>’] | ‘<b>...</b>’ |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1661 </pre> |
417 | 1662 |
1663 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1664 When a function is called, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1665 the list of arguments is adjusted to |
1090
616761e0b9f6
update documentation for last change
Franklin Schmidt <fschmidt@gmail.com>
parents:
799
diff
changeset
|
1666 the length of the list of parameters if the list is too short, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1667 unless the function is a <em>vararg function</em>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1668 which is indicated by three dots ('<code>...</code>') |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1669 at the end of its parameter list. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1670 A vararg function does not adjust its argument list; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1671 instead, it collects all extra arguments and supplies them |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1672 to the function through a <em>vararg expression</em>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1673 which is also written as three dots. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1674 The value of this expression is a list of all actual extra arguments, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1675 similar to a function with multiple results. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1676 If a vararg expression is used inside another expression |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1677 or in the middle of a list of expressions, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1678 then its return list is adjusted to one element. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1679 If the expression is used as the last element of a list of expressions, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1680 then no adjustment is made |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1681 (unless that last expression is enclosed in parentheses). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1682 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1683 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1684 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1685 As an example, consider the following definitions: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1686 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1687 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1688 function f(a, b) end |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1689 function g(a, b, ...) end |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1690 function r() return 1,2,3 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1691 </pre> |
417 | 1692 |
1693 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1694 Then, we have the following mapping from arguments to parameters and |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1695 to the vararg expression: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1696 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1697 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1698 CALL PARAMETERS |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1699 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1700 f(3) a=3, b=nil |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1701 f(3, 4) a=3, b=4 |
1090
616761e0b9f6
update documentation for last change
Franklin Schmidt <fschmidt@gmail.com>
parents:
799
diff
changeset
|
1702 f(3, 4, 5) runtime error |
616761e0b9f6
update documentation for last change
Franklin Schmidt <fschmidt@gmail.com>
parents:
799
diff
changeset
|
1703 f(r(), 10) runtime error |
616761e0b9f6
update documentation for last change
Franklin Schmidt <fschmidt@gmail.com>
parents:
799
diff
changeset
|
1704 f(r()) runtime error |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1705 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1706 g(3) a=3, b=nil, ... --> (nothing) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1707 g(3, 4) a=3, b=4, ... --> (nothing) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1708 g(3, 4, 5, 8) a=3, b=4, ... --> 5 8 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1709 g(5, r()) a=5, b=1, ... --> 2 3 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1710 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1711 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1712 <p> |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1713 Results are returned using the <b>return</b> statement (see <a href="#control">Control Structures</a>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1714 If control reaches the end of a function |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1715 without encountering a <b>return</b> statement, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1716 then the function returns with no results. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1717 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1718 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1719 <h3 heading><a name="visibility" href="#visibility">Visibility Rules</a></h3> |
417 | 1720 |
1721 <p> | |
1722 Luan is a lexically scoped language. | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1723 The scope of a local variable begins at the first statement after |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1724 its declaration and lasts until the last non-void statement |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1725 of the innermost block that includes the declaration. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1726 Consider the following example: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1727 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1728 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1729 x = 10 -- global variable |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1730 do -- new block |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1731 local x = x -- new 'x', with value 10 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1732 print(x) --> 10 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1733 x = x+1 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1734 do -- another block |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1735 local x = x+1 -- another 'x' |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1736 print(x) --> 12 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1737 end |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1738 print(x) --> 11 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1739 end |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1740 print(x) --> 10 (the global one) |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1741 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1742 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1743 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1744 Notice that, in a declaration like <code>local x = x</code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1745 the new <code>x</code> being declared is not in scope yet, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1746 and so the second <code>x</code> refers to the outside variable. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1747 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1748 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1749 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1750 Because of the lexical scoping rules, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1751 local variables can be freely accessed by functions |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1752 defined inside their scope. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1753 A local variable used by an inner function is called |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1754 an <em>upvalue</em>, or <em>external local variable</em>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1755 inside the inner function. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1756 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1757 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1758 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1759 Notice that each execution of a <b>local</b> statement |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1760 defines new local variables. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1761 Consider the following example: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1762 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1763 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1764 a = {} |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1765 local x = 20 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1766 for i=1,10 do |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1767 local y = 0 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1768 a[i] = function () y=y+1; return x+y end |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1769 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1770 </pre> |
417 | 1771 |
1772 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1773 The loop creates ten closures |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1774 (that is, ten instances of the anonymous function). |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1775 Each of these closures uses a different <code>y</code> variable, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1776 while all of them share the same <code>x</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1777 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1778 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1779 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1780 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1781 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1782 <h2 heading><a name="libs" href="#libs">Standard Libraries</a></h2> |
468 | 1783 |
1784 <p> | |
1785 The standard Luan libraries provide useful functions | |
1786 that are implemented both in Java and in Luan itself. | |
1787 How each function is implemented shouldn't matter to the user. | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1788 Some of these functions provide essential services to the language |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1789 (e.g., <a href="#Luan.type"><code>type</code></a> and <a href="#Luan.get_metatable"><code>get_metatable</code></a>); |
468 | 1790 others provide access to "outside" services (e.g., I/O). |
1791 | |
1792 | |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1793 <h3 heading><a name="default_lib" href="#default_lib">Default Environment</a></h3> |
468 | 1794 |
1795 <p> | |
1353
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1342
diff
changeset
|
1796 This is provided by default as a local variable for any Luan code as described in <a href="#env">Environments</a>. |
470 | 1797 |
1798 | |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1799 <h4 heading><a name="require" href="#require"><code>require (mod_uri)</code></a></h4> |
470 | 1800 |
1801 <p> | |
1802 Example use: | |
1803 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1804 <pre> |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
685
diff
changeset
|
1805 local Table = require "luan:Table.luan" |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1806 </pre> |
470 | 1807 |
1808 <p> | |
1809 Could be defined as: | |
1810 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1811 <pre> |
470 | 1812 local function require(mod_name) |
476 | 1813 return <a href="#Package.load">Package.load</a>(mod_name) or <a href="#Luan.error">Luan.error</a>("module '"..mod_name.."' not found") |
470 | 1814 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1815 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1816 |
1353
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1342
diff
changeset
|
1817 <p> |
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1342
diff
changeset
|
1818 A special case is: |
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1342
diff
changeset
|
1819 |
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1342
diff
changeset
|
1820 <pre> |
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1342
diff
changeset
|
1821 require "java" |
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1342
diff
changeset
|
1822 </pre> |
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1342
diff
changeset
|
1823 |
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1342
diff
changeset
|
1824 <p> |
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1342
diff
changeset
|
1825 This enables Java in the current chunk if that chunk has permission to use Java. If the chunk doesn't have permission to use Java, then an error is thrown. |
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1342
diff
changeset
|
1826 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1827 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
1828 <h3 heading><a name="luan_lib" href="#luan_lib">Basic Functions</a></h3> |
470 | 1829 |
1830 <p> | |
1831 Include this library by: | |
1832 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1833 <pre> |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
685
diff
changeset
|
1834 local Luan = require "luan:Luan.luan" |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1835 </pre> |
470 | 1836 |
476 | 1837 <p> |
470 | 1838 The basic library provides basic functions to Luan that don't depend on other libaries. |
1839 | |
1840 | |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
1841 <h4 heading><a name="Luan.do_file" href="#Luan.do_file"><code>Luan.do_file ([uri])</code></a></h4> |
470 | 1842 |
1843 <p> | |
1844 Could be defined as: | |
1845 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1846 <pre> |
470 | 1847 function Luan.do_file(uri) |
1316
11d3640e739d
load_file returns nil for missing file
Franklin Schmidt <fschmidt@gmail.com>
parents:
1303
diff
changeset
|
1848 local fn = <a href="#Luan.load_file">Luan.load_file</a>(uri) or <a href="#Luan.error">Luan.error</a>("file '"..uri.."' not found") |
11d3640e739d
load_file returns nil for missing file
Franklin Schmidt <fschmidt@gmail.com>
parents:
1303
diff
changeset
|
1849 return fn() |
470 | 1850 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1851 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1852 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1853 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1854 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
1855 <h4 heading><a name="Luan.error" href="#Luan.error"><code>Luan.error (message)</code></a></h4> |
470 | 1856 |
1857 <p> | |
482 | 1858 Throws an error containing the message. |
1859 | |
1860 <p> | |
1861 Could be defined as: | |
1862 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1863 <pre> |
482 | 1864 function Luan.error(message) |
1865 <a href="#Luan.new_error">Luan.new_error</a>(message).throw() | |
1866 end | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1867 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1868 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1869 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1870 |
1434
56fb5cd8228d
cache compiled code in temp files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1422
diff
changeset
|
1871 <h4 heading><a name="Luan.eval" href="#Luan.eval"><code>Luan.eval (text [, source_name [, env]])</code></a></h4> |
695 | 1872 |
1873 <p> | |
1874 Evaluates <code>text</code> as a Luan expression. | |
1875 | |
1876 <p> | |
1877 Could be defined as: | |
1878 | |
1879 <pre> | |
1395
9dfff82dfc59
finish postgres work
Franklin Schmidt <fschmidt@gmail.com>
parents:
1389
diff
changeset
|
1880 function Luan.eval(text,source_name, env) |
9dfff82dfc59
finish postgres work
Franklin Schmidt <fschmidt@gmail.com>
parents:
1389
diff
changeset
|
1881 return <a href="#Luan.load">Luan.load</a>( "return "..text, source_name or "eval", env )() |
695 | 1882 end |
1883 </pre> | |
1884 | |
1885 | |
1886 | |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
1887 <h4 heading><a name="Luan.get_metatable" href="#Luan.get_metatable"><code>Luan.get_metatable (table)</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1888 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1889 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1890 If <code>table</code> does not have a metatable, returns <b>nil</b>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1891 Otherwise, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1892 if the table's metatable has a <code>"__metatable"</code> field, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1893 returns the associated value. |
470 | 1894 Otherwise, returns the metatable of the given table. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1895 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1896 |
1373 | 1897 <h4 heading><a name="Luan.hash_code" href="#Luan.ipairs"><code>Luan.hash_code (v)</code></a></h4> |
1898 | |
1899 <p> | |
1900 Returns the hash code of <code>v</code>. | |
1901 | |
1902 | |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
1903 <h4 heading><a name="Luan.ipairs" href="#Luan.ipairs"><code>Luan.ipairs (t)</code></a></h4> |
474 | 1904 |
1905 <p> | |
1906 Returns an iterator function | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1907 so that the construction |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1908 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1909 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1910 for i,v in ipairs(t) do <em>body</em> end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1911 </pre> |
474 | 1912 |
1913 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1914 will iterate over the key–value pairs |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1915 (<code>1,t[1]</code>), (<code>2,t[2]</code>), ..., |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1916 up to the first nil value. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1917 |
474 | 1918 <p> |
1919 Could be defined as: | |
1920 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1921 <pre> |
474 | 1922 function Luan.ipairs(t) |
1923 local i = 0 | |
1924 return function() | |
1925 if i < #t then | |
1926 i = i + 1 | |
1927 return i, t[i] | |
1928 end | |
1929 end | |
1930 end | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1931 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1932 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1933 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1934 |
1434
56fb5cd8228d
cache compiled code in temp files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1422
diff
changeset
|
1935 <h4 heading><a name="Luan.load" href="#Luan.load"><code>Luan.load (text, [source_name [, env [, persist]]])</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1936 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1937 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1938 Loads a chunk. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1939 |
474 | 1940 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1941 The <code>text</code> is compiled. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1942 If there are no syntactic errors, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1943 returns the compiled chunk as a function; |
474 | 1944 otherwise, throws an error. |
1945 | |
1946 <p> | |
1434
56fb5cd8228d
cache compiled code in temp files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1422
diff
changeset
|
1947 The <code>source_name</code> parameter is a string saying where the text came from. It is used to produce error messages. Defaults to "load". |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1948 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1949 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1950 If the <code>env</code> parameter is supplied, it becomes the <code>_ENV</code> of the chunk. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1951 |
1434
56fb5cd8228d
cache compiled code in temp files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1422
diff
changeset
|
1952 <p> |
56fb5cd8228d
cache compiled code in temp files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1422
diff
changeset
|
1953 The <code>persist</code> parameter is a boolean which determines if the compiled code is persistently cached to a temporary file. Defaults to <code>false</code>. |
56fb5cd8228d
cache compiled code in temp files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1422
diff
changeset
|
1954 |
56fb5cd8228d
cache compiled code in temp files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1422
diff
changeset
|
1955 |
56fb5cd8228d
cache compiled code in temp files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1422
diff
changeset
|
1956 <h4 heading><a name="Luan.load_file" href="#Luan.load_file"><code>Luan.load_file (file_uri)</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1957 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1958 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1959 Similar to <a href="#Luan.load"><code>load</code></a>, |
1434
56fb5cd8228d
cache compiled code in temp files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1422
diff
changeset
|
1960 but gets the chunk from file <code>file_uri</code>. |
56fb5cd8228d
cache compiled code in temp files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1422
diff
changeset
|
1961 <code>file_uri</code> can be a string or a uri table. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1962 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1963 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
1964 <h4 heading><a name="Luan.new_error" href="#Luan.new_error"><code>Luan.new_error (message)</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1965 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1966 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1967 Creates a new error table containing the message assigned to "<code>message</code>". The error table also contains a <code>throw</code> function which throws the error. The table also contains a list of stack trace elements where each stack trace element is a table containing "<code>source</code>", "<code>line</code>", and possible "<code>call_to</code>". The table also has a metatable containing "<code>__to_string</code>" to render the error. |
482 | 1968 |
1969 <p> | |
1970 To print the current stack trace, you could do: | |
1971 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1972 <pre> |
482 | 1973 Io.print( Luan.new_error "stack" ) |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1974 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1975 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1976 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
1977 <h4 heading><a name="Luan.pairs" href="#Luan.pairs"><code>Luan.pairs (t)</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1978 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1979 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1980 If <code>t</code> has a metamethod <code>__pairs</code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1981 calls it with <code>t</code> as argument and returns the |
475 | 1982 result from the call. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1983 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1984 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1985 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1986 Otherwise, |
475 | 1987 returns a function |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1988 so that the construction |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1989 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1990 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1991 for k,v in pairs(t) do <em>body</em> end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1992 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1993 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1994 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1995 will iterate over all key–value pairs of table <code>t</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1996 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1997 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1998 |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1999 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2000 <hr><h3><a name="pdf-print"><code>print (···)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2001 Receives any number of arguments |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2002 and prints their values to <code>stdout</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2003 using the <a href="#pdf-tostring"><code>tostring</code></a> function to convert each argument to a string. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2004 <code>print</code> is not intended for formatted output, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2005 but only as a quick way to show a value, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2006 for instance for debugging. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2007 For complete control over the output, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2008 use <a href="#pdf-string.format"><code>string.format</code></a> and <a href="#pdf-io.write"><code>io.write</code></a>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2009 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2010 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2011 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2012 <h4 heading><a name="Luan.range" href="#Luan.range"><code>Luan.range (start, stop [, step])</code></a></h4> |
476 | 2013 |
2014 <p> | |
2015 Based on <a href="https://docs.python.org/2/library/functions.html#range">the Python range() function</a>, this lets one iterate through a sequence of numbers. | |
2016 | |
2017 <p> | |
2018 Example use: | |
2019 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2020 <pre> |
476 | 2021 for i in range(1,10) do |
2022 Io.print("count up:",i) | |
2023 end | |
2024 for i in range(10,0,-1) do | |
2025 Io.print("count down:",i) | |
2026 end | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2027 </pre> |
476 | 2028 |
2029 <p> | |
2030 Could be defined as: | |
2031 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2032 <pre> |
476 | 2033 function Luan.range(start, stop, step) |
2034 step = step or 1 | |
478 | 2035 step == 0 and <a href="#Luan.error">Luan.error</a> "bad argument #3 (step may not be zero)" |
476 | 2036 local i = start |
2037 return function() | |
2038 if step > 0 and i <= stop or step < 0 and i >= stop then | |
2039 local rtn = i | |
2040 i = i + step | |
2041 return rtn | |
2042 end | |
2043 end | |
2044 end | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2045 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2046 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2047 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2048 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2049 <h4 heading><a name="Luan.raw_equal" href="#Luan.raw_equal"><code>Luan.raw_equal (v1, v2)</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2050 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2051 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2052 Checks whether <code>v1</code> is equal to <code>v2</code>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2053 without invoking any metamethod. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2054 Returns a boolean. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2055 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2056 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2057 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2058 <h4 heading><a name="Luan.raw_get" href="#Luan.raw_get"><code>Luan.raw_get (table, index)</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2059 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2060 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2061 Gets the real value of <code>table[index]</code>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2062 without invoking any metamethod. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2063 <code>table</code> must be a table; |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2064 <code>index</code> may be any value. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2065 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2066 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2067 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2068 <h4 heading><a name="Luan.raw_len" href="#Luan.raw_len"><code>Luan.raw_len (v)</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2069 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2070 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2071 Returns the length of the object <code>v</code>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2072 which must be a table or a string, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2073 without invoking any metamethod. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2074 Returns an integer. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2075 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2076 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2077 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2078 <h4 heading><a name="Luan.raw_set" href="#Luan.raw_set"><code>Luan.raw_set (table, index, value)</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2079 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2080 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2081 Sets the real value of <code>table[index]</code> to <code>value</code>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2082 without invoking any metamethod. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2083 <code>table</code> must be a table, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2084 <code>index</code> any value different from <b>nil</b>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2085 and <code>value</code> any Lua value. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2086 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2087 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2088 <h4 heading><a name="Luan.set_metatable" href="#Luan.set_metatable"><code>Luan.set_metatable (table, metatable)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2089 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2090 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2091 Sets the metatable for the given table. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2092 If <code>metatable</code> is <b>nil</b>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2093 removes the metatable of the given table. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2094 If the original metatable has a <code>"__metatable"</code> field, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2095 raises an error. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2096 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2097 |
1389
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1384
diff
changeset
|
2098 <h4 heading><a name="Luan.stringify" href="#Luan.stringify"><code>Luan.stringify (v [,options])</code></a></h4> |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1384
diff
changeset
|
2099 |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1384
diff
changeset
|
2100 <p> |
eb8b35dccd99
cleanup and stringify change
Franklin Schmidt <fschmidt@gmail.com>
parents:
1384
diff
changeset
|
2101 Receives a value of any type and converts it to a string that is a Luan expression. <code>options</code> is a table. If <code>options.strict==true</code> then invalid types throw an error. Otherwise invalid types are represented but the resulting expression is invalid. If <code>options.number_types==true</code> then numbers will be wrapped in functions for their type. |
1189 | 2102 |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2103 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2104 <h4 heading><a name="Luan.to_string" href="#Luan.to_string"><code>Luan.to_string (v)</code></a></h4> |
475 | 2105 |
2106 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2107 Receives a value of any type and |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2108 converts it to a string in a human-readable format. |
475 | 2109 |
2110 <p> | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2111 If the metatable of <code>v</code> has a <code>"__to_string"</code> field, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2112 then <code>to_string</code> calls the corresponding value |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2113 with <code>v</code> as argument, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2114 and uses the result of the call as its result. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2115 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2116 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2117 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2118 <h4 heading><a name="Luan.type" href="#Luan.type"><code>Luan.type (v)</code></a></h4> |
475 | 2119 |
2120 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2121 Returns the type of its only argument, coded as a string. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2122 The possible results of this function are |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2123 "<code>nil</code>" (a string, not the value <b>nil</b>), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2124 "<code>number</code>", |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2125 "<code>string</code>", |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2126 "<code>binary</code>", |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2127 "<code>boolean</code>", |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2128 "<code>table</code>", |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2129 "<code>function</code>", |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2130 and "<code>java</code>". |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2131 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2132 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2133 <h4 heading><a name="Luan.values" href="#Luan.values"><code>Luan.values (···)</code></a></h4> |
476 | 2134 |
2135 <p> | |
2136 Returns a function so that the construction | |
2137 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2138 <pre> |
1276 | 2139 for i, v in Luan.values(···) do <em>body</em> end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2140 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2141 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2142 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2143 will iterate over all values of <code>···</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2144 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2145 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2146 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2147 <h4 heading><a name="Luan.VERSION" href="#Luan.VERSION"><code>Luan.VERSION</code></a></h4> |
475 | 2148 |
2149 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2150 A global variable (not a function) that |
1325
28c1fc6d9d29
website - make docs html
Franklin Schmidt <fschmidt@gmail.com>
parents:
1324
diff
changeset
|
2151 holds a string containing the current Luan version. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2152 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2153 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2154 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2155 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2156 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2157 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
2158 <h3 heading><a name="package_lib" href="#package_lib">Modules</a></h3> |
476 | 2159 |
2160 <p> | |
2161 Include this library by: | |
2162 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2163 <pre> |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
685
diff
changeset
|
2164 local Package = require "luan:Package.luan" |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2165 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2166 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2167 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2168 The package library provides basic |
476 | 2169 facilities for loading modules in Luan. |
2170 | |
2171 | |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2172 <h4 heading><a name="Package.load" href="#Package.load"><code>Package.load (mod_uri)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2173 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2174 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2175 Loads the given module. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2176 The function starts by looking into the <a href="#Package.loaded"><code>Package.loaded</code></a> table |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2177 to determine whether <code>mod_uri</code> is already loaded. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2178 If it is, then <code>Package.load</code> returns the value stored |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2179 at <code>Package.loaded[mod_uri]</code>. |
476 | 2180 Otherwise, it tries to load a new value for the module. |
2181 | |
2182 <p> | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2183 To load a new value, <code>Package.load</code> first checks if <code>mod_uri</code> starts with "<b>java:</b>". If yes, then this is a Java class which is loaded by special Java code. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2184 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2185 <p> |
799
9c13a15a4002
Package.load() now returns false instead of null, and caches the result. This cleans up the luan.isLocked issues.
Franklin Schmidt <fschmidt@gmail.com>
parents:
793
diff
changeset
|
2186 Otherwise <code>Package.load</code> tries to read the text of the file referred to by <code>mod_uri</code>. If the file doesn't exist, then <code>Package.load</code> returns <b>false</b>. If the file exists, then its content is compiled into a chunk by calling <a href="#Luan.load"><code>Luan.load</code></a>. This chunk is run passing in <code>mod_uri</code> as an argument. The value returned by the chunk must not be <b>nil</b> and is loaded. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2187 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2188 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2189 If a new value for the module successful loaded, then it is stored in <code>Package.loaded[mod_uri]</code>. The value is returned. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2190 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2191 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2192 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2193 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2194 <h4 heading><a name="Package.loaded" href="#Package.loaded"><code>Package.loaded</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2195 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2196 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2197 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2198 A table used by <a href="#Package.load"><code>Package.load</code></a> to control which |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2199 modules are already loaded. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2200 When you load a module <code>mod_uri</code> and |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2201 <code>Package.loaded[mod_uri]</code> is not <b>nil</b>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2202 <a href="#Package.load"><code>Package.load</code></a> simply returns the value stored there. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2203 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2204 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2205 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2206 This variable is only a reference to the real table; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2207 assignments to this variable do not change the |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2208 table used by <a href="#Package.load"><code>Package.load</code></a>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2209 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2210 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2211 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2212 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2213 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2214 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
2215 <h3 heading><a name="string_lib" href="#string_lib">String Manipulation</a></h3> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2216 |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2217 <p> |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2218 Include this library by: |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2219 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2220 <pre> |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
685
diff
changeset
|
2221 local String = require "luan:String.luan" |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2222 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2223 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2224 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2225 This library provides generic functions for string manipulation, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2226 such as finding and extracting substrings, and pattern matching. |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2227 When indexing a string in Luan, the first character is at position 1 |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2228 (not at 0, as in Java). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2229 Indices are allowed to be negative and are interpreted as indexing backwards, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2230 from the end of the string. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2231 Thus, the last character is at position -1, and so on. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2232 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2233 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2234 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2235 <h4 heading><a name="String.char" href="#String.char"><code>String.char (···)</code></a></h4> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2236 |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2237 <p> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2238 Receives zero or more integers. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2239 Returns a string with length equal to the number of arguments, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2240 in which each character has the internal numerical code equal |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2241 to its corresponding argument. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2242 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2243 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2244 <h4 heading><a name="String.encode" href="#String.encode"><code>String.encode (s)</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2245 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2246 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2247 Encodes argument <code>s</code> into a string that can be placed in quotes so as to return the original value of the string. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2248 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2249 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2250 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2251 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2252 <h4 heading><a name="String.find" href="#String.find"><code>String.find (s, pattern [, init [, plain]])</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2253 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2254 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2255 Looks for the first match of |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2256 <code>pattern</code> (see <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">Pattern</a>) in the string <code>s</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2257 If it finds a match, then <code>find</code> returns the indices of <code>s</code> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2258 where this occurrence starts and ends; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2259 otherwise, it returns <b>nil</b>. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2260 A third, optional numerical argument <code>init</code> specifies |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2261 where to start the search; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2262 its default value is 1 and can be negative. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2263 A value of <b>true</b> as a fourth, optional argument <code>plain</code> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2264 turns off the pattern matching facilities, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2265 so the function does a plain "find substring" operation, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2266 with no characters in <code>pattern</code> being considered magic. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2267 Note that if <code>plain</code> is given, then <code>init</code> must be given as well. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2268 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2269 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2270 If the pattern has captures, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2271 then in a successful match |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2272 the captured values are also returned, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2273 after the two indices. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2274 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2275 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2276 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2277 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2278 <h4 heading><a name="String.format" href="#String.format"><code>String.format (formatstring, ···)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2279 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2280 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2281 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2282 Returns a formatted version of its variable number of arguments |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2283 following the description given in its first argument (which must be a string). |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2284 The format string follows the same rules as the Java function <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#format(java.lang.String,%20java.lang.Object...)"><code>String.format</code></a> because Luan calls this internally. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2285 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2286 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2287 Note that Java's <code>String.format</code> is too stupid to convert between ints and floats, so you must provide the right kind of number. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2288 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2289 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2290 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2291 <h4 heading><a name="String.gmatch" href="#String.gmatch"><code>String.gmatch (s, pattern)</code></a></h4> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2292 |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2293 <p> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2294 Returns an iterator function that, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2295 each time it is called, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2296 returns the next captures from <code>pattern</code> (see <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">Pattern</a>) |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2297 over the string <code>s</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2298 If <code>pattern</code> specifies no captures, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2299 then the whole match is produced in each call. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2300 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2301 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2302 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2303 As an example, the following loop |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2304 will iterate over all the words from string <code>s</code>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2305 printing one per line: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2306 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2307 <pre> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2308 local s = "hello world from Lua" |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2309 for w in String.gmatch(s, [[\w+]]) do |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2310 print(w) |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2311 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2312 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2313 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2314 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2315 The next example collects all pairs <code>key=value</code> from the |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2316 given string into a table: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2317 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2318 <pre> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2319 local t = {} |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2320 local s = "from=world, to=Lua" |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2321 for k, v in String.gmatch(s, [[(\w+)=(\w+)]]) do |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2322 t[k] = v |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2323 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2324 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2325 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2326 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2327 For this function, a caret '<code>^</code>' at the start of a pattern does not |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2328 work as an anchor, as this would prevent the iteration. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2329 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2330 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2331 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2332 <h4 heading><a name="String.gsub" href="#String.gsub"><code>String.gsub (s, pattern, repl [, n])</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2333 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2334 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2335 Returns a copy of <code>s</code> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2336 in which all (or the first <code>n</code>, if given) |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2337 occurrences of the <code>pattern</code> (see <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">Pattern</a>) have been |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2338 replaced by a replacement string specified by <code>repl</code>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2339 which can be a string, a table, or a function. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2340 <code>gsub</code> also returns, as its second value, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2341 the total number of matches that occurred. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2342 The name <code>gsub</code> comes from <em>Global SUBstitution</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2343 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2344 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2345 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2346 If <code>repl</code> is a string, then its value is used for replacement. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2347 The character <code>\</code> works as an escape character. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2348 Any sequence in <code>repl</code> of the form <code>$<em>d</em></code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2349 with <em>d</em> between 1 and 9, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2350 stands for the value of the <em>d</em>-th captured substring. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2351 The sequence <code>$0</code> stands for the whole match. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2352 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2353 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2354 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2355 If <code>repl</code> is a table, then the table is queried for every match, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2356 using the first capture as the key. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2357 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2358 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2359 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2360 If <code>repl</code> is a function, then this function is called every time a |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2361 match occurs, with all captured substrings passed as arguments, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2362 in order. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2363 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2364 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2365 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2366 In any case, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2367 if the pattern specifies no captures, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2368 then it behaves as if the whole pattern was inside a capture. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2369 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2370 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2371 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2372 If the value returned by the table query or by the function call |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2373 is not <b>nil</b>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2374 then it is used as the replacement string; |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2375 otherwise, if it is <b>nil</b>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2376 then there is no replacement |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2377 (that is, the original match is kept in the string). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2378 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2379 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2380 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2381 Here are some examples: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2382 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2383 <pre> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2384 x = String.gsub("hello world", [[(\w+)]], "$1 $1") |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2385 --> x="hello hello world world" |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2386 |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2387 x = String.gsub("hello world", [[\w+]], "$0 $0", 1) |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2388 --> x="hello hello world" |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2389 |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2390 x = String.gsub("hello world from Luan", [[(\w+)\s*(\w+)]], "$2 $1") |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2391 --> x="world hello Luan from" |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2392 |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2393 x = String.gsub("4+5 = $return 4+5$", [[\$(.*?)\$]], function (s) |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2394 return load(s)() |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2395 end) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2396 --> x="4+5 = 9" |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2397 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2398 local t = {name="lua", version="5.3"} |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2399 x = String.gsub("$name-$version.tar.gz", [[\$(\w+)]], t) |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2400 --> x="lua-5.3.tar.gz" |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2401 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2402 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2403 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2404 <h4 heading><a name="String.lower" href="#String.lower"><code>String.lower (s)</code></a></h4> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2405 <p> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2406 Receives a string and returns a copy of this string with all |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2407 uppercase letters changed to lowercase. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2408 All other characters are left unchanged. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2409 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2410 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2411 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2412 <h4 heading><a name="String.match" href="#String.match"><code>String.match (s, pattern [, init])</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2413 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2414 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2415 Looks for the first <em>match</em> of |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2416 <code>pattern</code> (see <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">Pattern</a>) in the string <code>s</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2417 If it finds one, then <code>match</code> returns |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2418 the captures from the pattern; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2419 otherwise it returns <b>nil</b>. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2420 If <code>pattern</code> specifies no captures, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2421 then the whole match is returned. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2422 A third, optional numerical argument <code>init</code> specifies |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2423 where to start the search; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2424 its default value is 1 and can be negative. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2425 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2426 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2427 <h4 heading><a name="String.matches" href="#String.matches"><code>String.matches (s, pattern)</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2428 <p> |
629
35dde32c02ab
change String.matches()
Franklin Schmidt <fschmidt@gmail.com>
parents:
626
diff
changeset
|
2429 Returns a boolean indicating whether the <code>pattern</code> can be found in string <code>s</code>. |
35dde32c02ab
change String.matches()
Franklin Schmidt <fschmidt@gmail.com>
parents:
626
diff
changeset
|
2430 This function is equivalent to |
35dde32c02ab
change String.matches()
Franklin Schmidt <fschmidt@gmail.com>
parents:
626
diff
changeset
|
2431 |
35dde32c02ab
change String.matches()
Franklin Schmidt <fschmidt@gmail.com>
parents:
626
diff
changeset
|
2432 <pre> |
35dde32c02ab
change String.matches()
Franklin Schmidt <fschmidt@gmail.com>
parents:
626
diff
changeset
|
2433 return String.match(s,pattern) ~= nil |
35dde32c02ab
change String.matches()
Franklin Schmidt <fschmidt@gmail.com>
parents:
626
diff
changeset
|
2434 </pre> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2435 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2436 |
1422 | 2437 <h4 heading><a name="String.regex_quote" href="#String.regex_quote"><code>String.regex_quote (s)</code></a></h4> |
2438 <p> | |
2439 Returns a string which matches the literal string <code>s</code> in a regular expression. This function is simply the Java method <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html#quote(java.lang.String)"><code>Pattern.quote</code></a>. | |
2440 | |
2441 | |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2442 <h4 heading><a name="String.rep" href="#String.rep"><code>String.rep (s, n [, sep])</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2443 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2444 Returns a string that is the concatenation of <code>n</code> copies of |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2445 the string <code>s</code> separated by the string <code>sep</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2446 The default value for <code>sep</code> is the empty string |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2447 (that is, no separator). |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2448 Returns the empty string if <code>n</code> is not positive. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2449 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2450 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2451 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2452 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2453 <h4 heading><a name="String.reverse" href="#String.reverse"><code>String.reverse (s)</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2454 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2455 Returns a string that is the string <code>s</code> reversed. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2456 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2457 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2458 |
1195 | 2459 <h4 heading><a name="String.split" href="#String.match"><code>String.split (s, pattern [, limit])</code></a></h4> |
2460 | |
2461 <p> | |
2462 Splits <code>s</code> using regex <code>pattern</code> and returns the results. If <code>limit</code> is positive, then only returns at most that many results. If <code>limit</code> is zero, then remove trailing empty results. | |
2463 | |
2464 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2465 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2466 <h4 heading><a name="String.sub" href="#String.sub"><code>String.sub (s, i [, j])</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2467 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2468 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2469 Returns the substring of <code>s</code> that |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2470 starts at <code>i</code> and continues until <code>j</code>; |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2471 <code>i</code> and <code>j</code> can be negative. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2472 If <code>j</code> is absent, then it is assumed to be equal to -1 |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2473 (which is the same as the string length). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2474 In particular, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2475 the call <code>string.sub(s,1,j)</code> returns a prefix of <code>s</code> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2476 with length <code>j</code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2477 and <code>string.sub(s, -i)</code> returns a suffix of <code>s</code> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2478 with length <code>i</code>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2479 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2480 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2481 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2482 If, after the translation of negative indices, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2483 <code>i</code> is less than 1, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2484 it is corrected to 1. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2485 If <code>j</code> is greater than the string length, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2486 it is corrected to that length. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2487 If, after these corrections, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2488 <code>i</code> is greater than <code>j</code>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2489 the function returns the empty string. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2490 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2491 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2492 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2493 <h4 heading><a name="String.to_binary" href="#String.to_binary"><code>String.to_binary (s)</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2494 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2495 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2496 Converts a string to a binary by calling the Java method <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#getBytes()"><code>String.getBytes</code></a>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2497 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2498 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2499 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2500 <h4 heading><a name="String.to_number" href="#String.to_number"><code>String.to_number (s [, base])</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2501 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2502 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2503 When called with no <code>base</code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2504 <code>to_number</code> tries to convert its argument to a number. |
556
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2505 If the argument is |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2506 a string convertible to a number, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2507 then <code>to_number</code> returns this number; |
556
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2508 otherwise, it returns <b>nil</b>. |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2509 |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2510 The conversion of strings can result in integers or floats. |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2511 |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2512 |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2513 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2514 When called with <code>base</code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2515 then <code>s</code> must be a string to be interpreted as |
556
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2516 an integer numeral in that base. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2517 In bases above 10, the letter '<code>A</code>' (in either upper or lower case) |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2518 represents 10, '<code>B</code>' represents 11, and so forth, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2519 with '<code>Z</code>' representing 35. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2520 If the string <code>s</code> is not a valid numeral in the given base, |
556
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2521 the function returns <b>nil</b>. |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2522 |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2523 |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2524 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2525 <h4 heading><a name="String.trim" href="#String.trim"><code>String.trim (s)</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2526 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2527 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2528 Removes the leading and trailing whitespace by calling the Java method <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#trim()"><code>String.trim</code></a>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2529 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2530 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2531 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2532 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2533 <h4 heading><a name="String.unicode" href="#String.unicode"><code>String.unicode (s [, i [, j]])</code></a></h4> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2534 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2535 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2536 Returns the internal numerical codes of the characters <code>s[i]</code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2537 <code>s[i+1]</code>, ..., <code>s[j]</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2538 The default value for <code>i</code> is 1; |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2539 the default value for <code>j</code> is <code>i</code>. |
556
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2540 These indices are corrected |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2541 following the same rules of function <a href="#String.sub"><code>String.sub</code></a>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2542 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2543 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2544 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2545 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2546 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2547 <h4 heading><a name="String.upper" href="#String.upper"><code>String.upper (s)</code></a></h4> |
556
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2548 <p> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2549 Receives a string and returns a copy of this string with all |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2550 lowercase letters changed to uppercase. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2551 All other characters are left unchanged. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2552 The definition of what a lowercase letter is depends on the current locale. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2553 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2554 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2555 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2556 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2557 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
2558 <h3 heading><a name="binary_lib" href="#binary_lib">Binary Manipulation</a></h3> |
567 | 2559 |
2560 <p> | |
2561 Include this library by: | |
2562 | |
2563 <pre> | |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
685
diff
changeset
|
2564 local Binary = require "luan:Binary.luan" |
567 | 2565 </pre> |
2566 | |
2567 | |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2568 <h4 heading><a name="Binary.binary" href="#Binary.binary"><code>Binary.binary (···)</code></a></h4> |
567 | 2569 |
2570 <p> | |
2571 Receives zero or more bytes (as integers). | |
2572 Returns a binary with length equal to the number of arguments, | |
2573 in which each byte has the internal numerical code equal | |
2574 to its corresponding argument. | |
2575 | |
2576 | |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2577 <h4 heading><a name="Binary.byte" href="#Binary.byte"><code>Binary.byte (b [, i [, j]])</code></a></h4> |
567 | 2578 |
2579 <p> | |
2580 Returns the internal numerical codes of the bytes <code>b[i]</code>, | |
2581 <code>b[i+1]</code>, ..., <code>b[j]</code>. | |
2582 The default value for <code>i</code> is 1; | |
2583 the default value for <code>j</code> is <code>i</code>. | |
2584 These indices are corrected | |
2585 following the same rules of function <a href="#String.sub"><code>String.sub</code></a>. | |
2586 | |
2587 | |
1257
e38f5869e9df
don't reset in send_redirect and other improvements
Franklin Schmidt <fschmidt@gmail.com>
parents:
1216
diff
changeset
|
2588 <h4 heading><a name="Binary.to_string" href="#Binary.to_string"><code>Binary.to_string (b [,charset])</code></a></h4> |
e38f5869e9df
don't reset in send_redirect and other improvements
Franklin Schmidt <fschmidt@gmail.com>
parents:
1216
diff
changeset
|
2589 <p> |
e38f5869e9df
don't reset in send_redirect and other improvements
Franklin Schmidt <fschmidt@gmail.com>
parents:
1216
diff
changeset
|
2590 If <code>charset</code> is not nil then converts the binary <code>b</code> to a string using the Java <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#String(byte[],%20java.lang.String)">String constructor</a>, else makes each byte a char. |
567 | 2591 |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2592 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2593 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2594 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
2595 <h3 heading><a name="table_lib" href="#table_lib">Table Manipulation</a></h3> |
565
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2596 |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2597 <p> |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2598 Include this library by: |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2599 |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2600 <pre> |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
685
diff
changeset
|
2601 local Table = require "luan:Table.luan" |
565
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2602 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2603 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2604 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2605 This library provides generic functions for table manipulation. |
565
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2606 It provides all its functions inside the table <code>Table</code>. |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2607 |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2608 |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2609 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2610 <h4 heading><a name="Table.clear" href="#Table.clear"><code>Table.clear (tbl)</code></a></h4> |
580 | 2611 |
2612 <p> | |
2613 Clears the table. | |
2614 | |
2615 | |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2616 <h4 heading><a name="Table.concat" href="#Table.concat"><code>Table.concat (list [, sep [, i [, j]]])</code></a></h4> |
565
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2617 |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2618 <p> |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2619 Given a list, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2620 returns the string <code>list[i]..sep..list[i+1] ··· sep..list[j]</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2621 The default value for <code>sep</code> is the empty string, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2622 the default for <code>i</code> is 1, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2623 and the default for <code>j</code> is <code>#list</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2624 If <code>i</code> is greater than <code>j</code>, returns the empty string. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2625 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2626 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2627 <h4 heading><a name="Table.copy" href="#Table.copy"><code>Table.copy (tbl [, i [, j]])</code></a></h4> |
565
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2628 |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2629 <p> |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2630 If <code>i</code> is <code>nil</code>, returns a shallow copy of <code>tbl</code>. |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2631 Otherwise returns a new table which is a list of the elements <code>tbl[i] ··· tbl[j]</code>. |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2632 By default, <code>j</code> is <code>#tbl</code>. |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2633 |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2634 |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2635 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2636 <h4 heading><a name="Table.insert" href="#Table.insert"><code>Table.insert (list, pos, value)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2637 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2638 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2639 Inserts element <code>value</code> at position <code>pos</code> in <code>list</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2640 shifting up the elements |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2641 <code>list[pos], list[pos+1], ···, list[#list]</code>. |
565
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2642 |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2643 |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2644 |
1100
ad6b3b9fef40
add Table.is_empty() and Table.size()
Franklin Schmidt <fschmidt@gmail.com>
parents:
1092
diff
changeset
|
2645 <h4 heading><a name="Table.is_empty" href="#Table.is_empty"><code>Table.is_empty (tbl)</code></a></h4> |
ad6b3b9fef40
add Table.is_empty() and Table.size()
Franklin Schmidt <fschmidt@gmail.com>
parents:
1092
diff
changeset
|
2646 |
ad6b3b9fef40
add Table.is_empty() and Table.size()
Franklin Schmidt <fschmidt@gmail.com>
parents:
1092
diff
changeset
|
2647 |
ad6b3b9fef40
add Table.is_empty() and Table.size()
Franklin Schmidt <fschmidt@gmail.com>
parents:
1092
diff
changeset
|
2648 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2649 <h4 heading><a name="Table.pack" href="#Table.pack"><code>Table.pack (···)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2650 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2651 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2652 Returns a new table with all parameters stored into keys 1, 2, etc. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2653 and with a field "<code>n</code>" with the total number of parameters. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2654 Note that the resulting table may not be a sequence. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2655 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2656 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2657 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2658 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2659 <h4 heading><a name="Table.remove" href="#Table.remove"><code>Table.remove (list, pos)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2660 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2661 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2662 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2663 Removes from <code>list</code> the element at position <code>pos</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2664 returning the value of the removed element. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2665 When <code>pos</code> is an integer between 1 and <code>#list</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2666 it shifts down the elements |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2667 <code>list[pos+1], list[pos+2], ···, list[#list]</code> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2668 and erases element <code>list[#list]</code>; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2669 The index <code>pos</code> can also be 0 when <code>#list</code> is 0, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2670 or <code>#list + 1</code>; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2671 in those cases, the function erases the element <code>list[pos]</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2672 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2673 |
565
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2674 |
1100
ad6b3b9fef40
add Table.is_empty() and Table.size()
Franklin Schmidt <fschmidt@gmail.com>
parents:
1092
diff
changeset
|
2675 <h4 heading><a name="Table.size" href="#Table.size"><code>Table.size (tbl)</code></a></h4> |
ad6b3b9fef40
add Table.is_empty() and Table.size()
Franklin Schmidt <fschmidt@gmail.com>
parents:
1092
diff
changeset
|
2676 |
ad6b3b9fef40
add Table.is_empty() and Table.size()
Franklin Schmidt <fschmidt@gmail.com>
parents:
1092
diff
changeset
|
2677 |
565
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2678 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2679 <h4 heading><a name="Table.sort" href="#Table.sort"><code>Table.sort (list [, comp])</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2680 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2681 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2682 Sorts list elements in a given order, <em>in-place</em>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2683 from <code>list[1]</code> to <code>list[#list]</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2684 If <code>comp</code> is given, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2685 then it must be a function that receives two list elements |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2686 and returns true when the first element must come |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2687 before the second in the final order |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2688 (so that <code>not comp(list[i+1],list[i])</code> will be true after the sort). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2689 If <code>comp</code> is not given, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2690 then the standard Lua operator <code><</code> is used instead. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2691 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2692 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2693 The sort algorithm is not stable; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2694 that is, elements considered equal by the given order |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2695 may have their relative positions changed by the sort. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2696 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2697 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2698 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2699 <h4 heading><a name="Table.unpack" href="#Table.unpack"><code>Table.unpack (list [, i [, j]])</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2700 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2701 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2702 Returns the elements from the given list. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2703 This function is equivalent to |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2704 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2705 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2706 return list[i], list[i+1], ···, list[j] |
565
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2707 </pre> |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2708 |
22bfd8a2eaee
do Table documentation;
Franklin Schmidt <fschmidt@gmail.com>
parents:
562
diff
changeset
|
2709 <p> |
1277 | 2710 By default, <code>i</code> is 1 and <code>j</code> is <code>list.n or #list</code>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2711 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2712 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2713 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2714 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
2715 <h3 heading><a name="number_lib" href="#number_lib">Number Manipulation</a></h3> |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2716 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2717 <p> |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2718 Include this library by: |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2719 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2720 <pre> |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
685
diff
changeset
|
2721 local Number = require "luan:Number.luan" |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2722 </pre> |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2723 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2724 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2725 <h4 heading><a name="Number.double" href="#Number.double"><code>Number.double (x)</code></a></h4> |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2726 <p> |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2727 Returns <code>x</code> as a double. |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2728 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2729 |
1342
60599adc27b8
add lucene search options
Franklin Schmidt <fschmidt@gmail.com>
parents:
1327
diff
changeset
|
2730 <h4 heading><a name="Number.float" href="#Number.double"><code>Number.float (x)</code></a></h4> |
60599adc27b8
add lucene search options
Franklin Schmidt <fschmidt@gmail.com>
parents:
1327
diff
changeset
|
2731 <p> |
60599adc27b8
add lucene search options
Franklin Schmidt <fschmidt@gmail.com>
parents:
1327
diff
changeset
|
2732 Returns <code>x</code> as a float. |
60599adc27b8
add lucene search options
Franklin Schmidt <fschmidt@gmail.com>
parents:
1327
diff
changeset
|
2733 |
60599adc27b8
add lucene search options
Franklin Schmidt <fschmidt@gmail.com>
parents:
1327
diff
changeset
|
2734 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2735 <h4 heading><a name="Number.integer" href="#Number.integer"><code>Number.integer (x)</code></a></h4> |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2736 <p> |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2737 If the value <code>x</code> is convertible to an integer, |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2738 returns that integer. |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2739 Otherwise throws an error. |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2740 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2741 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2742 <h4 heading><a name="Number.long" href="#Number.long"><code>Number.long (x)</code></a></h4> |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2743 <p> |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2744 If the value <code>x</code> is convertible to an long, |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2745 returns that long. |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2746 Otherwise throws an error. |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2747 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2748 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2749 <h4 heading><a name="Number.long_to_string" href="#Number.long_to_string"><code>Number.long_to_string (i, radix)</code></a></h4> |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2750 <p> |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2751 Converts long value <code>i</code> to a string by calling <code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#toString(long,%20int)">Long.toString</a></code>. |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2752 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2753 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2754 <h4 heading><a name="Number.type" href="#Number.type"><code>Number.type (x)</code></a></h4> |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2755 <p> |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2756 Returns a string for the numeric type of <code>x</code>. Possible return values include "<code>integer</code>", "<code>long</code>", "<code>double</code>", and "<code>float</code>". |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2757 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2758 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2759 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2760 |
1327
b29eefad2111
website - improve docs
Franklin Schmidt <fschmidt@gmail.com>
parents:
1326
diff
changeset
|
2761 <h3 heading><a name="math_lib" href="#math_lib">Mathematical Functions</a></h3> |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2762 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2763 <p> |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2764 Include this library by: |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2765 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2766 <pre> |
693
ca169567ce07
module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents:
685
diff
changeset
|
2767 local Math = require "luan:Math.luan" |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2768 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2769 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2770 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2771 This library provides basic mathematical functions. |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2772 It provides all its functions and constants inside the table <code>Math</code>. |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2773 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2774 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2775 <h4 heading><a name="Math.abs" href="#Math.abs"><code>Math.abs (x)</code></a></h4> |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2776 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2777 <p> |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2778 Returns the absolute value of <code>x</code>. |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2779 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2780 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2781 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2782 <h4 heading><a name="Math.acos" href="#Math.acos"><code>Math.acos (x)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2783 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2784 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2785 Returns the arc cosine of <code>x</code> (in radians). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2786 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2787 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2788 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2789 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2790 <h4 heading><a name="Math.asin" href="#Math.asin"><code>Math.asin (x)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2791 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2792 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2793 Returns the arc sine of <code>x</code> (in radians). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2794 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2795 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2796 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2797 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2798 <h4 heading><a name="Math.atan" href="#Math.atan"><code>Math.atan (y, x)</code></a></h4> |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2799 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2800 <p> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2801 Returns the arc tangent of <code>y/x</code> (in radians), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2802 but uses the signs of both parameters to find the |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2803 quadrant of the result. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2804 (It also handles correctly the case of <code>x</code> being zero.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2805 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2806 |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2807 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2808 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2809 <h4 heading><a name="Math.ceil" href="#Math.ceil"><code>Math.ceil (x)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2810 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2811 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2812 Returns the smallest integral value larger than or equal to <code>x</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2813 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2814 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2815 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2816 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2817 <h4 heading><a name="Math.cos" href="#Math.cos"><code>Math.cos (x)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2818 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2819 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2820 Returns the cosine of <code>x</code> (assumed to be in radians). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2821 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2822 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2823 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2824 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2825 <h4 heading><a name="Math.deg" href="#Math.deg"><code>Math.deg (x)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2826 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2827 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2828 Converts the angle <code>x</code> from radians to degrees. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2829 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2830 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2831 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2832 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2833 <h4 heading><a name="Math.exp" href="#Math.exp"><code>Math.exp (x)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2834 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2835 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2836 Returns the value <em>e<sup>x</sup></em> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2837 (where <code>e</code> is the base of natural logarithms). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2838 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2839 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2840 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2841 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2842 <h4 heading><a name="Math.floor" href="#Math.floor"><code>Math.floor (x)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2843 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2844 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2845 Returns the largest integral value smaller than or equal to <code>x</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2846 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2847 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2848 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2849 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2850 <h4 heading><a name="Math.fmod" href="#Math.fmod"><code>Math.fmod (x, y)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2851 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2852 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2853 Returns the remainder of the division of <code>x</code> by <code>y</code> |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2854 that rounds the quotient towards zero. |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2855 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2856 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2857 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2858 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2859 <h4 heading><a name="Math.huge" href="#Math.huge"><code>Math.huge</code></a></h4> |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2860 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2861 <p> |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2862 A value larger than any other numerical value. |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2863 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2864 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2865 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2866 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2867 <h4 heading><a name="Math.log" href="#Math.log"><code>Math.log (x [, base])</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2868 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2869 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2870 Returns the logarithm of <code>x</code> in the given base. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2871 The default for <code>base</code> is <em>e</em> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2872 (so that the function returns the natural logarithm of <code>x</code>). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2873 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2874 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2875 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2876 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2877 <h4 heading><a name="Math.max" href="#Math.max"><code>Math.max (x, ···)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2878 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2879 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2880 Returns the argument with the maximum value, |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2881 according to the Lua operator <code><</code>. |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2882 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2883 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2884 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2885 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2886 <h4 heading><a name="Math.max_integer" href="#Math.max_integer"><code>Math.max_integer</code></a></h4> |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2887 <p> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2888 An integer with the maximum value for an integer. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2889 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2890 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2891 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2892 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2893 <h4 heading><a name="Math.min" href="#Math.min"><code>Math.min (x, ···)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2894 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2895 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2896 Returns the argument with the minimum value, |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2897 according to the Lua operator <code><</code>. |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2898 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2899 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2900 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2901 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2902 <h4 heading><a name="Math.min_integer" href="#Math.min_integer"><code>Math.min_integer</code></a></h4> |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2903 <p> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2904 An integer with the minimum value for an integer. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2905 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2906 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2907 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2908 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2909 <h4 heading><a name="Math.modf" href="#Math.modf"><code>Math.modf (x)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2910 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2911 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2912 Returns the integral part of <code>x</code> and the fractional part of <code>x</code>. |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2913 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2914 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2915 |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2916 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2917 <h4 heading><a name="Math.pi" href="#Math.pi"><code>Math.pi</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2918 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2919 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2920 The value of <em>π</em>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2921 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2922 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2923 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2924 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2925 <h4 heading><a name="Math.rad" href="#Math.rad"><code>Math.rad (x)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2926 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2927 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2928 Converts the angle <code>x</code> from degrees to radians. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2929 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2930 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2931 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2932 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2933 <h4 heading><a name="Math.random" href="#Math.random"><code>Math.random ([m [, n])</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2934 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2935 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2936 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2937 When called without arguments, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2938 returns a pseudo-random float with uniform distribution |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2939 in the range <em>[0,1)</em>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2940 When called with two integers <code>m</code> and <code>n</code>, |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2941 <code>Math.random</code> returns a pseudo-random integer |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2942 with uniform distribution in the range <em>[m, n]</em>. |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2943 (The value <em>m-n</em> cannot be negative and must fit in a Luan integer.) |
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2944 The call <code>Math.random(n)</code> is equivalent to <code>Math.random(1,n)</code>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2945 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2946 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2947 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2948 This function is an interface to the underling |
566
90b93790c544
Number and Math documentation and minor changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
565
diff
changeset
|
2949 pseudo-random generator function provided by Java. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2950 No guarantees can be given for its statistical properties. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2951 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2952 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2953 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2954 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2955 <h4 heading><a name="Math.sin" href="#Math.sin"><code>Math.sin (x)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2956 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2957 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2958 Returns the sine of <code>x</code> (assumed to be in radians). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2959 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2960 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2961 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2962 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2963 <h4 heading><a name="Math.sqrt" href="#Math.sqrt"><code>Math.sqrt (x)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2964 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2965 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2966 Returns the square root of <code>x</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2967 (You can also use the expression <code>x^0.5</code> to compute this value.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2968 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2969 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2970 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2971 |
642
c4216a583de4
add links to functions in manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
629
diff
changeset
|
2972 <h4 heading><a name="Math.tan" href="#Math.tan"><code>Math.tan (x)</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2973 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2974 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2975 Returns the tangent of <code>x</code> (assumed to be in radians). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2976 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2977 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2978 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2979 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2980 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2981 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2982 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2983 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2984 <h2>6.8 – <a name="6.8">Input and Output Facilities</a></h2> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2985 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2986 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2987 The I/O library provides two different styles for file manipulation. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2988 The first one uses implicit file handles; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2989 that is, there are operations to set a default input file and a |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2990 default output file, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2991 and all input/output operations are over these default files. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2992 The second style uses explicit file handles. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2993 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2994 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2995 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2996 When using implicit file handles, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2997 all operations are supplied by table <a name="pdf-io"><code>io</code></a>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2998 When using explicit file handles, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2999 the operation <a href="#pdf-io.open"><code>io.open</code></a> returns a file handle |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3000 and then all operations are supplied as methods of the file handle. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3001 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3002 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3003 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3004 The table <code>io</code> also provides |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3005 three predefined file handles with their usual meanings from C: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3006 <a name="pdf-io.stdin"><code>io.stdin</code></a>, <a name="pdf-io.stdout"><code>io.stdout</code></a>, and <a name="pdf-io.stderr"><code>io.stderr</code></a>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3007 The I/O library never closes these files. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3008 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3009 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3010 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3011 Unless otherwise stated, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3012 all I/O functions return <b>nil</b> on failure |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3013 (plus an error message as a second result and |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3014 a system-dependent error code as a third result) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3015 and some value different from <b>nil</b> on success. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3016 On non-POSIX systems, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3017 the computation of the error message and error code |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3018 in case of errors |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3019 may be not thread safe, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3020 because they rely on the global C variable <code>errno</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3021 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3022 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3023 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3024 <hr><h3><a name="pdf-io.close"><code>io.close ([file])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3025 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3026 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3027 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3028 Equivalent to <code>file:close()</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3029 Without a <code>file</code>, closes the default output file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3030 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3031 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3032 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3033 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3034 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3035 <hr><h3><a name="pdf-io.flush"><code>io.flush ()</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3036 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3037 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3038 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3039 Equivalent to <code>io.output():flush()</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3040 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3041 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3042 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3043 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3044 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3045 <hr><h3><a name="pdf-io.input"><code>io.input ([file])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3046 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3047 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3048 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3049 When called with a file name, it opens the named file (in text mode), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3050 and sets its handle as the default input file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3051 When called with a file handle, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3052 it simply sets this file handle as the default input file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3053 When called without parameters, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3054 it returns the current default input file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3055 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3056 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3057 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3058 In case of errors this function raises the error, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3059 instead of returning an error code. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3060 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3061 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3062 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3063 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3064 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3065 <hr><h3><a name="pdf-io.lines"><code>io.lines ([filename ···])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3066 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3067 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3068 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3069 Opens the given file name in read mode |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3070 and returns an iterator function that |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3071 works like <code>file:lines(···)</code> over the opened file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3072 When the iterator function detects the end of file, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3073 it returns no values (to finish the loop) and automatically closes the file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3074 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3075 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3076 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3077 The call <code>io.lines()</code> (with no file name) is equivalent |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3078 to <code>io.input():lines("*l")</code>; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3079 that is, it iterates over the lines of the default input file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3080 In this case it does not close the file when the loop ends. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3081 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3082 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3083 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3084 In case of errors this function raises the error, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3085 instead of returning an error code. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3086 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3087 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3088 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3089 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3090 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3091 <hr><h3><a name="pdf-io.open"><code>io.open (filename [, mode])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3092 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3093 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3094 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3095 This function opens a file, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3096 in the mode specified in the string <code>mode</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3097 It returns a new file handle, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3098 or, in case of errors, <b>nil</b> plus an error message. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3099 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3100 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3101 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3102 The <code>mode</code> string can be any of the following: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3103 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3104 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3105 <li><b>"<code>r</code>": </b> read mode (the default);</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3106 <li><b>"<code>w</code>": </b> write mode;</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3107 <li><b>"<code>a</code>": </b> append mode;</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3108 <li><b>"<code>r+</code>": </b> update mode, all previous data is preserved;</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3109 <li><b>"<code>w+</code>": </b> update mode, all previous data is erased;</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3110 <li><b>"<code>a+</code>": </b> append update mode, previous data is preserved, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3111 writing is only allowed at the end of file.</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3112 </ul><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3113 The <code>mode</code> string can also have a '<code>b</code>' at the end, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3114 which is needed in some systems to open the file in binary mode. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3115 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3116 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3117 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3118 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3119 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3120 <hr><h3><a name="pdf-io.output"><code>io.output ([file])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3121 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3122 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3123 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3124 Similar to <a href="#pdf-io.input"><code>io.input</code></a>, but operates over the default output file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3125 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3126 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3127 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3128 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3129 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3130 <hr><h3><a name="pdf-io.popen"><code>io.popen (prog [, mode])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3131 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3132 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3133 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3134 This function is system dependent and is not available |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3135 on all platforms. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3136 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3137 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3138 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3139 Starts program <code>prog</code> in a separated process and returns |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3140 a file handle that you can use to read data from this program |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3141 (if <code>mode</code> is <code>"r"</code>, the default) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3142 or to write data to this program |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3143 (if <code>mode</code> is <code>"w"</code>). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3144 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3145 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3146 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3147 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3148 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3149 <hr><h3><a name="pdf-io.read"><code>io.read (···)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3150 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3151 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3152 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3153 Equivalent to <code>io.input():read(···)</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3154 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3155 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3156 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3157 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3158 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3159 <hr><h3><a name="pdf-io.tmpfile"><code>io.tmpfile ()</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3160 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3161 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3162 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3163 Returns a handle for a temporary file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3164 This file is opened in update mode |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3165 and it is automatically removed when the program ends. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3166 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3167 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3168 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3169 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3170 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3171 <hr><h3><a name="pdf-io.type"><code>io.type (obj)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3172 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3173 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3174 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3175 Checks whether <code>obj</code> is a valid file handle. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3176 Returns the string <code>"file"</code> if <code>obj</code> is an open file handle, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3177 <code>"closed file"</code> if <code>obj</code> is a closed file handle, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3178 or <b>nil</b> if <code>obj</code> is not a file handle. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3179 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3180 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3181 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3182 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3183 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3184 <hr><h3><a name="pdf-io.write"><code>io.write (···)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3185 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3186 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3187 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3188 Equivalent to <code>io.output():write(···)</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3189 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3190 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3191 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3192 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3193 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3194 <hr><h3><a name="pdf-file:close"><code>file:close ()</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3195 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3196 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3197 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3198 Closes <code>file</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3199 Note that files are automatically closed when |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3200 their handles are garbage collected, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3201 but that takes an unpredictable amount of time to happen. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3202 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3203 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3204 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3205 When closing a file handle created with <a href="#pdf-io.popen"><code>io.popen</code></a>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3206 <a href="#pdf-file:close"><code>file:close</code></a> returns the same values |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3207 returned by <a href="#pdf-os.execute"><code>os.execute</code></a>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3208 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3209 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3210 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3211 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3212 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3213 <hr><h3><a name="pdf-file:flush"><code>file:flush ()</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3214 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3215 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3216 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3217 Saves any written data to <code>file</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3218 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3219 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3220 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3221 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3222 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3223 <hr><h3><a name="pdf-file:lines"><code>file:lines (···)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3224 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3225 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3226 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3227 Returns an iterator function that, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3228 each time it is called, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3229 reads the file according to the given formats. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3230 When no format is given, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3231 uses "<code>l</code>" as a default. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3232 As an example, the construction |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3233 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3234 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3235 for c in file:lines(1) do <em>body</em> end |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3236 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3237 will iterate over all characters of the file, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3238 starting at the current position. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3239 Unlike <a href="#pdf-io.lines"><code>io.lines</code></a>, this function does not close the file |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3240 when the loop ends. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3241 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3242 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3243 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3244 In case of errors this function raises the error, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3245 instead of returning an error code. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3246 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3247 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3248 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3249 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3250 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3251 <hr><h3><a name="pdf-file:read"><code>file:read (···)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3252 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3253 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3254 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3255 Reads the file <code>file</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3256 according to the given formats, which specify what to read. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3257 For each format, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3258 the function returns a string or a number with the characters read, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3259 or <b>nil</b> if it cannot read data with the specified format. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3260 (In this latter case, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3261 the function does not read subsequent formats.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3262 When called without formats, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3263 it uses a default format that reads the next line |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3264 (see below). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3265 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3266 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3267 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3268 The available formats are |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3269 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3270 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3271 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3272 <li><b>"<code>n</code>": </b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3273 reads a numeral and returns it as a float or an integer, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3274 following the lexical conventions of Lua. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3275 (The numeral may have leading spaces and a sign.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3276 This format always reads the longest input sequence that |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3277 is a valid prefix for a number; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3278 if that prefix does not form a valid number |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3279 (e.g., an empty string, "<code>0x</code>", or "<code>3.4e-</code>"), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3280 it is discarded and the function returns <b>nil</b>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3281 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3282 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3283 <li><b>"<code>i</code>": </b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3284 reads an integral number and returns it as an integer. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3285 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3286 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3287 <li><b>"<code>a</code>": </b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3288 reads the whole file, starting at the current position. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3289 On end of file, it returns the empty string. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3290 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3291 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3292 <li><b>"<code>l</code>": </b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3293 reads the next line skipping the end of line, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3294 returning <b>nil</b> on end of file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3295 This is the default format. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3296 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3297 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3298 <li><b>"<code>L</code>": </b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3299 reads the next line keeping the end-of-line character (if present), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3300 returning <b>nil</b> on end of file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3301 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3302 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3303 <li><b><em>number</em>: </b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3304 reads a string with up to this number of bytes, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3305 returning <b>nil</b> on end of file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3306 If <code>number</code> is zero, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3307 it reads nothing and returns an empty string, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3308 or <b>nil</b> on end of file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3309 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3310 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3311 </ul><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3312 The formats "<code>l</code>" and "<code>L</code>" should be used only for text files. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3313 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3314 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3315 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3316 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3317 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3318 <hr><h3><a name="pdf-file:seek"><code>file:seek ([whence [, offset]])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3319 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3320 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3321 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3322 Sets and gets the file position, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3323 measured from the beginning of the file, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3324 to the position given by <code>offset</code> plus a base |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3325 specified by the string <code>whence</code>, as follows: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3326 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3327 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3328 <li><b>"<code>set</code>": </b> base is position 0 (beginning of the file);</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3329 <li><b>"<code>cur</code>": </b> base is current position;</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3330 <li><b>"<code>end</code>": </b> base is end of file;</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3331 </ul><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3332 In case of success, <code>seek</code> returns the final file position, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3333 measured in bytes from the beginning of the file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3334 If <code>seek</code> fails, it returns <b>nil</b>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3335 plus a string describing the error. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3336 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3337 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3338 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3339 The default value for <code>whence</code> is <code>"cur"</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3340 and for <code>offset</code> is 0. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3341 Therefore, the call <code>file:seek()</code> returns the current |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3342 file position, without changing it; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3343 the call <code>file:seek("set")</code> sets the position to the |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3344 beginning of the file (and returns 0); |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3345 and the call <code>file:seek("end")</code> sets the position to the |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3346 end of the file, and returns its size. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3347 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3348 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3349 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3350 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3351 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3352 <hr><h3><a name="pdf-file:setvbuf"><code>file:setvbuf (mode [, size])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3353 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3354 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3355 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3356 Sets the buffering mode for an output file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3357 There are three available modes: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3358 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3359 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3360 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3361 <li><b>"<code>no</code>": </b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3362 no buffering; the result of any output operation appears immediately. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3363 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3364 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3365 <li><b>"<code>full</code>": </b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3366 full buffering; output operation is performed only |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3367 when the buffer is full or when |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3368 you explicitly <code>flush</code> the file (see <a href="#pdf-io.flush"><code>io.flush</code></a>). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3369 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3370 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3371 <li><b>"<code>line</code>": </b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3372 line buffering; output is buffered until a newline is output |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3373 or there is any input from some special files |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3374 (such as a terminal device). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3375 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3376 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3377 </ul><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3378 For the last two cases, <code>size</code> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3379 specifies the size of the buffer, in bytes. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3380 The default is an appropriate size. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3381 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3382 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3383 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3384 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3385 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3386 <hr><h3><a name="pdf-file:write"><code>file:write (···)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3387 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3388 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3389 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3390 Writes the value of each of its arguments to <code>file</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3391 The arguments must be strings or numbers. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3392 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3393 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3394 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3395 In case of success, this function returns <code>file</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3396 Otherwise it returns <b>nil</b> plus a string describing the error. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3397 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3398 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3399 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3400 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3401 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3402 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3403 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3404 <h2>6.9 – <a name="6.9">Operating System Facilities</a></h2> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3405 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3406 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3407 This library is implemented through table <a name="pdf-os"><code>os</code></a>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3408 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3409 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3410 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3411 <hr><h3><a name="pdf-os.clock"><code>os.clock ()</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3412 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3413 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3414 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3415 Returns an approximation of the amount in seconds of CPU time |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3416 used by the program. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3417 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3418 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3419 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3420 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3421 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3422 <hr><h3><a name="pdf-os.date"><code>os.date ([format [, time]])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3423 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3424 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3425 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3426 Returns a string or a table containing date and time, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3427 formatted according to the given string <code>format</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3428 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3429 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3430 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3431 If the <code>time</code> argument is present, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3432 this is the time to be formatted |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3433 (see the <a href="#pdf-os.time"><code>os.time</code></a> function for a description of this value). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3434 Otherwise, <code>date</code> formats the current time. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3435 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3436 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3437 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3438 If <code>format</code> starts with '<code>!</code>', |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3439 then the date is formatted in Coordinated Universal Time. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3440 After this optional character, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3441 if <code>format</code> is the string "<code>*t</code>", |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3442 then <code>date</code> returns a table with the following fields: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3443 <code>year</code> (four digits), <code>month</code> (1–12), <code>day</code> (1–31), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3444 <code>hour</code> (0–23), <code>min</code> (0–59), <code>sec</code> (0–61), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3445 <code>wday</code> (weekday, Sunday is 1), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3446 <code>yday</code> (day of the year), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3447 and <code>isdst</code> (daylight saving flag, a boolean). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3448 This last field may be absent |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3449 if the information is not available. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3450 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3451 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3452 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3453 If <code>format</code> is not "<code>*t</code>", |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3454 then <code>date</code> returns the date as a string, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3455 formatted according to the same rules as the ISO C function <code>strftime</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3456 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3457 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3458 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3459 When called without arguments, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3460 <code>date</code> returns a reasonable date and time representation that depends on |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3461 the host system and on the current locale |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3462 (that is, <code>os.date()</code> is equivalent to <code>os.date("%c")</code>). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3463 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3464 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3465 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3466 On non-POSIX systems, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3467 this function may be not thread safe |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3468 because of its reliance on C function <code>gmtime</code> and C function <code>localtime</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3469 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3470 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3471 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3472 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3473 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3474 <hr><h3><a name="pdf-os.difftime"><code>os.difftime (t2, t1)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3475 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3476 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3477 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3478 Returns the difference, in seconds, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3479 from time <code>t1</code> to time <code>t2</code> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3480 (where the times are values returned by <a href="#pdf-os.time"><code>os.time</code></a>). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3481 In POSIX, Windows, and some other systems, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3482 this value is exactly <code>t2</code><em>-</em><code>t1</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3483 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3484 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3485 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3486 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3487 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3488 <hr><h3><a name="pdf-os.execute"><code>os.execute ([command])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3489 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3490 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3491 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3492 This function is equivalent to the ISO C function <code>system</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3493 It passes <code>command</code> to be executed by an operating system shell. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3494 Its first result is <b>true</b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3495 if the command terminated successfully, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3496 or <b>nil</b> otherwise. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3497 After this first result |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3498 the function returns a string plus a number, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3499 as follows: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3500 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3501 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3502 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3503 <li><b>"<code>exit</code>": </b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3504 the command terminated normally; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3505 the following number is the exit status of the command. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3506 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3507 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3508 <li><b>"<code>signal</code>": </b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3509 the command was terminated by a signal; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3510 the following number is the signal that terminated the command. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3511 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3512 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3513 </ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3514 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3515 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3516 When called without a <code>command</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3517 <code>os.execute</code> returns a boolean that is true if a shell is available. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3518 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3519 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3520 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3521 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3522 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3523 <hr><h3><a name="pdf-os.exit"><code>os.exit ([code [, close]])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3524 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3525 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3526 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3527 Calls the ISO C function <code>exit</code> to terminate the host program. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3528 If <code>code</code> is <b>true</b>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3529 the returned status is <code>EXIT_SUCCESS</code>; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3530 if <code>code</code> is <b>false</b>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3531 the returned status is <code>EXIT_FAILURE</code>; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3532 if <code>code</code> is a number, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3533 the returned status is this number. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3534 The default value for <code>code</code> is <b>true</b>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3535 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3536 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3537 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3538 If the optional second argument <code>close</code> is true, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3539 closes the Lua state before exiting. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3540 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3541 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3542 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3543 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3544 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3545 <hr><h3><a name="pdf-os.getenv"><code>os.getenv (varname)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3546 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3547 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3548 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3549 Returns the value of the process environment variable <code>varname</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3550 or <b>nil</b> if the variable is not defined. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3551 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3552 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3553 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3554 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3555 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3556 <hr><h3><a name="pdf-os.remove"><code>os.remove (filename)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3557 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3558 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3559 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3560 Deletes the file (or empty directory, on POSIX systems) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3561 with the given name. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3562 If this function fails, it returns <b>nil</b>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3563 plus a string describing the error and the error code. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3564 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3565 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3566 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3567 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3568 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3569 <hr><h3><a name="pdf-os.rename"><code>os.rename (oldname, newname)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3570 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3571 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3572 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3573 Renames file or directory named <code>oldname</code> to <code>newname</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3574 If this function fails, it returns <b>nil</b>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3575 plus a string describing the error and the error code. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3576 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3577 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3578 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3579 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3580 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3581 <hr><h3><a name="pdf-os.setlocale"><code>os.setlocale (locale [, category])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3582 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3583 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3584 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3585 Sets the current locale of the program. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3586 <code>locale</code> is a system-dependent string specifying a locale; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3587 <code>category</code> is an optional string describing which category to change: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3588 <code>"all"</code>, <code>"collate"</code>, <code>"ctype"</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3589 <code>"monetary"</code>, <code>"numeric"</code>, or <code>"time"</code>; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3590 the default category is <code>"all"</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3591 The function returns the name of the new locale, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3592 or <b>nil</b> if the request cannot be honored. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3593 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3594 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3595 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3596 If <code>locale</code> is the empty string, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3597 the current locale is set to an implementation-defined native locale. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3598 If <code>locale</code> is the string "<code>C</code>", |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3599 the current locale is set to the standard C locale. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3600 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3601 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3602 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3603 When called with <b>nil</b> as the first argument, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3604 this function only returns the name of the current locale |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3605 for the given category. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3606 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3607 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3608 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3609 This function may be not thread safe |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3610 because of its reliance on C function <code>setlocale</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3611 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3612 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3613 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3614 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3615 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3616 <hr><h3><a name="pdf-os.time"><code>os.time ([table])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3617 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3618 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3619 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3620 Returns the current time when called without arguments, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3621 or a time representing the date and time specified by the given table. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3622 This table must have fields <code>year</code>, <code>month</code>, and <code>day</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3623 and may have fields |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3624 <code>hour</code> (default is 12), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3625 <code>min</code> (default is 0), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3626 <code>sec</code> (default is 0), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3627 and <code>isdst</code> (default is <b>nil</b>). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3628 For a description of these fields, see the <a href="#pdf-os.date"><code>os.date</code></a> function. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3629 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3630 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3631 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3632 The returned value is a number, whose meaning depends on your system. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3633 In POSIX, Windows, and some other systems, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3634 this number counts the number |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3635 of seconds since some given start time (the "epoch"). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3636 In other systems, the meaning is not specified, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3637 and the number returned by <code>time</code> can be used only as an argument to |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3638 <a href="#pdf-os.date"><code>os.date</code></a> and <a href="#pdf-os.difftime"><code>os.difftime</code></a>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3639 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3640 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3641 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3642 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3643 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3644 <hr><h3><a name="pdf-os.tmpname"><code>os.tmpname ()</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3645 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3646 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3647 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3648 Returns a string with a file name that can |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3649 be used for a temporary file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3650 The file must be explicitly opened before its use |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3651 and explicitly removed when no longer needed. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3652 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3653 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3654 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3655 On POSIX systems, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3656 this function also creates a file with that name, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3657 to avoid security risks. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3658 (Someone else might create the file with wrong permissions |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3659 in the time between getting the name and creating the file.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3660 You still have to open the file to use it |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3661 and to remove it (even if you do not use it). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3662 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3663 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3664 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3665 When possible, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3666 you may prefer to use <a href="#pdf-io.tmpfile"><code>io.tmpfile</code></a>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3667 which automatically removes the file when the program ends. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3668 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3669 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3670 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3671 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3672 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3673 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3674 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3675 <h2>6.10 – <a name="6.10">The Debug Library</a></h2> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3676 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3677 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3678 This library provides |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3679 the functionality of the debug interface (<a href="#4.9">§4.9</a>) to Lua programs. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3680 You should exert care when using this library. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3681 Several of its functions |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3682 violate basic assumptions about Lua code |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3683 (e.g., that variables local to a function |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3684 cannot be accessed from outside; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3685 that userdata metatables cannot be changed by Lua code; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3686 that Lua programs do not crash) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3687 and therefore can compromise otherwise secure code. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3688 Moreover, some functions in this library may be slow. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3689 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3690 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3691 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3692 All functions in this library are provided |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3693 inside the <a name="pdf-debug"><code>debug</code></a> table. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3694 All functions that operate over a thread |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3695 have an optional first argument which is the |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3696 thread to operate over. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3697 The default is always the current thread. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3698 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3699 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3700 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3701 <hr><h3><a name="pdf-debug.debug"><code>debug.debug ()</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3702 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3703 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3704 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3705 Enters an interactive mode with the user, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3706 running each string that the user enters. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3707 Using simple commands and other debug facilities, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3708 the user can inspect global and local variables, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3709 change their values, evaluate expressions, and so on. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3710 A line containing only the word <code>cont</code> finishes this function, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3711 so that the caller continues its execution. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3712 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3713 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3714 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3715 Note that commands for <code>debug.debug</code> are not lexically nested |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3716 within any function and so have no direct access to local variables. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3717 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3718 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3719 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3720 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3721 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3722 <hr><h3><a name="pdf-debug.gethook"><code>debug.gethook ([thread])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3723 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3724 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3725 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3726 Returns the current hook settings of the thread, as three values: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3727 the current hook function, the current hook mask, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3728 and the current hook count |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3729 (as set by the <a href="#pdf-debug.sethook"><code>debug.sethook</code></a> function). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3730 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3731 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3732 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3733 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3734 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3735 <hr><h3><a name="pdf-debug.getinfo"><code>debug.getinfo ([thread,] f [, what])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3736 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3737 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3738 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3739 Returns a table with information about a function. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3740 You can give the function directly |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3741 or you can give a number as the value of <code>f</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3742 which means the function running at level <code>f</code> of the call stack |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3743 of the given thread: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3744 level 0 is the current function (<code>getinfo</code> itself); |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3745 level 1 is the function that called <code>getinfo</code> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3746 (except for tail calls, which do not count on the stack); |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3747 and so on. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3748 If <code>f</code> is a number larger than the number of active functions, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3749 then <code>getinfo</code> returns <b>nil</b>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3750 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3751 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3752 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3753 The returned table can contain all the fields returned by <a href="#lua_getinfo"><code>lua_getinfo</code></a>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3754 with the string <code>what</code> describing which fields to fill in. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3755 The default for <code>what</code> is to get all information available, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3756 except the table of valid lines. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3757 If present, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3758 the option '<code>f</code>' |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3759 adds a field named <code>func</code> with the function itself. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3760 If present, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3761 the option '<code>L</code>' |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3762 adds a field named <code>activelines</code> with the table of |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3763 valid lines. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3764 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3765 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3766 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3767 For instance, the expression <code>debug.getinfo(1,"n").name</code> returns |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3768 a table with a name for the current function, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3769 if a reasonable name can be found, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3770 and the expression <code>debug.getinfo(print)</code> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3771 returns a table with all available information |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3772 about the <a href="#pdf-print"><code>print</code></a> function. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3773 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3774 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3775 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3776 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3777 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3778 <hr><h3><a name="pdf-debug.getlocal"><code>debug.getlocal ([thread,] f, local)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3779 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3780 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3781 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3782 This function returns the name and the value of the local variable |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3783 with index <code>local</code> of the function at level <code>f</code> of the stack. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3784 This function accesses not only explicit local variables, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3785 but also parameters, temporaries, etc. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3786 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3787 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3788 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3789 The first parameter or local variable has index 1, and so on, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3790 following the order that they are declared in the code, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3791 counting only the variables that are active |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3792 in the current scope of the function. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3793 Negative indices refer to vararg parameters; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3794 -1 is the first vararg parameter. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3795 The function returns <b>nil</b> if there is no variable with the given index, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3796 and raises an error when called with a level out of range. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3797 (You can call <a href="#pdf-debug.getinfo"><code>debug.getinfo</code></a> to check whether the level is valid.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3798 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3799 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3800 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3801 Variable names starting with '<code>(</code>' (open parenthesis) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3802 represent variables with no known names |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3803 (internal variables such as loop control variables, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3804 and variables from chunks saved without debug information). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3805 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3806 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3807 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3808 The parameter <code>f</code> may also be a function. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3809 In that case, <code>getlocal</code> returns only the name of function parameters. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3810 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3811 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3812 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3813 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3814 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3815 <hr><h3><a name="pdf-debug.getmetatable"><code>debug.getmetatable (value)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3816 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3817 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3818 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3819 Returns the metatable of the given <code>value</code> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3820 or <b>nil</b> if it does not have a metatable. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3821 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3822 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3823 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3824 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3825 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3826 <hr><h3><a name="pdf-debug.getregistry"><code>debug.getregistry ()</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3827 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3828 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3829 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3830 Returns the registry table (see <a href="#4.5">§4.5</a>). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3831 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3832 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3833 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3834 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3835 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3836 <hr><h3><a name="pdf-debug.getupvalue"><code>debug.getupvalue (f, up)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3837 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3838 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3839 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3840 This function returns the name and the value of the upvalue |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3841 with index <code>up</code> of the function <code>f</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3842 The function returns <b>nil</b> if there is no upvalue with the given index. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3843 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3844 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3845 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3846 Variable names starting with '<code>(</code>' (open parenthesis) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3847 represent variables with no known names |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3848 (variables from chunks saved without debug information). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3849 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3850 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3851 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3852 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3853 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3854 <hr><h3><a name="pdf-debug.getuservalue"><code>debug.getuservalue (u)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3855 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3856 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3857 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3858 Returns the Lua value associated to <code>u</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3859 If <code>u</code> is not a userdata, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3860 returns <b>nil</b>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3861 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3862 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3863 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3864 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3865 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3866 <hr><h3><a name="pdf-debug.sethook"><code>debug.sethook ([thread,] hook, mask [, count])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3867 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3868 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3869 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3870 Sets the given function as a hook. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3871 The string <code>mask</code> and the number <code>count</code> describe |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3872 when the hook will be called. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3873 The string mask may have any combination of the following characters, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3874 with the given meaning: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3875 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3876 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3877 <li><b>'<code>c</code>': </b> the hook is called every time Lua calls a function;</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3878 <li><b>'<code>r</code>': </b> the hook is called every time Lua returns from a function;</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3879 <li><b>'<code>l</code>': </b> the hook is called every time Lua enters a new line of code.</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3880 </ul><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3881 Moreover, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3882 with a <code>count</code> different from zero, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3883 the hook is called also after every <code>count</code> instructions. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3884 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3885 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3886 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3887 When called without arguments, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3888 <a href="#pdf-debug.sethook"><code>debug.sethook</code></a> turns off the hook. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3889 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3890 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3891 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3892 When the hook is called, its first parameter is a string |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3893 describing the event that has triggered its call: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3894 <code>"call"</code> (or <code>"tail call"</code>), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3895 <code>"return"</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3896 <code>"line"</code>, and <code>"count"</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3897 For line events, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3898 the hook also gets the new line number as its second parameter. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3899 Inside a hook, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3900 you can call <code>getinfo</code> with level 2 to get more information about |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3901 the running function |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3902 (level 0 is the <code>getinfo</code> function, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3903 and level 1 is the hook function). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3904 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3905 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3906 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3907 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3908 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3909 <hr><h3><a name="pdf-debug.setlocal"><code>debug.setlocal ([thread,] level, local, value)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3910 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3911 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3912 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3913 This function assigns the value <code>value</code> to the local variable |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3914 with index <code>local</code> of the function at level <code>level</code> of the stack. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3915 The function returns <b>nil</b> if there is no local |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3916 variable with the given index, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3917 and raises an error when called with a <code>level</code> out of range. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3918 (You can call <code>getinfo</code> to check whether the level is valid.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3919 Otherwise, it returns the name of the local variable. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3920 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3921 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3922 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3923 See <a href="#pdf-debug.getlocal"><code>debug.getlocal</code></a> for more information about |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3924 variable indices and names. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3925 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3926 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3927 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3928 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3929 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3930 <hr><h3><a name="pdf-debug.setmetatable"><code>debug.setmetatable (value, table)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3931 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3932 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3933 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3934 Sets the metatable for the given <code>value</code> to the given <code>table</code> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3935 (which can be <b>nil</b>). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3936 Returns <code>value</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3937 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3938 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3939 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3940 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3941 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3942 <hr><h3><a name="pdf-debug.setupvalue"><code>debug.setupvalue (f, up, value)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3943 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3944 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3945 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3946 This function assigns the value <code>value</code> to the upvalue |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3947 with index <code>up</code> of the function <code>f</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3948 The function returns <b>nil</b> if there is no upvalue |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3949 with the given index. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3950 Otherwise, it returns the name of the upvalue. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3951 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3952 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3953 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3954 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3955 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3956 <hr><h3><a name="pdf-debug.setuservalue"><code>debug.setuservalue (udata, value)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3957 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3958 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3959 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3960 Sets the given <code>value</code> as |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3961 the Lua value associated to the given <code>udata</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3962 <code>udata</code> must be a full userdata. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3963 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3964 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3965 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3966 Returns <code>udata</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3967 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3968 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3969 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3970 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3971 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3972 <hr><h3><a name="pdf-debug.traceback"><code>debug.traceback ([thread,] [message [, level]])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3973 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3974 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3975 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3976 If <code>message</code> is present but is neither a string nor <b>nil</b>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3977 this function returns <code>message</code> without further processing. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3978 Otherwise, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3979 it returns a string with a traceback of the call stack. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3980 The optional <code>message</code> string is appended |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3981 at the beginning of the traceback. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3982 An optional <code>level</code> number tells at which level |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3983 to start the traceback |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3984 (default is 1, the function calling <code>traceback</code>). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3985 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3986 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3987 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3988 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3989 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3990 <hr><h3><a name="pdf-debug.upvalueid"><code>debug.upvalueid (f, n)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3991 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3992 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3993 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3994 Returns a unique identifier (as a light userdata) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3995 for the upvalue numbered <code>n</code> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3996 from the given function. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3997 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3998 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3999 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4000 These unique identifiers allow a program to check whether different |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4001 closures share upvalues. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4002 Lua closures that share an upvalue |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4003 (that is, that access a same external local variable) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4004 will return identical ids for those upvalue indices. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4005 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4006 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4007 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4008 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4009 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4010 <hr><h3><a name="pdf-debug.upvaluejoin"><code>debug.upvaluejoin (f1, n1, f2, n2)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4011 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4012 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4013 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4014 Make the <code>n1</code>-th upvalue of the Lua closure <code>f1</code> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4015 refer to the <code>n2</code>-th upvalue of the Lua closure <code>f2</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4016 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4017 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4018 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4019 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4020 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4021 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4022 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4023 <h1>7 – <a name="7">Lua Standalone</a></h1> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4024 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4025 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4026 Although Lua has been designed as an extension language, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4027 to be embedded in a host C program, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4028 it is also frequently used as a standalone language. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4029 An interpreter for Lua as a standalone language, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4030 called simply <code>lua</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4031 is provided with the standard distribution. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4032 The standalone interpreter includes |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4033 all standard libraries, including the debug library. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4034 Its usage is: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4035 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4036 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4037 lua [options] [script [args]] |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4038 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4039 The options are: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4040 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4041 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4042 <li><b><code>-e <em>stat</em></code>: </b> executes string <em>stat</em>;</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4043 <li><b><code>-l <em>mod</em></code>: </b> "requires" <em>mod</em>;</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4044 <li><b><code>-i</code>: </b> enters interactive mode after running <em>script</em>;</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4045 <li><b><code>-v</code>: </b> prints version information;</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4046 <li><b><code>-E</code>: </b> ignores environment variables;</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4047 <li><b><code>--</code>: </b> stops handling options;</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4048 <li><b><code>-</code>: </b> executes <code>stdin</code> as a file and stops handling options.</li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4049 </ul><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4050 After handling its options, <code>lua</code> runs the given <em>script</em>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4051 When called without arguments, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4052 <code>lua</code> behaves as <code>lua -v -i</code> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4053 when the standard input (<code>stdin</code>) is a terminal, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4054 and as <code>lua -</code> otherwise. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4055 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4056 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4057 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4058 When called without option <code>-E</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4059 the interpreter checks for an environment variable <a name="pdf-LUA_INIT_5_3"><code>LUA_INIT_5_3</code></a> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4060 (or <a name="pdf-LUA_INIT"><code>LUA_INIT</code></a> if the versioned name is not defined) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4061 before running any argument. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4062 If the variable content has the format <code>@<em>filename</em></code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4063 then <code>lua</code> executes the file. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4064 Otherwise, <code>lua</code> executes the string itself. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4065 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4066 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4067 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4068 When called with option <code>-E</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4069 besides ignoring <code>LUA_INIT</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4070 Lua also ignores |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4071 the values of <code>LUA_PATH</code> and <code>LUA_CPATH</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4072 setting the values of |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4073 <a href="#pdf-package.path"><code>package.path</code></a> and <a href="#pdf-package.cpath"><code>package.cpath</code></a> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4074 with the default paths defined in <code>luaconf.h</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4075 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4076 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4077 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4078 All options are handled in order, except <code>-i</code> and <code>-E</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4079 For instance, an invocation like |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4080 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4081 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4082 $ lua -e'a=1' -e 'print(a)' script.lua |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4083 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4084 will first set <code>a</code> to 1, then print the value of <code>a</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4085 and finally run the file <code>script.lua</code> with no arguments. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4086 (Here <code>$</code> is the shell prompt. Your prompt may be different.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4087 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4088 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4089 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4090 Before running any code, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4091 <code>lua</code> collects all command-line arguments |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4092 in a global table called <code>arg</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4093 The script name goes to index 0, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4094 the first argument after the script name goes to index 1, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4095 and so on. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4096 Any arguments before the script name |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4097 (that is, the interpreter name plus its options) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4098 go to negative indices. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4099 For instance, in the call |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4100 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4101 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4102 $ lua -la b.lua t1 t2 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4103 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4104 the table is like this: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4105 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4106 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4107 arg = { [-2] = "lua", [-1] = "-la", |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4108 [0] = "b.lua", |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4109 [1] = "t1", [2] = "t2" } |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4110 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4111 If there is no script in the call, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4112 the interpreter name goes to index 0, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4113 followed by the other arguments. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4114 For instance, the call |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4115 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4116 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4117 $ lua -e "print(arg[1])" |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4118 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4119 will print "<code>-e</code>". |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4120 If there is a script, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4121 the script is called with parameters |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4122 <code>arg[1]</code>, ···, <code>arg[#arg]</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4123 (Like all chunks in Lua, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4124 the script is compiled as a vararg function.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4125 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4126 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4127 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4128 In interactive mode, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4129 Lua repeatedly prompts and waits for a line. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4130 After reading a line, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4131 Lua first try to interpret the line as an expression. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4132 If it succeeds, it prints its value. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4133 Otherwise, it interprets the line as a statement. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4134 If you write an incomplete statement, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4135 the interpreter waits for its completion |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4136 by issuing a different prompt. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4137 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4138 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4139 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4140 In case of unprotected errors in the script, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4141 the interpreter reports the error to the standard error stream. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4142 If the error object is not a string but |
429
e3a6d9dbd694
rename __tostring to __to_string
Franklin Schmidt <fschmidt@gmail.com>
parents:
428
diff
changeset
|
4143 has a metamethod <code>__to_string</code>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4144 the interpreter calls this metamethod to produce the final message. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4145 Otherwise, the interpreter converts the error object to a string |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4146 and adds a stack traceback to it. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4147 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4148 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4149 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4150 When finishing normally, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4151 the interpreter closes its main Lua state |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4152 (see <a href="#lua_close"><code>lua_close</code></a>). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4153 The script can avoid this step by |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4154 calling <a href="#pdf-os.exit"><code>os.exit</code></a> to terminate. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4155 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4156 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4157 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4158 To allow the use of Lua as a |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4159 script interpreter in Unix systems, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4160 the standalone interpreter skips |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4161 the first line of a chunk if it starts with <code>#</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4162 Therefore, Lua scripts can be made into executable programs |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4163 by using <code>chmod +x</code> and the <code>#!</code> form, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4164 as in |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4165 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4166 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4167 #!/usr/local/bin/lua |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4168 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4169 (Of course, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4170 the location of the Lua interpreter may be different in your machine. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4171 If <code>lua</code> is in your <code>PATH</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4172 then |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4173 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4174 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4175 #!/usr/bin/env lua |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4176 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4177 is a more portable solution.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4178 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4179 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4180 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4181 <h1>8 – <a name="8">Incompatibilities with the Previous Version</a></h1> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4182 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4183 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4184 Here we list the incompatibilities that you may find when moving a program |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4185 from Lua 5.2 to Lua 5.3. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4186 You can avoid some incompatibilities by compiling Lua with |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4187 appropriate options (see file <code>luaconf.h</code>). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4188 However, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4189 all these compatibility options will be removed in the future. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4190 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4191 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4192 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4193 Lua versions can always change the C API in ways that |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4194 do not imply source-code changes in a program, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4195 such as the numeric values for constants |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4196 or the implementation of functions as macros. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4197 Therefore, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4198 you should not assume that binaries are compatible between |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4199 different Lua versions. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4200 Always recompile clients of the Lua API when |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4201 using a new version. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4202 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4203 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4204 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4205 Similarly, Lua versions can always change the internal representation |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4206 of precompiled chunks; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4207 precompiled chunks are not compatible between different Lua versions. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4208 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4209 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4210 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4211 The standard paths in the official distribution may |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4212 change between versions. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4213 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4214 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4215 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4216 <h2>8.1 – <a name="8.1">Changes in the Language</a></h2> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4217 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4218 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4219 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4220 The main difference between Lua 5.2 and Lua 5.3 is the |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4221 introduction of an integer subtype for numbers. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4222 Although this change should not affect "normal" computations, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4223 some computations |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4224 (mainly those that involve some kind of overflow) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4225 can give different results. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4226 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4227 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4228 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4229 You can fix these differences by forcing a number to be a float |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4230 (in Lua 5.2 all numbers were float), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4231 in particular writing constants with an ending <code>.0</code> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4232 or using <code>x = x + 0.0</code> to convert a variable. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4233 (This recommendation is only for a quick fix |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4234 for an occasional incompatibility; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4235 it is not a general guideline for good programming. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4236 For good programming, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4237 use floats where you need floats |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4238 and integers where you need integers.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4239 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4240 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4241 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4242 The conversion of a float to a string now adds a <code>.0</code> suffix |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4243 to the result if it looks like an integer. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4244 (For instance, the float 2.0 will be printed as <code>2.0</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4245 not as <code>2</code>.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4246 You should always use an explicit format |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4247 when you need a specific format for numbers. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4248 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4249 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4250 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4251 (Formally this is not an incompatibility, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4252 because Lua does not specify how numbers are formatted as strings, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4253 but some programs assumed a specific format.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4254 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4255 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4256 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4257 The generational mode for the garbage collector was removed. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4258 (It was an experimental feature in Lua 5.2.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4259 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4260 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4261 </ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4262 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4263 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4264 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4265 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4266 <h2>8.2 – <a name="8.2">Changes in the Libraries</a></h2> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4267 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4268 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4269 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4270 The <code>bit32</code> library has been deprecated. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4271 It is easy to require a compatible external library or, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4272 better yet, to replace its functions with appropriate bitwise operations. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4273 (Keep in mind that <code>bit32</code> operates on 32-bit integers, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4274 while the bitwise operators in standard Lua operate on 64-bit integers.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4275 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4276 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4277 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4278 The Table library now respects metamethods |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4279 for setting and getting elements. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4280 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4281 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4282 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4283 The <a href="#pdf-ipairs"><code>ipairs</code></a> iterator now respects metamethods and |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4284 its <code>__ipairs</code> metamethod has been deprecated. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4285 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4286 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4287 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4288 Option names in <a href="#pdf-io.read"><code>io.read</code></a> do not have a starting '<code>*</code>' anymore. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4289 For compatibility, Lua will continue to ignore this character. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4290 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4291 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4292 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4293 The following functions were deprecated in the mathematical library: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4294 <code>atan2</code>, <code>cosh</code>, <code>sinh</code>, <code>tanh</code>, <code>pow</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4295 <code>frexp</code>, and <code>ldexp</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4296 You can replace <code>math.pow(x,y)</code> with <code>x^y</code>; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4297 you can replace <code>math.atan2</code> with <code>math.atan</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4298 which now accepts one or two parameters; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4299 you can replace <code>math.ldexp(x,exp)</code> with <code>x * 2.0^exp</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4300 For the other operations, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4301 you can either use an external library or |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4302 implement them in Lua. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4303 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4304 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4305 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4306 The searcher for C loaders used by <a href="#pdf-require"><code>require</code></a> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4307 changed the way it handles versioned names. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4308 Now, the version should come after the module name |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4309 (as is usual in most other tools). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4310 For compatibility, that searcher still tries the old format |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4311 if it cannot find an open function according to the new style. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4312 (Lua 5.2 already worked that way, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4313 but it did not document the change.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4314 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4315 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4316 </ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4317 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4318 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4319 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4320 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4321 <h2>8.3 – <a name="8.3">Changes in the API</a></h2> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4322 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4323 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4324 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4325 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4326 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4327 Continuation functions now receive as parameters what they needed |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4328 to get through <code>lua_getctx</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4329 so <code>lua_getctx</code> has been removed. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4330 Adapt your code accordingly. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4331 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4332 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4333 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4334 Function <a href="#lua_dump"><code>lua_dump</code></a> has an extra parameter, <code>strip</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4335 Use 0 as the value of this parameter to get the old behavior. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4336 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4337 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4338 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4339 Functions to inject/project unsigned integers |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4340 (<code>lua_pushunsigned</code>, <code>lua_tounsigned</code>, <code>lua_tounsignedx</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4341 <code>luaL_checkunsigned</code>, <code>luaL_optunsigned</code>) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4342 were deprecated. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4343 Use their signed equivalents with a type cast. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4344 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4345 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4346 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4347 Macros to project non-default integer types |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4348 (<code>luaL_checkint</code>, <code>luaL_optint</code>, <code>luaL_checklong</code>, <code>luaL_optlong</code>) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4349 were deprecated. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4350 Use their equivalent over <a href="#lua_Integer"><code>lua_Integer</code></a> with a type cast |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4351 (or, when possible, use <a href="#lua_Integer"><code>lua_Integer</code></a> in your code). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4352 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4353 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4354 </ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4355 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4356 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4357 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4358 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4359 <h1>9 – <a name="9">The Complete Syntax of Lua</a></h1> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4360 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4361 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4362 Here is the complete syntax of Lua in extended BNF. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4363 As usual in extended BNF, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4364 {A} means 0 or more As, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4365 and [A] means an optional A. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4366 (For operator precedences, see <a href="#3.4.8">§3.4.8</a>; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4367 for a description of the terminals |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4368 Name, Numeral, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4369 and LiteralString, see <a href="#3.1">§3.1</a>.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4370 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4371 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4372 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4373 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4374 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4375 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4376 chunk ::= block |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4377 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4378 block ::= {stat} [retstat] |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4379 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4380 stat ::= ‘<b>;</b>’ | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4381 varlist ‘<b>=</b>’ explist | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4382 functioncall | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4383 label | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4384 <b>break</b> | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4385 <b>goto</b> Name | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4386 <b>do</b> block <b>end</b> | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4387 <b>while</b> exp <b>do</b> block <b>end</b> | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4388 <b>repeat</b> block <b>until</b> exp | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4389 <b>if</b> exp <b>then</b> block {<b>elseif</b> exp <b>then</b> block} [<b>else</b> block] <b>end</b> | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4390 <b>for</b> Name ‘<b>=</b>’ exp ‘<b>,</b>’ exp [‘<b>,</b>’ exp] <b>do</b> block <b>end</b> | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4391 <b>for</b> namelist <b>in</b> explist <b>do</b> block <b>end</b> | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4392 <b>function</b> funcname funcbody | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4393 <b>local</b> <b>function</b> Name funcbody | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4394 <b>local</b> namelist [‘<b>=</b>’ explist] |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4395 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4396 retstat ::= <b>return</b> [explist] [‘<b>;</b>’] |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4397 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4398 label ::= ‘<b>::</b>’ Name ‘<b>::</b>’ |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4399 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4400 funcname ::= Name {‘<b>.</b>’ Name} [‘<b>:</b>’ Name] |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4401 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4402 varlist ::= var {‘<b>,</b>’ var} |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4403 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4404 var ::= Name | prefixexp ‘<b>[</b>’ exp ‘<b>]</b>’ | prefixexp ‘<b>.</b>’ Name |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4405 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4406 namelist ::= Name {‘<b>,</b>’ Name} |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4407 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4408 explist ::= exp {‘<b>,</b>’ exp} |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4409 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4410 exp ::= <b>nil</b> | <b>false</b> | <b>true</b> | Numeral | LiteralString | ‘<b>...</b>’ | functiondef | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4411 prefixexp | tableconstructor | exp binop exp | unop exp |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4412 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4413 prefixexp ::= var | functioncall | ‘<b>(</b>’ exp ‘<b>)</b>’ |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4414 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4415 functioncall ::= prefixexp args | prefixexp ‘<b>:</b>’ Name args |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4416 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4417 args ::= ‘<b>(</b>’ [explist] ‘<b>)</b>’ | tableconstructor | LiteralString |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4418 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4419 functiondef ::= <b>function</b> funcbody |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4420 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4421 funcbody ::= ‘<b>(</b>’ [parlist] ‘<b>)</b>’ block <b>end</b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4422 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4423 parlist ::= namelist [‘<b>,</b>’ ‘<b>...</b>’] | ‘<b>...</b>’ |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4424 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4425 tableconstructor ::= ‘<b>{</b>’ [fieldlist] ‘<b>}</b>’ |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4426 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4427 fieldlist ::= field {fieldsep field} [fieldsep] |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4428 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4429 field ::= ‘<b>[</b>’ exp ‘<b>]</b>’ ‘<b>=</b>’ exp | Name ‘<b>=</b>’ exp | exp |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4430 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4431 fieldsep ::= ‘<b>,</b>’ | ‘<b>;</b>’ |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4432 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4433 binop ::= ‘<b>+</b>’ | ‘<b>-</b>’ | ‘<b>*</b>’ | ‘<b>/</b>’ | ‘<b>//</b>’ | ‘<b>^</b>’ | ‘<b>%</b>’ | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4434 ‘<b>&</b>’ | ‘<b>~</b>’ | ‘<b>|</b>’ | ‘<b>>></b>’ | ‘<b><<</b>’ | ‘<b>..</b>’ | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4435 ‘<b><</b>’ | ‘<b><=</b>’ | ‘<b>></b>’ | ‘<b>>=</b>’ | ‘<b>==</b>’ | ‘<b>~=</b>’ | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4436 <b>and</b> | <b>or</b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4437 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4438 unop ::= ‘<b>-</b>’ | <b>not</b> | ‘<b>#</b>’ | ‘<b>~</b>’ |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4439 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4440 </pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4441 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4442 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4443 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4444 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4445 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4446 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4447 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4448 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4449 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4450 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4451 <HR> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4452 <SMALL CLASS="footer"> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4453 Last update: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4454 Fri Jan 16 00:58:20 BRST 2015 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4455 </SMALL> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4456 <!-- |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4457 Last change: minor edit |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4458 --> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4459 |
391
2f5cc9c2cbf0
replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents:
389
diff
changeset
|
4460 </body> |
2f5cc9c2cbf0
replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents:
389
diff
changeset
|
4461 </html> |