Mercurial Hosting > luan
annotate website/src/manual.html.luan @ 562:7cc9d4a53d3b
remove SimplyHTML from documentation
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 24 Jun 2015 14:20:00 -0600 |
parents | d02f43598ba3 |
children | 22bfd8a2eaee |
rev | line source |
---|---|
478 | 1 local Luan = require "luan:Luan" |
386
db23f654f87d
make all of website use luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
382
diff
changeset
|
2 local Io = require "luan:Io" |
db23f654f87d
make all of website use luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
382
diff
changeset
|
3 local Html = require "luan:Html" |
494
2b9bc97f0439
change luan:web to luan:http
Franklin Schmidt <fschmidt@gmail.com>
parents:
492
diff
changeset
|
4 local Http = require "luan:http/Http" |
387
23d075ce1e48
add website/src/Shared.luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
386
diff
changeset
|
5 local Shared = require "site:/Shared" |
505
7bc63886d4f2
web page modules now return a function
Franklin Schmidt <fschmidt@gmail.com>
parents:
503
diff
changeset
|
6 |
7bc63886d4f2
web page modules now return a function
Franklin Schmidt <fschmidt@gmail.com>
parents:
503
diff
changeset
|
7 |
7bc63886d4f2
web page modules now return a function
Franklin Schmidt <fschmidt@gmail.com>
parents:
503
diff
changeset
|
8 return function() |
386
db23f654f87d
make all of website use luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
382
diff
changeset
|
9 Io.stdout = Http.response.text_writer() |
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
|
10 %> |
2f5cc9c2cbf0
replace Html.simply_html_page with simply_html_head and simply_html_body_bottom
Franklin Schmidt <fschmidt@gmail.com>
parents:
389
diff
changeset
|
11 <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
|
12 <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
|
13 <title>Luan Reference Manual</title> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
14 <style> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
15 @import "/site.css"; |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
16 </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
|
17 </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
|
18 <body> |
386
db23f654f87d
make all of website use luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
382
diff
changeset
|
19 |
372 | 20 <div container> |
387
23d075ce1e48
add website/src/Shared.luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
386
diff
changeset
|
21 <% Shared.header() %> |
372 | 22 |
23 <h1>Luan Reference Manual</h1> | |
24 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
25 <p small> |
372 | 26 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
|
27 Freely available under the terms of the |
372 | 28 <a href="http://www.lua.org/license.html">Lua license</a>. |
29 Modified for Luan. | |
30 </p> | |
31 | |
32 <hr/> | |
33 | |
34 <h2>Contents</h2> | |
35 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
36 <div contents><a href="#intro">Introduction</a></div> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
37 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
38 <div contents> |
373 | 39 <a href="#basic">Basic Concepts</a> |
40 <ul> | |
41 <li><a href="#types">Values and Types</a></li> | |
42 <li><a href="#env">Environments</a></li> | |
43 <li><a href="#error">Error Handling</a></li> | |
44 <li><a href="#meta">Metatables and Metamethods</a></li> | |
380 | 45 <li><a href="#gc">Garbage Collection</a></li> |
46 </ul> | |
47 </div> | |
48 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
49 <div contents> |
380 | 50 <a href="#lang">The Language</a> |
51 <ul> | |
52 <li><a href="#lex">Lexical Conventions</a></li> | |
53 <li><a href="#vars">Variables</a></li> | |
389 | 54 <li> |
55 <a href="#stmts">Statements</a> | |
56 <ul> | |
57 <li><a href="#blocks">Blocks</a></li> | |
395 | 58 <li><a href="#chunks">Chunks</a></li> |
59 <li><a href="#assignment">Assignment</a></li> | |
60 <li><a href="#control">Control Structures</a></li> | |
61 <li><a href="#for">For Statement</a></li> | |
62 <li><a href="#fn_stmt">Function Calls as Statements</a></li> | |
63 <li><a href="#local_stmt">Local Declarations</a></li> | |
465 | 64 <li><a href="#template_stmt">Template Statements</a></li> |
395 | 65 </ul> |
66 </li> | |
67 <li> | |
68 <a href="#expressions">Expressions</a> | |
69 <ul> | |
70 <li><a href="#arithmetic">Arithmetic Operators</a></li> | |
396 | 71 <li><a href="#conversions">Coercions and Conversions</a></li> |
72 <li><a href="#relational">Relational Operators</a></li> | |
73 <li><a href="#logical_ops">Logical Operators</a></li> | |
74 <li><a href="#concatenation">Concatenation</a></li> | |
75 <li><a href="#length">The Length Operator</a></li> | |
76 <li><a href="#precedence">Precedence</a></li> | |
77 <li><a href="#constructors">Table Constructors</a></li> | |
417 | 78 <li><a href="#fn_calls">Function Calls</a></li> |
79 <li><a href="#fn_def">Function Definitions</a></li> | |
465 | 80 <li><a href="#template_expr">Template Expressions</a></li> |
389 | 81 </ul> |
82 </li> | |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
83 <li><a href="#visibility">Visibility Rules</a></li> |
373 | 84 </ul> |
85 </div> | |
86 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
87 <div contents> |
468 | 88 <a href="#libs">Standard Libraries</a> |
89 <ul> | |
90 <li><a href="#default_lib">Default Environment</a></li> | |
470 | 91 <li><a href="#luan_lib">Basic Functions</a></li> |
476 | 92 <li><a href="#package_lib">Modules</a></li> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
93 <li><a href="#string_lib">String Manipulation</a></li> |
468 | 94 </ul> |
95 </div> | |
96 | |
372 | 97 <hr/> |
98 | |
373 | 99 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
100 <h2 heading><a name="intro">Introduction</a></h2> |
372 | 101 |
102 <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> | |
103 | |
104 <p>Luan is implemented in Java and is tightly coupled with Java. So it makes a great scripting language for Java programmers.</p> | |
105 | |
106 <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
|
107 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
108 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
109 <h2 heading><a name="basic">Basic Concepts</a></h2> |
373 | 110 |
111 <p>This section describes the basic concepts of the language.</p> | |
112 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
113 <h3 heading><a name="types">Values and Types</a></h3> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
114 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
115 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
116 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
|
117 This means that |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
118 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
|
119 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
|
120 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
|
121 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
122 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
123 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
124 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
|
125 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
|
126 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
|
127 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
128 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
129 <p> |
373 | 130 There are eight basic types in Luan: |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
131 <em>nil</em>, <em>boolean</em>, <em>number</em>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
132 <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
|
133 and <em>table</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
134 <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
|
135 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
|
136 it usually represents the absence of a useful value. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
137 <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
|
138 <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
|
139 <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
|
140 <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
|
141 integer numbers and real (floating-point) numbers. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
142 <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 | 143 the underlying Java implementation. |
144 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
145 <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
|
146 <em>Binary</em> is implemented as the Java type <em>byte[]</em>. |
373 | 147 |
148 | |
149 <p> | |
150 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
|
151 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
|
152 Both are represented by the type <em>function</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
153 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
154 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
155 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
156 The type <em>java</em> is provided to allow arbitrary Java objects to |
373 | 157 be stored in Luan variables. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
158 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
|
159 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
|
160 except assignment and identity test. |
513
0dfc01d8d42d
rename type "userdata" to "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
512
diff
changeset
|
161 Java values are useful when Java access is enabled in Luan |
373 | 162 |
163 | |
164 | |
165 <p> | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
166 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
|
167 that is, arrays that can be indexed not only with numbers, |
373 | 168 but with any Luan value except <b>nil</b>. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
169 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
|
170 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
|
171 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
|
172 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
|
173 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
|
174 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
175 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
176 <p> |
373 | 177 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
|
178 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
|
179 symbol tables, sets, records, graphs, trees, etc. |
373 | 180 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
|
181 The language supports this representation by |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
182 providing <code>a.name</code> as syntactic sugar for <code>a["name"]</code>. |
373 | 183 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
|
184 (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
|
185 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
186 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
187 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
188 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
|
189 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
|
190 for some non-negative integer <em>n</em>, |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
191 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
|
192 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
195 Like indices, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
196 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
|
197 In particular, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
198 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
|
199 table fields can contain functions. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
200 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
|
201 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
202 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
203 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
204 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
|
205 the definition of raw equality in the language. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
206 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
|
207 denote the same table element |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
208 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
|
209 (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
|
210 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
|
211 are equal to their respective integers |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
212 (e.g., <code>1.0 == 1</code>). |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
213 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
214 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
215 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
216 Luan values are <em>objects</em>: |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
217 variables do not actually <em>contain</em> values, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
218 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
|
219 Assignment, parameter passing, and function returns |
373 | 220 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
|
221 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
|
222 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
223 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
224 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
225 The library function <a href="#Luan.type"><code>Luan.type</code></a> returns a string describing the type |
478 | 226 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
|
227 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
228 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
229 |
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 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
232 <h3 heading><a name="env">Environments</a></h3> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
233 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
234 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
235 The environment of a chunk starts with only two local variables: <code><a href="#require">require</a></code> and <code><a href="#java">java</a></code>. These are functions are 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
|
236 |
d96944467ffc
update documentation for luan changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
505
diff
changeset
|
237 <p> |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
238 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
|
239 any reference to a free name |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
240 (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
|
241 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
|
242 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
243 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
244 <h3 heading><a name="error">Error Handling</a></h3> |
373 | 245 |
246 <p> | |
247 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
|
248 <a href="#Luan.error"><code>error</code></a> function. |
373 | 249 If you need to catch errors in Luan, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
250 you can use <a href="#Luan.pcall"><code>pcall</code></a> or <a href="#Luan.try"><code>try</code></a> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
251 to call a given function in <em>protected mode</em>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
252 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
253 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
254 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
255 Whenever there is an error, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
256 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
|
257 is propagated with information about the error. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
258 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
|
259 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
260 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
261 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
262 <h3 heading><a name="meta">Metatables and Metamethods</a></h3> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
263 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
264 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
265 Every table in Luan can have a <em>metatable</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
266 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
|
267 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
|
268 under certain special operations. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
269 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
|
270 of operations over a value by setting specific fields in its metatable. |
373 | 271 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
|
272 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
|
273 If it finds one, |
373 | 274 Luan calls this function to perform the addition. |
275 | |
276 | |
277 <p> | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
278 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
|
279 the corresponding values are called <ii>metamethods</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
280 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
|
281 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
|
282 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
283 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
284 <p> |
373 | 285 You can query the metatable of any table |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
286 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
|
287 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
288 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
289 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
290 You can replace the metatable of tables |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
291 using the <a href="#Luan.set_metatable"><code>set_metatable</code></a> function. |
373 | 292 |
293 | |
294 <p> | |
295 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
|
296 arithmetic operations, bitwise operations, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
297 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
|
298 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
299 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
300 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
301 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
|
302 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
|
303 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
|
304 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
|
305 for instance, the key for operation "add" is the |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
306 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
|
307 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
|
308 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
|
309 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
|
310 with the following code: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
311 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
312 <pre> |
373 | 313 raw_get(get_metatable(obj) or {}, "__" .. event_name) |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
314 </pre> |
373 | 315 |
316 <p> | |
317 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
|
318 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
319 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
320 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
321 <li><p><b>"add": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
322 the <code>+</code> operation. |
373 | 323 |
324 If any operand for an addition is a table, | |
325 Luan will try to call a metamethod. | |
326 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
|
327 If that operand does not define a metamethod for the "<code>__add</code>" event, |
373 | 328 then Luan will check the second operand. |
329 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
|
330 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
|
331 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
|
332 (adjusted to one value) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
333 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
|
334 Otherwise, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
335 it raises an error. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
336 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
337 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
338 <li><p><b>"sub": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
339 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
|
340 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
341 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
|
342 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
343 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
344 <li><p><b>"mul": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
345 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
|
346 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
347 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
|
348 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
349 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
350 <li><p><b>"div": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
351 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
|
352 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
353 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
|
354 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
355 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
356 <li><p><b>"mod": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
357 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
|
358 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
359 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
|
360 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
361 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
362 <li><p><b>"pow": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
363 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
|
364 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
365 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
|
366 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
367 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
368 <li><p><b>"unm": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
369 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
|
370 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
371 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
|
372 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
373 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
374 <li><p><b>"concat": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
375 the <code>..</code> (concatenation) operation. |
373 | 376 |
377 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
|
378 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
379 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
380 <li><p><b>"len": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
381 the <code>#</code> (length) operation. |
373 | 382 |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
383 If there is a metamethod, |
373 | 384 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
|
385 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
|
386 (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
|
387 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
|
388 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
|
389 then Luan uses the table length operation (see <a href="#length">The Length Operator</a>). |
373 | 390 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
|
391 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
392 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
393 <li><p><b>"eq": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
394 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
|
395 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
396 Behavior similar to the "add" operation, |
373 | 397 except that Luan will try a metamethod only when the values |
398 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
|
399 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
|
400 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
|
401 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
402 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
403 <li><p><b>"lt": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
404 the <code><</code> (less than) operation. |
373 | 405 |
406 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
|
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>"le": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
411 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
|
412 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
413 Unlike other operations, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
414 The less-equal operation can use two different events. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
415 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
|
416 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
|
417 If it cannot find such a metamethod, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
418 then it will try the "<code>__lt</code>" event, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
419 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
|
420 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
|
421 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
|
422 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
423 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
424 <li><p><b>"index": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
425 The indexing access <code>table[key]</code>. |
373 | 426 |
427 This event happens | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
428 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
|
429 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
|
430 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
431 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
432 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
433 Despite the name, |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
434 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
|
435 If it is a function, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
436 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
|
437 Otherwise |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
438 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
|
439 (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
|
440 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
|
441 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
442 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
443 <li><p><b>"new_index": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
444 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
|
445 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
446 Like the index event, |
373 | 447 this event happens when |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
448 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
|
449 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
|
450 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
451 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
452 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
453 Like with indexing, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
454 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
|
455 If it is a function, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
456 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
|
457 If it is a table, |
373 | 458 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
|
459 (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
|
460 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
|
461 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
462 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
463 <p> |
428
df95199ca4c0
rename __newindex to __new_index
Franklin Schmidt <fschmidt@gmail.com>
parents:
418
diff
changeset
|
464 Whenever there is a "new_index" metamethod, |
373 | 465 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
|
466 (If necessary, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
467 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
|
468 to do the assignment.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
469 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
470 |
502
d3183a330ff5
improve the __index metamethod to work with any type;
Franklin Schmidt <fschmidt@gmail.com>
parents:
495
diff
changeset
|
471 <li><p><b>"call": </b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
472 The call operation <code>func(args)</code>. |
373 | 473 |
474 This event happens when Luan tries to call a table. | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
475 The metamethod is looked up in <code>func</code>. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
476 If present, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
477 the metamethod is called with <code>func</code> as its first argument, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
478 followed by the arguments of the original call (<code>args</code>). |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
479 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
480 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
481 </ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
482 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
483 |
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 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
486 <h3 heading><a name="gc">Garbage Collection</a></h3> |
380 | 487 |
488 <p> | |
489 Luan uses Java's garbage collection. | |
490 | |
491 | |
492 | |
493 | |
494 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
495 <h2 heading><a name="lang">The Language</a></h2> |
380 | 496 |
497 <p> | |
498 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
|
499 In other words, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
500 this section describes |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
501 which tokens are valid, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
502 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
|
503 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
|
504 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
505 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
506 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
507 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
|
508 in which |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
509 {<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
|
510 [<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
|
511 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
|
512 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
|
513 and other terminal symbols are shown like ‘<b>=</b>’. |
380 | 514 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
|
515 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
|
516 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
517 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
518 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
519 <h3 heading><a name="lex">Lexical Conventions</a></h3> |
380 | 520 |
521 <p> | |
522 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
|
523 between lexical elements (tokens), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
524 except as delimiters between names and keywords. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
525 Luan generally considers the end of a line to be the end of a statement. This catches errors and encourages readability. The exception to this is in paranthesis ( <em>(...)</em>, <em>[...]</em>, and <em>{...}</em> ) where the end of line is treated as white space. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
526 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
527 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
528 <em>Names</em> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
529 (also called <em>identifiers</em>) |
380 | 530 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
|
531 digits, and underscores, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
532 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
|
533 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
|
534 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
535 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
536 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
537 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
|
538 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
|
539 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
540 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
541 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
542 and break do else elseif end |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
543 false for function goto if in |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
544 local nil not or repeat return |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
545 then true until while |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
546 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
547 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
548 <p> |
380 | 549 Luan is a case-sensitive language: |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
550 <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
|
551 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
|
552 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
553 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
554 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
555 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
|
556 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
557 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
558 + - * / % ^ # |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
559 & ~ | << >> // |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
560 == ~= <= >= < > = |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
561 ( ) { } [ ] :: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
562 ; : , . .. ... |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
563 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
564 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
565 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
566 <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
|
567 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
|
568 and can contain the following C-like escape sequences: |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
569 '<code>\a</code>' (bell), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
570 '<code>\b</code>' (backspace), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
571 '<code>\f</code>' (form feed), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
572 '<code>\n</code>' (newline), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
573 '<code>\r</code>' (carriage return), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
574 '<code>\t</code>' (horizontal tab), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
575 '<code>\v</code>' (vertical tab), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
576 '<code>\\</code>' (backslash), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
577 '<code>\"</code>' (quotation mark [double quote]), |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
578 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
|
579 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
|
580 results in a newline in the string. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
581 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
|
582 of white-space characters, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
583 including line breaks; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
584 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
|
585 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
|
586 into the string contents. |
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 <p> |
380 | 590 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
|
591 This can be done |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
592 with the escape sequence <code>\x<em>XX</em></code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
593 where <em>XX</em> is a sequence of exactly two hexadecimal digits, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
594 or with the escape sequence <code>\<em>ddd</em></code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
595 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
|
596 (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
|
597 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
|
598 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
599 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
600 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
601 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
|
602 enclosed by <em>long brackets</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
603 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
|
604 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
|
605 opening square bracket. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
606 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
|
607 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
|
608 and so on. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
609 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
|
610 for instance, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
611 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
|
612 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
|
613 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
|
614 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
|
615 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
|
616 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
|
617 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
|
618 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
|
619 (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
|
620 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
|
621 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
|
622 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
623 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
624 <p> |
380 | 625 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
|
626 explicitly affected by the previous rules represents itself. |
380 | 627 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
|
628 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
|
629 some control characters. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
630 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
|
631 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
|
632 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
|
633 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
634 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
635 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
636 For convenience, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
637 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
|
638 the newline is not included in the string. |
380 | 639 As an example |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
640 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
|
641 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
642 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
643 a = 'alo\n123"' |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
644 a = "alo\n123\"" |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
645 a = '\97lo\10\04923"' |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
646 a = [[alo |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
647 123"]] |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
648 a = [==[ |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
649 alo |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
650 123"]==] |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
651 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
652 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
653 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
654 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
|
655 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
|
656 and an optional decimal exponent, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
657 marked by a letter '<code>e</code>' or '<code>E</code>'. |
380 | 658 Luan also accepts hexadecimal constants, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
659 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
|
660 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
|
661 plus an optional binary exponent, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
662 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
|
663 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
|
664 denotes a float; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
665 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
|
666 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
|
667 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
668 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
669 3 345 0xff 0xBEBADA |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
670 </pre> |
382 | 671 |
672 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
673 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
|
674 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
675 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
676 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
|
677 0x0.1E 0xA23p-4 0X1.921FB54442D18P+1 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
678 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
679 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
680 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
681 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
|
682 anywhere outside a string. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
683 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
|
684 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
|
685 which runs until the end of the line. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
686 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
|
687 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
|
688 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
|
689 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
690 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
691 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
692 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
693 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
694 <h3 heading><a name="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
|
695 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
696 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
697 Variables are places that store values. |
380 | 698 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
|
699 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
|
700 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
701 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
702 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
|
703 (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
|
704 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
|
705 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
706 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
707 var ::= Name |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
708 </pre> |
382 | 709 |
710 <p> | |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
711 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
|
712 |
512
d96944467ffc
update documentation for luan changes
Franklin Schmidt <fschmidt@gmail.com>
parents:
505
diff
changeset
|
713 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
714 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
|
715 local variables can be freely accessed by functions |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
716 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
|
717 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
718 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
719 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
720 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
|
721 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
722 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
723 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
|
724 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
725 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
726 var ::= prefixexp ‘<b>[</b>’ exp ‘<b>]</b>’ |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
727 </pre> |
382 | 728 |
729 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
730 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
|
731 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
|
732 a call <code>gettable_event(t,i)</code>. |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
733 (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
|
734 <code>gettable_event</code> function. |
380 | 735 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
|
736 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
|
737 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
738 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
739 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
740 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
|
741 <code>var["Name"]</code>: |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
742 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
743 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
744 var ::= prefixexp ‘<b>.</b>’ Name |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
745 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
746 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
747 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
748 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
|
749 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
|
750 Due to the way that chunks are compiled, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
751 <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
|
752 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
753 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
754 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
755 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
756 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
757 <h3 heading><a name="stmts">Statements</a></h3> |
389 | 758 |
759 <p> | |
760 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
|
761 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
|
762 This set includes |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
763 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
|
764 and variable declarations. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
765 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
766 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
767 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
768 <h4 heading><a name="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
|
769 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
770 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
771 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
|
772 which are executed sequentially: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
773 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
774 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
775 block ::= {stat} |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
776 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
777 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
778 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
779 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
|
780 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
|
781 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
|
782 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
|
783 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
784 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
785 stat ::= ‘<b>;</b>’ |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
786 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
787 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
788 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
789 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
|
790 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
791 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
792 stat ::= <b>do</b> block <b>end</b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
793 </pre> |
389 | 794 |
795 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
796 Explicit blocks are useful |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
797 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
|
798 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
|
799 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
|
800 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
|
801 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
802 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
803 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
804 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
805 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
806 <h4 heading><a name="chunks">Chunks</a></h4> |
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 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
|
810 Syntactically, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
811 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
|
812 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
813 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
814 chunk ::= block |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
815 </pre> |
395 | 816 |
817 <p> | |
818 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
|
819 with a variable number of arguments |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
820 (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
|
821 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
|
822 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
|
823 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
824 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
825 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
826 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
|
827 To execute a chunk, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
828 Luan first <em>loads</em> it, |
395 | 829 compiling the chunk's code, |
830 and then Luan executes the compiled code. | |
831 | |
832 | |
833 | |
834 | |
835 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
836 <h4 heading><a name="assignment">Assignment</a></h4> |
395 | 837 |
838 <p> | |
839 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
|
840 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
|
841 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
|
842 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
|
843 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
|
844 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
845 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
846 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
|
847 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
|
848 explist ::= exp {‘<b>,</b>’ exp} |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
849 </pre> |
395 | 850 |
851 <p> | |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
852 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
|
853 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
856 Before the assignment, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
857 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
|
858 the list of variables. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
859 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
|
860 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
|
861 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
|
862 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
|
863 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
|
864 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
|
865 before the adjustment |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
866 (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
|
867 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
868 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
869 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
870 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
|
871 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
|
872 Thus the code |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
873 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
874 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
875 i = 3 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
876 i, a[i] = i+1, 20 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
877 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
878 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
879 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
880 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
|
881 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
|
882 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
|
883 Similarly, the line |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
884 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
885 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
886 x, y = y, x |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
887 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
888 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
889 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
890 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
|
891 and |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
892 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
893 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
894 x, y, z = y, z, x |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
895 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
896 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
897 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
898 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
|
899 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
900 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
901 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
902 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
|
903 and table fields can be changed via metatables. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
904 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
|
905 <code>settable_event(t,i,val)</code>. |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
906 (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
|
907 <code>settable_event</code> function. |
395 | 908 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
|
909 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
|
910 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
911 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
912 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
913 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
|
914 is equivalent to the assignment |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
915 <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
|
916 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
|
917 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
918 |
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 <h4 heading><a name="control">Control Structures</a></h4> |
395 | 921 |
922 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
923 The control structures |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
924 <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
|
925 familiar syntax: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
926 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
927 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
928 stat ::= <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
|
929 stat ::= <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
|
930 stat ::= <b>if</b> exp <b>then</b> block {<b>elseif</b> exp <b>then</b> block} [<b>else</b> block] <b>end</b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
931 </pre> |
395 | 932 |
933 <p> | |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
934 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
|
935 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
936 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
937 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
938 The condition expression of a |
395 | 939 control structure must be a boolean. |
940 Any other value type will produce an error. | |
941 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
|
942 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
943 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
944 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
945 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
|
946 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
|
947 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
|
948 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
|
949 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
|
950 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
951 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
952 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
953 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
|
954 <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
|
955 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
|
956 |
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> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
959 stat ::= <b>break</b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
960 </pre> |
395 | 961 |
962 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
963 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
|
964 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
965 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
966 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
967 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
|
968 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
|
969 (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
|
970 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
971 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
|
972 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
|
973 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
974 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
975 stat ::= <b>return</b> [explist] [‘<b>;</b>’] |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
976 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
977 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
978 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
979 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
980 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
981 <h4 heading><a name="for">For Statement</a></h4> |
395 | 982 |
983 <p> | |
984 The <b>for</b> statement works over functions, | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
985 called <em>iterators</em>. |
395 | 986 On each iteration, the iterator function is called to produce a new value, |
987 stopping when this new value is <b>nil</b>. | |
988 The <b>for</b> loop has the following syntax: | |
989 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
990 <pre> |
395 | 991 stat ::= <b>for</b> namelist <b>in</b> exp <b>do</b> block <b>end</b> |
992 namelist ::= Name {‘<b>,</b>’ Name} | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
993 </pre> |
395 | 994 |
995 <p> | |
996 A <b>for</b> statement like | |
997 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
998 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
999 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
|
1000 </pre> |
395 | 1001 |
1002 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1003 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
|
1004 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1005 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1006 do |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1007 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
|
1008 while true do |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1009 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
|
1010 if <em>var_1</em> == nil then break end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1011 <em>block</em> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1012 end |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1013 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1014 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1015 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1016 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1017 Note the following: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1018 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1019 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1020 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1021 <li> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1022 <code><em>exp</em></code> is evaluated only once. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1023 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
|
1024 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1025 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1026 <li> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1027 <code><em>f</em></code> is an invisible variable. |
395 | 1028 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
|
1029 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1030 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1031 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1032 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
|
1033 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1034 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1035 <li> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1036 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
|
1037 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
|
1038 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
|
1039 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
|
1040 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1041 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1042 </ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1043 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1044 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1045 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1046 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1047 <h4 heading><a name="fn_stmt">Function Calls as Statements</a></h4> |
395 | 1048 |
1049 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1050 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
|
1051 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
|
1052 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1053 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1054 stat ::= functioncall |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1055 </pre> |
395 | 1056 |
1057 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1058 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
|
1059 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
|
1060 |
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 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1063 <h4 heading><a name="local_stmt">Local Declarations</a></h4> |
395 | 1064 |
1065 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1066 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
|
1067 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
|
1068 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1069 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1070 stat ::= <b>local</b> namelist [‘<b>=</b>’ explist] |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1071 </pre> |
395 | 1072 |
1073 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1074 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
|
1075 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
|
1076 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
|
1077 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1078 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1079 <p> |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1080 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
|
1081 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
|
1082 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1083 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1084 <p> |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1085 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
|
1086 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1087 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1088 <h4 heading><a name="template_stmt">Template Statements</a></h4> |
465 | 1089 |
1090 <p>Template statements are based on <a href="#template_expr">template exressions</a> and provide the full equivalent of <a href="http://en.wikipedia.org/wiki/JavaServer_Pages">JSP</a> but in a general way. Template statements write the equivalent template exression to standard output. For example:</p> | |
1091 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1092 <pre><%=Html.encode[[ |
465 | 1093 local name = "Bob" |
1094 %> | |
469 | 1095 Hello <%= name %>! |
1096 Bye <%= name %>. | |
465 | 1097 <% |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1098 ]]%></pre> |
465 | 1099 |
1100 <p>is equivalent to the code:</p> | |
1101 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1102 <pre><%=Html.encode[[ |
465 | 1103 local name = "Bob" |
1104 require("luan:Io").stdout.write( %> | |
469 | 1105 Hello <%= name %>! |
1106 Bye <%= name %>. | |
465 | 1107 <% ) |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1108 ]]%></pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1109 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1110 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1111 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1112 <h3 heading><a name="expressions">Expressions</a></h3> |
395 | 1113 |
1114 <p> | |
1115 The basic expressions in Luan are the following: | |
1116 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1117 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1118 exp ::= prefixexp |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1119 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
|
1120 exp ::= Numeral |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1121 exp ::= LiteralString |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1122 exp ::= functiondef |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1123 exp ::= tableconstructor |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1124 exp ::= ‘<b>...</b>’ |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1125 exp ::= exp binop exp |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1126 exp ::= unop exp |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1127 prefixexp ::= var | functioncall | ‘<b>(</b>’ exp ‘<b>)</b>’ |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1128 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1129 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1130 <p> |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1131 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
|
1132 variables are explained in <a href="#vars">Variables</a>; |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1133 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
|
1134 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
|
1135 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
|
1136 Vararg expressions, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1137 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
|
1138 directly inside a vararg function; |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1139 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
|
1140 |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1141 |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1142 <p> |
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1143 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
|
1144 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
|
1145 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
|
1146 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
|
1147 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
|
1148 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
|
1149 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1150 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1151 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1152 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
|
1153 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
|
1154 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
|
1155 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
|
1156 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
|
1157 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
|
1158 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
|
1159 (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
|
1160 In all other contexts, |
395 | 1161 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
|
1162 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
|
1163 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
|
1164 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1165 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1166 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1167 Here are some examples: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1168 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1169 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1170 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
|
1171 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
|
1172 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
|
1173 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
|
1174 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
|
1175 -- 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
|
1176 -- 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
|
1177 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1178 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
|
1179 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
|
1180 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
|
1181 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
|
1182 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
|
1183 {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
|
1184 {...} -- 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
|
1185 {f(), nil} -- f() is adjusted to 1 result |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1186 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1187 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1188 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1189 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
|
1190 Thus, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1191 <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
|
1192 even if <code>f</code> returns several values. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1193 (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
|
1194 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
|
1195 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1196 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1197 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1198 <h4 heading><a name="arithmetic">Arithmetic Operators</a></h4> |
395 | 1199 |
1200 <p> | |
1201 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
|
1202 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1203 <ul> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1204 <li><b><code>+</code>: </b>addition</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1205 <li><b><code>-</code>: </b>subtraction</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1206 <li><b><code>*</code>: </b>multiplication</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1207 <li><b><code>/</code>: </b>division</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1208 <li><b><code>%</code>: </b>modulo</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1209 <li><b><code>^</code>: </b>exponentiation</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1210 <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
|
1211 </ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1212 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1213 <p> |
395 | 1214 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
|
1215 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1216 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1217 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
|
1218 that rounds the quotient towards minus infinite (floor division). |
395 | 1219 (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
|
1220 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1221 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1222 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1223 <h4 heading><a name="conversions">Coercions and Conversions</a></h4> |
396 | 1224 |
1225 <p> | |
465 | 1226 Luan generally avoids automatic conversions. |
1227 String concatenation automatically converts all of its arguments to strings. | |
1228 | |
1229 <p> | |
1230 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
|
1231 |
396 | 1232 |
1233 | |
1234 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1235 <h4 heading><a name="relational">Relational Operators</a></h4> |
396 | 1236 |
1237 <p> | |
1238 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
|
1239 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1240 <ul> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1241 <li><b><code>==</code>: </b>equality</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1242 <li><b><code>~=</code>: </b>inequality</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1243 <li><b><code><</code>: </b>less than</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1244 <li><b><code>></code>: </b>greater than</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1245 <li><b><code><=</code>: </b>less or equal</li> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1246 <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
|
1247 </ul><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1248 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
|
1249 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1250 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1251 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1252 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
|
1253 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
|
1254 Otherwise, the values of the operands are compared. |
396 | 1255 Strings, numbers, and binary values are compared in the obvious way (by value). |
1256 | |
1257 <p> | |
1258 Tables | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1259 are compared by reference: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1260 two objects are considered equal only if they are the same object. |
396 | 1261 Every time you create a new table, |
1262 it is different from any previously existing table. | |
1263 Closures are also compared by reference. | |
1264 | |
1265 <p> | |
417 | 1266 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
|
1267 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
|
1268 |
396 | 1269 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1270 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
|
1271 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1272 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1273 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
|
1274 or vice versa. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1275 Thus, <code>"0"==0</code> evaluates to <b>false</b>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1276 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
|
1277 entries in a table. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1278 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1279 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1280 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1281 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
|
1282 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1283 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1284 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1285 The order operators work as follows. |
396 | 1286 |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1287 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
|
1288 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
|
1289 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
|
1290 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
|
1291 then their values are compared according to the current locale. |
396 | 1292 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
|
1293 metamethod (see <a href="#meta">Metatables and Metamethods</a>). |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1294 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
|
1295 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
|
1296 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1297 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1298 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1299 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1300 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1301 <h4 heading><a name="logical_ops">Logical Operators</a></h4> |
396 | 1302 |
1303 <p> | |
1304 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
|
1305 <b>and</b>, <b>or</b>, and <b>not</b>. |
396 | 1306 The <b>and</b> and <b>or</b> operators consider both <b>false</b> and <b>nil</b> as false |
1307 and anything else as true. | |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1308 Like the control structures (see <a href="#control">Control Structures</a>), |
396 | 1309 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
|
1310 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1311 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1312 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
|
1313 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
|
1314 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
|
1315 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
|
1316 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
|
1317 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
|
1318 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
|
1319 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
|
1320 that is, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1321 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
|
1322 Here are some examples: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1323 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1324 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1325 10 or 20 --> 10 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1326 10 or error() --> 10 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1327 nil or "a" --> "a" |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1328 nil and 10 --> nil |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1329 false and error() --> false |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1330 false and nil --> false |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1331 false or nil --> nil |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1332 10 and 20 --> 20 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1333 </pre> |
396 | 1334 |
1335 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1336 (In this manual, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1337 <code>--></code> indicates the result of the preceding expression.) |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1338 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1339 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1340 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1341 <h4 heading><a name="concatenation">Concatenation</a></h4> |
396 | 1342 |
1343 <p> | |
1344 The string concatenation operator in Luan is | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1345 denoted by two dots ('<code>..</code>'). |
396 | 1346 All operands are converted to strings. |
1347 | |
1348 | |
1349 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1350 <h4 heading><a name="length">The Length Operator</a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1351 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1352 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1353 The length operator is denoted by the unary prefix operator <code>#</code>. |
396 | 1354 The length of a string is its number of characters. |
1355 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
|
1356 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1357 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1358 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1359 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
|
1360 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
|
1361 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1362 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1363 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1364 Unless a <code>__len</code> metamethod is given, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1365 the length of a table <code>t</code> is defined |
396 | 1366 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
|
1367 that is, |
396 | 1368 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
|
1369 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
|
1370 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
|
1371 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
|
1372 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1373 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1374 {10, 20, nil, 40} |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1375 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1376 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1377 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1378 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
|
1379 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1380 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1381 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1382 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1383 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1384 <h4 heading><a name="precedence">Precedence</a></h4> |
396 | 1385 |
1386 <p> | |
1387 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
|
1388 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
|
1389 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1390 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1391 or |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1392 and |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1393 < > <= >= ~= == |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1394 .. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1395 + - |
396 | 1396 * / % |
1397 unary operators (not # -) | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1398 ^ |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1399 </pre> |
396 | 1400 |
1401 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1402 As usual, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1403 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
|
1404 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
|
1405 operators are right associative. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1406 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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1410 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1411 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1412 <h4 heading><a name="constructors">Table Constructors</a></h4> |
396 | 1413 |
1414 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1415 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
|
1416 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
|
1417 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
|
1418 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
|
1419 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
|
1420 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1421 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1422 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
|
1423 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
|
1424 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
|
1425 fieldsep ::= ‘<b>,</b>’ | ‘<b>;</b>’ |
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 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
|
1430 with key <code>exp1</code> and value <code>exp2</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1431 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
|
1432 <code>["name"] = exp</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1433 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
|
1434 <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
|
1435 starting with 1. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1436 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
|
1437 For example, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1438 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1439 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1440 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
|
1441 </pre> |
396 | 1442 |
1443 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1444 is equivalent to |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1445 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1446 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1447 do |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1448 local t = {} |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1449 t[f(1)] = g |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1450 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
|
1451 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
|
1452 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
|
1453 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
|
1454 t[30] = 23 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1455 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
|
1456 a = t |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1457 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1458 </pre> |
371
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1461 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
|
1462 (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
|
1463 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1464 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1465 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1466 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
|
1467 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
|
1468 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
|
1469 (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
|
1470 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1471 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1472 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1473 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
|
1474 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
|
1475 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1476 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1477 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1478 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1479 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1480 <h4 heading><a name="fn_calls">Function Calls</a></h4> |
417 | 1481 |
1482 <p> | |
1483 A function call in Luan has the following syntax: | |
1484 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1485 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1486 functioncall ::= prefixexp args |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1487 </pre> |
417 | 1488 |
1489 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1490 In a function call, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1491 first prefixexp and args are evaluated. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1492 If the value of prefixexp has type <em>function</em>, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1493 then this function is called |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1494 with the given arguments. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1495 Otherwise, the prefixexp "call" metamethod is called, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1496 having as first parameter the value of prefixexp, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1497 followed by the original call arguments |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1498 (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
|
1499 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1500 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1501 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1502 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
|
1503 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1504 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1505 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
|
1506 args ::= tableconstructor |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1507 args ::= LiteralString |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1508 </pre> |
417 | 1509 |
1510 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1511 All argument expressions are evaluated before the call. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1512 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
|
1513 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
|
1514 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
|
1515 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
|
1516 (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
|
1517 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
|
1518 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
|
1519 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1520 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1521 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1522 A call of the form <code>return <em>functioncall</em></code> is called |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1523 a <em>tail call</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1524 Luan implements <em>proper tail calls</em> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1525 (or <em>proper tail recursion</em>): |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1526 in a tail call, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1527 the called function reuses the stack entry of the calling function. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1528 Therefore, there is no limit on the number of nested tail calls that |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1529 a program can execute. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1530 However, a tail call erases any debug information about the |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1531 calling function. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1532 Note that a tail call only happens with a particular syntax, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1533 where the <b>return</b> has one single function call as argument; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1534 this syntax makes the calling function return exactly |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1535 the returns of the called function. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1536 So, none of the following examples are tail calls: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1537 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1538 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1539 return (f(x)) -- results adjusted to 1 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1540 return 2 * f(x) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1541 return x, f(x) -- additional results |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1542 f(x); return -- results discarded |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1543 return x or f(x) -- results adjusted to 1 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1544 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1545 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1546 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1547 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1548 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1549 <h4 heading><a name="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
|
1550 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1551 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1552 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
|
1553 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1554 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1555 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
|
1556 funcbody ::= ‘<b>(</b>’ [parlist] ‘<b>)</b>’ block <b>end</b> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1557 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1558 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1559 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1560 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
|
1561 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1562 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1563 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
|
1564 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
|
1565 funcname ::= Name {‘<b>.</b>’ Name} [‘<b>:</b>’ Name] |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1566 </pre> |
417 | 1567 |
1568 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1569 The statement |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1570 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1571 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1572 function f () <em>body</em> end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1573 </pre> |
417 | 1574 |
1575 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1576 translates to |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1577 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1578 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1579 f = function () <em>body</em> end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1580 </pre> |
417 | 1581 |
1582 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1583 The statement |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1584 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1585 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1586 function t.a.b.c.f () <em>body</em> end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1587 </pre> |
417 | 1588 |
1589 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1590 translates to |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1591 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1592 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1593 t.a.b.c.f = function () <em>body</em> end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1594 </pre> |
417 | 1595 |
1596 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1597 The statement |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1598 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1599 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1600 local function f () <em>body</em> end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1601 </pre> |
417 | 1602 |
1603 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1604 translates to |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1605 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1606 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1607 local f; f = function () <em>body</em> end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1608 </pre> |
417 | 1609 |
1610 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1611 not to |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1612 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1613 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1614 local f = function () <em>body</em> end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1615 </pre> |
417 | 1616 |
1617 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1618 (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
|
1619 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
|
1620 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1621 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1622 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1623 A function definition is an executable expression, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1624 whose value has type <em>function</em>. |
417 | 1625 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
|
1626 all its function bodies are precompiled too. |
417 | 1627 Then, whenever Luan executes the function definition, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1628 the function is <em>instantiated</em> (or <em>closed</em>). |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1629 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
|
1630 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
|
1631 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1632 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1633 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1634 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
|
1635 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
|
1636 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1637 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1638 parlist ::= namelist [‘<b>,</b>’ ‘<b>...</b>’] | ‘<b>...</b>’ |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1639 </pre> |
417 | 1640 |
1641 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1642 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
|
1643 the list of arguments is adjusted to |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1644 the length of the list of parameters, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1645 unless the function is a <em>vararg function</em>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1646 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
|
1647 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
|
1648 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
|
1649 instead, it collects all extra arguments and supplies them |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1650 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
|
1651 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
|
1652 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
|
1653 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
|
1654 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
|
1655 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
|
1656 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
|
1657 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
|
1658 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
|
1659 (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
|
1660 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1661 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1662 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1663 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
|
1664 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1665 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1666 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
|
1667 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
|
1668 function r() return 1,2,3 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1669 </pre> |
417 | 1670 |
1671 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1672 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
|
1673 to the vararg expression: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1674 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1675 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1676 CALL PARAMETERS |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1677 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1678 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
|
1679 f(3, 4) a=3, b=4 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1680 f(3, 4, 5) a=3, b=4 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1681 f(r(), 10) a=1, b=10 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1682 f(r()) a=1, b=2 |
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 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
|
1685 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
|
1686 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
|
1687 g(5, r()) a=5, b=1, ... --> 2 3 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1688 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1689 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1690 <p> |
464
eddf7c73373b
fix references in the manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
429
diff
changeset
|
1691 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
|
1692 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
|
1693 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
|
1694 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
|
1695 |
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 <h4 heading><a name="template_expr">Template Expressions</a></h4> |
465 | 1698 |
1699 <p>Luan template expression are based on <a href="http://en.wikipedia.org/wiki/JavaServer_Pages">JSP</a>. Template expressions return multiple values. Here is an example:</p> | |
1700 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1701 <pre><%=Html.encode[[ |
465 | 1702 local name = "Bob" |
469 | 1703 write( %>Hello <%= name %>!<% ) |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1704 ]]%></pre> |
465 | 1705 |
1706 <p>This is equivalent to the code:</p> | |
1707 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1708 <pre> |
465 | 1709 local name = "Bob" |
1710 write( "Hello ", name, "!" ) | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1711 </pre> |
465 | 1712 |
1713 <p>The strings in template expressions may be multiple lines.</p> | |
1714 | |
417 | 1715 |
1716 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1717 <h3 heading><a name="visibility">Visibility Rules</a></h3> |
417 | 1718 |
1719 <p> | |
1720 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
|
1721 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
|
1722 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
|
1723 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
|
1724 Consider the following example: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1725 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1726 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1727 x = 10 -- global variable |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1728 do -- new block |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1729 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
|
1730 print(x) --> 10 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1731 x = x+1 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1732 do -- another block |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1733 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
|
1734 print(x) --> 12 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1735 end |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1736 print(x) --> 11 |
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) --> 10 (the global one) |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1739 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1740 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1741 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1742 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
|
1743 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
|
1744 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
|
1745 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1746 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1747 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1748 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
|
1749 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
|
1750 defined inside their scope. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1751 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
|
1752 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
|
1753 inside the inner function. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1754 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1755 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1756 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1757 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
|
1758 defines new local variables. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1759 Consider the following example: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1760 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1761 <pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1762 a = {} |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1763 local x = 20 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1764 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
|
1765 local y = 0 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1766 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
|
1767 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1768 </pre> |
417 | 1769 |
1770 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1771 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
|
1772 (that is, ten instances of the anonymous function). |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1773 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
|
1774 while all of them share the same <code>x</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1775 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1776 |
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 <h2 heading><a name="libs">Standard Libraries</a></h2> |
468 | 1781 |
1782 <p> | |
1783 The standard Luan libraries provide useful functions | |
1784 that are implemented both in Java and in Luan itself. | |
1785 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
|
1786 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
|
1787 (e.g., <a href="#Luan.type"><code>type</code></a> and <a href="#Luan.get_metatable"><code>get_metatable</code></a>); |
468 | 1788 others provide access to "outside" services (e.g., I/O). |
1789 | |
1790 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1791 <h3 heading><a name="default_lib">Default Environment</a></h3> |
468 | 1792 |
1793 <p> | |
1794 These are provided by default as local variables for any Luan code as described in <a href="#env">Environments</a>. | |
1795 | |
470 | 1796 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1797 <h4 heading><a name="require"><code>java ()</code></a></h4> |
470 | 1798 |
1799 <p> | |
1800 This function 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. | |
1801 | |
1802 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1803 <h4 heading><a name="require"><code>require (mod_uri)</code></a></h4> |
470 | 1804 |
1805 <p> | |
1806 Example use: | |
1807 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1808 <pre> |
470 | 1809 local Table = require "luan:Table" |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1810 </pre> |
470 | 1811 |
1812 <p> | |
1813 Could be defined as: | |
1814 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1815 <pre> |
470 | 1816 local function require(mod_name) |
476 | 1817 return <a href="#Package.load">Package.load</a>(mod_name) or <a href="#Luan.error">Luan.error</a>("module '"..mod_name.."' not found") |
470 | 1818 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1819 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1820 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1821 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1822 <h3 heading><a name="luan_lib">Basic Functions</a></h3> |
470 | 1823 |
1824 <p> | |
1825 Include this library by: | |
1826 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1827 <pre> |
470 | 1828 local Luan = require "luan:Luan" |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1829 </pre> |
470 | 1830 |
476 | 1831 <p> |
470 | 1832 The basic library provides basic functions to Luan that don't depend on other libaries. |
1833 | |
1834 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1835 <h4 heading><a name="Luan.assert"><code>Luan.assert (v [, message])</code></a></h4> |
470 | 1836 |
1837 <p> | |
1838 Could be defined as: | |
1839 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1840 <pre> |
470 | 1841 function Luan.assert(v,message) |
472 | 1842 return v or <a href="#Luan.error">Luan.error</a>(message or "assertion failed!") |
470 | 1843 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1844 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1845 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1846 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1847 <h4 heading><a name="Luan.assert_binary"><code>Luan.assert_binary (v)</code></a></h4> |
470 | 1848 |
1849 <p> | |
1850 Could be defined as: | |
1851 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1852 <pre> |
470 | 1853 function Luan.assert_binary(v) |
1854 local v_type = Luan.type(v) | |
472 | 1855 return v_type == "binary" and v or <a href="#Luan.error">Luan.error</a>("bad argument #1 (binary expected, got "..v_type..")") |
470 | 1856 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1857 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1858 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1859 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1860 <h4 heading><a name="Luan.assert_boolean"><code>Luan.assert_boolean (v)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1861 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1862 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1863 Like <a href="#Luan.assert_binary"><code>assert_binary</code></a> but for type <code>boolean</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1864 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1865 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1866 <h4 heading><a name="Luan.assert_integer"><code>Luan.assert_integer (v)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1867 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1868 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1869 Asserts that <code>v</code> can be converted to Java type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html">Integer</a> and returns an Integer. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1870 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1871 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1872 <h4 heading><a name="Luan.assert_long"><code>Luan.assert_long (v)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1873 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1874 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1875 Asserts that <code>v</code> can be converted to Java type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html">Long</a> and returns a Long. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1876 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1877 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1878 <h4 heading><a name="Luan.assert_number"><code>Luan.assert_number (v)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1879 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1880 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1881 Like <a href="#Luan.assert_binary"><code>assert_binary</code></a> but for type <code>number</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1882 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1883 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1884 <h4 heading><a name="Luan.assert_string"><code>Luan.assert_string (v)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1885 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1886 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1887 Like <a href="#Luan.assert_binary"><code>assert_binary</code></a> but for type <code>string</code>. |
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 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1890 <h4 heading><a name="Luan.assert_table"><code>Luan.assert_table (v)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1891 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1892 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1893 Like <a href="#Luan.assert_binary"><code>assert_binary</code></a> but for type <code>table</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1894 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1895 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1896 <h4 heading><a name="Luan.do_file"><code>Luan.do_file ([uri])</code></a></h4> |
470 | 1897 |
1898 <p> | |
1899 Could be defined as: | |
1900 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1901 <pre> |
470 | 1902 function Luan.do_file(uri) |
474 | 1903 return <a href="#Luan.load_file">Luan.load_file</a>(uri)() |
470 | 1904 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1905 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1906 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1907 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1908 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1909 <h4 heading><a name="Luan.error"><code>Luan.error (message)</code></a></h4> |
470 | 1910 |
1911 <p> | |
482 | 1912 Throws an error containing the message. |
1913 | |
1914 <p> | |
1915 Could be defined as: | |
1916 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1917 <pre> |
482 | 1918 function Luan.error(message) |
1919 <a href="#Luan.new_error">Luan.new_error</a>(message).throw() | |
1920 end | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1921 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1922 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1923 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1924 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1925 <h4 heading><a name="Luan.get_metatable"><code>Luan.get_metatable (table)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1926 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1927 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1928 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
|
1929 Otherwise, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1930 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
|
1931 returns the associated value. |
470 | 1932 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
|
1933 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1934 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1935 <h4 heading><a name="Luan.ipairs"><code>Luan.ipairs (t)</code></a></h4> |
474 | 1936 |
1937 <p> | |
1938 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
|
1939 so that the construction |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1940 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1941 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1942 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
|
1943 </pre> |
474 | 1944 |
1945 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1946 will iterate over the key–value pairs |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1947 (<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
|
1948 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
|
1949 |
474 | 1950 <p> |
1951 Could be defined as: | |
1952 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1953 <pre> |
474 | 1954 function Luan.ipairs(t) |
1955 local i = 0 | |
1956 return function() | |
1957 if i < #t then | |
1958 i = i + 1 | |
1959 return i, t[i] | |
1960 end | |
1961 end | |
1962 end | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1963 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1964 |
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 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1967 <h4 heading><a name="Luan.load"><code>Luan.load (text, source_name [env, [, allow_expression]])</code></a></h4> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1968 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1969 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1970 Loads a chunk. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1971 |
474 | 1972 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1973 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
|
1974 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
|
1975 returns the compiled chunk as a function; |
474 | 1976 otherwise, throws an error. |
1977 | |
1978 <p> | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1979 The <code>source_name</code> parameter is a string saying where the text came from. It is used to produce error messages. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1980 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1981 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1982 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
|
1983 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1984 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1985 If the <code>allow_expression</code> parameter is <code>true</code> then the entire text can be nothing more than an expression in which case the chunk returns the value of this expression. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1986 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1987 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1988 <h4 heading><a name="Luan.load_file"><code>Luan.load_file (file_uri [, add_extension])</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1989 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1990 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1991 Similar to <a href="#Luan.load"><code>load</code></a>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1992 but gets the chunk from file <code>file_uri</code> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
1993 or from the standard input, |
474 | 1994 if no file uri is given. |
1995 | |
1996 <p> | |
1997 Could be defined as: | |
1998 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
1999 <pre> |
474 | 2000 function Luan.load_file(file_uri,add_extension) |
2001 file_uri = file_uri or "stdin:" | |
2002 local f = Io.uri(file_uri,add_extension) | |
2003 f.exists() or <a href="#Luan.error">Luan.error</a>("file '"..file_uri.."' not found") | |
2004 return <a href="#Luan.load">Luan.load</a>( f.read_text(), file_uri ) | |
2005 end | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2006 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2007 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2008 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2009 <h4 heading><a name="Luan.new_error"><code>Luan.new_error (message)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2010 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2011 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2012 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 | 2013 |
2014 <p> | |
2015 To print the current stack trace, you could do: | |
2016 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2017 <pre> |
482 | 2018 Io.print( Luan.new_error "stack" ) |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2019 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2020 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2021 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2022 <h4 heading><a name="Luan.pairs"><code>Luan.pairs (t)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2023 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2024 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2025 If <code>t</code> has a metamethod <code>__pairs</code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2026 calls it with <code>t</code> as argument and returns the |
475 | 2027 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
|
2028 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2029 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2030 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2031 Otherwise, |
475 | 2032 returns a function |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2033 so that the construction |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2034 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2035 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2036 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
|
2037 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2038 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2039 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2040 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
|
2041 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2042 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2043 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2044 <h4 heading><a name="Luan.pcall"><code>Luan.pcall (f [, arg1, ···])</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2045 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2046 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2047 Calls function <code>f</code> with |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2048 the given arguments in <em>protected mode</em>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2049 This means that any error inside <code>f</code> is not propagated; |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2050 instead, <code>pcall</code> catches the error |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2051 and returns a status code. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2052 Its first result is the status code (a boolean), |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2053 which is true if the call succeeds without errors. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2054 In such case, <code>pcall</code> also returns all results from the call, |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2055 after this first result. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2056 In case of any error, <code>pcall</code> returns <b>false</b> plus the error. |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2057 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2058 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2059 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2060 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2061 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2062 <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
|
2063 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
|
2064 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
|
2065 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
|
2066 <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
|
2067 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
|
2068 for instance for debugging. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2069 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
|
2070 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
|
2071 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2072 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2073 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2074 <h4 heading><a name="Luan.range"><code>Luan.range (start, stop [, step])</code></a></h4> |
476 | 2075 |
2076 <p> | |
2077 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. | |
2078 | |
2079 <p> | |
2080 Example use: | |
2081 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2082 <pre> |
476 | 2083 for i in range(1,10) do |
2084 Io.print("count up:",i) | |
2085 end | |
2086 for i in range(10,0,-1) do | |
2087 Io.print("count down:",i) | |
2088 end | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2089 </pre> |
476 | 2090 |
2091 <p> | |
2092 Could be defined as: | |
2093 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2094 <pre> |
476 | 2095 function Luan.range(start, stop, step) |
2096 step = step or 1 | |
478 | 2097 step == 0 and <a href="#Luan.error">Luan.error</a> "bad argument #3 (step may not be zero)" |
476 | 2098 local i = start |
2099 return function() | |
2100 if step > 0 and i <= stop or step < 0 and i >= stop then | |
2101 local rtn = i | |
2102 i = i + step | |
2103 return rtn | |
2104 end | |
2105 end | |
2106 end | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2107 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2108 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2109 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2110 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2111 <h4 heading><a name="Luan.raw_equal"><code>Luan.raw_equal (v1, v2)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2112 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2113 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2114 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
|
2115 without invoking any metamethod. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2116 Returns a boolean. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2117 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2118 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2119 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2120 <h4 heading><a name="Luan.raw_get"><code>Luan.raw_get (table, index)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2121 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2122 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2123 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
|
2124 without invoking any metamethod. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2125 <code>table</code> must be a table; |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2126 <code>index</code> may be any value. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2127 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2128 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2129 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2130 <h4 heading><a name="Luan.raw_len"><code>Luan.raw_len (v)</code></a></h4> |
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 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2133 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
|
2134 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
|
2135 without invoking any metamethod. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2136 Returns an integer. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2137 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2138 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2139 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2140 <h4 heading><a name="Luan.raw_set"><code>Luan.raw_set (table, index, value)</code></a></h4> |
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 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
|
2144 without invoking any metamethod. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2145 <code>table</code> must be a table, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2146 <code>index</code> any value different from <b>nil</b>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2147 and <code>value</code> any Lua value. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2148 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2149 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2150 <h4 heading><a name="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
|
2151 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2152 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2153 Sets the metatable for the given table. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2154 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
|
2155 removes the metatable of the given table. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2156 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
|
2157 raises an error. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2158 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2159 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2160 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2161 <h4 heading><a name="Luan.to_string"><code>Luan.to_string (v)</code></a></h4> |
475 | 2162 |
2163 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2164 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
|
2165 converts it to a string in a human-readable format. |
475 | 2166 |
2167 <p> | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2168 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
|
2169 then <code>to_string</code> calls the corresponding value |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2170 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
|
2171 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
|
2172 |
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 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2175 <h4 heading><a name="Luan.try"><code>Luan.try (t)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2176 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2177 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2178 Implements try-catch as found in other languages where each block is in table <code>t</code>. <code>t[1]</code> is the "try" block. The <code>t.catch</code> and <code>t.finally</code> blocks are optional. Returns the result of the "try" block or the "catch" block. |
476 | 2179 |
2180 <p> | |
2181 Example use: | |
2182 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2183 <pre> |
476 | 2184 try { |
2185 function() | |
2186 a_dangerous_fn() | |
2187 end; | |
2188 catch = function(e) | |
2189 -- handle error | |
2190 end; | |
2191 finally = function() | |
2192 -- clean up | |
2193 end; | |
2194 } | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2195 </pre> |
476 | 2196 |
482 | 2197 <p> |
2198 Could be defined as: | |
2199 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2200 <pre> |
482 | 2201 function Luan.try(t) |
2202 local r = { <a href="#Luan.pcall">Luan.pcall</a>(t[1]) } | |
2203 if r[1] then | |
2204 Table.remove(r,1) | |
2205 elseif t.catch ~= nil then | |
2206 r = { t.catch(r[2]) } | |
2207 else | |
2208 t.finally and t.finally() | |
2209 r[2].throw() | |
2210 end | |
2211 t.finally and t.finally() | |
2212 return Table.unpack(r) | |
2213 end | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2214 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2215 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2216 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2217 <h4 heading><a name="Luan.type"><code>Luan.type (v)</code></a></h4> |
475 | 2218 |
2219 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2220 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
|
2221 The possible results of this function are |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2222 "<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
|
2223 "<code>number</code>", |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2224 "<code>string</code>", |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2225 "<code>binary</code>", |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2226 "<code>boolean</code>", |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2227 "<code>table</code>", |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2228 "<code>function</code>", |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2229 and "<code>java</code>". |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2230 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2231 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2232 <h4 heading><a name="Luan.values"><code>Luan.values (···)</code></a></h4> |
476 | 2233 |
2234 <p> | |
2235 Returns a function so that the construction | |
2236 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2237 <pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2238 for v in Luan.values(···) do <em>body</em> end |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2239 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2240 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2241 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2242 will iterate over all values of <code>···</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2243 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2244 |
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 <h4 heading><a name="Luan.VERSION"><code>Luan.VERSION</code></a></h4> |
475 | 2247 |
2248 <p> | |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2249 A global variable (not a function) that |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2250 holds a string containing the current interpreter version. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2251 The current value of this variable is "<code><%=Luan.VERSION%></code>". |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2252 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2253 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2254 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2255 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2256 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2257 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2258 <h3 heading><a name="package_lib">Modules</a></h3> |
476 | 2259 |
2260 <p> | |
2261 Include this library by: | |
2262 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2263 <pre> |
476 | 2264 local Package = require "luan:Package" |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2265 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2266 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2267 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2268 The package library provides basic |
476 | 2269 facilities for loading modules in Luan. |
2270 | |
2271 | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2272 <h4 heading><a name="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
|
2273 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2274 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2275 Loads the given module. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2276 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
|
2277 to determine whether <code>mod_uri</code> is already loaded. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2278 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
|
2279 at <code>Package.loaded[mod_uri]</code>. |
476 | 2280 Otherwise, it tries to load a new value for the module. |
2281 | |
2282 <p> | |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2283 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
|
2284 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2285 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2286 If <code>mod_uri</code> is not a Java class, then <code>Package.load</code> tries to read the text of the file referred to by <code>mod_uri</code> (using <code>add_extension</code>=true). If the file doesn't exist, then <code>Package.load</code> returns <b>nil</b>. If the file exists, then its content is compiled into a chunk calling <a href="#Luan.load"><code>Luan.load</code></a> and passing in an empty table as the <code>env</code> value. This chunk is run passing in <code>mod_uri</code> as an argument. If the chunk returns a value other than <b>nil</b>, then that value is the value of this module. Otherwise the <code>env</code> that was passed in is the value of this module. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2287 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2288 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2289 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
|
2290 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2291 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2292 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2293 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2294 <h4 heading><a name="Package.loaded"><code>Package.loaded</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2295 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2296 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2297 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2298 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
|
2299 modules are already loaded. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2300 When you load a module <code>mod_uri</code> and |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2301 <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
|
2302 <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
|
2303 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2304 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2305 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2306 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
|
2307 assignments to this variable do not change the |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2308 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
|
2309 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2310 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2311 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2312 |
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 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2315 <h3 heading><a name="string_lib">String Manipulation</a></h3> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2316 |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2317 <p> |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2318 Include this library by: |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2319 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2320 <pre> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2321 local String = require "luan:String" |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2322 </pre> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2323 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2324 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2325 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
|
2326 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
|
2327 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
|
2328 (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
|
2329 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
|
2330 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
|
2331 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
|
2332 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2333 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2334 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2335 <h4 heading><a name="String.char"><code>String.char (···)</code></a></h4> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2336 |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2337 <p> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2338 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
|
2339 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
|
2340 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
|
2341 to its corresponding argument. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2342 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2343 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2344 <h4 heading><a name="String.concat"><code>String.concat (···)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2345 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2346 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2347 Concatenates the <a href="#Luan.to_string"><code>to_string</code></a> value of all arguments. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2348 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2349 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2350 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2351 <h4 heading><a name="String.encode"><code>String.encode (s)</code></a></h4> |
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 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2354 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
|
2355 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2356 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2357 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2358 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2359 <h4 heading><a name="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
|
2360 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2361 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2362 Looks for the first match of |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2363 <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
|
2364 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
|
2365 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
|
2366 otherwise, it returns <b>nil</b>. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2367 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
|
2368 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
|
2369 its default value is 1 and can be negative. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2370 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
|
2371 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
|
2372 so the function does a plain "find substring" operation, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2373 with no characters in <code>pattern</code> being considered magic. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2374 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
|
2375 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2376 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2377 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
|
2378 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
|
2379 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
|
2380 after the two indices. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2381 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2382 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2383 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2384 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2385 <h4 heading><a name="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
|
2386 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2387 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2388 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2389 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
|
2390 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
|
2391 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
|
2392 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2393 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2394 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
|
2395 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2396 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2397 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2398 <h4 heading><a name="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
|
2399 |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2400 <p> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2401 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
|
2402 each time it is called, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2403 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
|
2404 over the string <code>s</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2405 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
|
2406 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
|
2407 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2408 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2409 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2410 As an example, the following loop |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2411 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
|
2412 printing one per line: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2413 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2414 <pre> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2415 local s = "hello world from Lua" |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2416 for w in String.gmatch(s, [[\w+]]) do |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2417 print(w) |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2418 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2419 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2420 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2421 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2422 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
|
2423 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
|
2424 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2425 <pre> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2426 local t = {} |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2427 local s = "from=world, to=Lua" |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2428 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
|
2429 t[k] = v |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2430 end |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2431 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2432 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2433 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2434 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
|
2435 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
|
2436 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2437 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2438 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2439 <h4 heading><a name="String.gsub"><code>String.gsub (s, pattern, repl [, n])</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2440 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2441 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2442 Returns a copy of <code>s</code> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2443 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
|
2444 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
|
2445 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
|
2446 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
|
2447 <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
|
2448 the total number of matches that occurred. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2449 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
|
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 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2453 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
|
2454 The character <code>\</code> works as an escape character. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2455 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
|
2456 with <em>d</em> between 1 and 9, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2457 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
|
2458 The sequence <code>$0</code> stands for the whole match. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2459 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2460 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2461 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2462 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
|
2463 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
|
2464 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2465 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2466 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2467 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
|
2468 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
|
2469 in order. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2470 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2471 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2472 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2473 In any case, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2474 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
|
2475 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
|
2476 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2477 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2478 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2479 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
|
2480 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
|
2481 then it is used as the replacement string; |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2482 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
|
2483 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
|
2484 (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
|
2485 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2486 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2487 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2488 Here are some examples: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2489 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2490 <pre> |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2491 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
|
2492 --> 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
|
2493 |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2494 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
|
2495 --> x="hello hello world" |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2496 |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2497 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
|
2498 --> x="world hello Luan from" |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2499 |
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2500 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
|
2501 return load(s)() |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2502 end) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2503 --> x="4+5 = 9" |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2504 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2505 local t = {name="lua", version="5.3"} |
555
e25ba7a2e816
some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents:
553
diff
changeset
|
2506 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
|
2507 --> x="lua-5.3.tar.gz" |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2508 </pre> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2509 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2510 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2511 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2512 <h4 heading><a name="String.literal"><code>String.literal (s)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2513 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2514 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>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2515 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2516 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2517 <h4 heading><a name="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
|
2518 <p> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2519 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
|
2520 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
|
2521 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
|
2522 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2523 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2524 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2525 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2526 <h4 heading><a name="String.match"><code>String.match (s, pattern [, init])</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2527 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2528 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2529 Looks for the first <em>match</em> of |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2530 <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
|
2531 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
|
2532 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
|
2533 otherwise it returns <b>nil</b>. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2534 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
|
2535 then the whole match is returned. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2536 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
|
2537 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
|
2538 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
|
2539 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2540 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2541 <h4 heading><a name="String.matches"><code>String.matches (s, pattern)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2542 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2543 Returns a boolean indicating whether the entire string <code>s</code> matches <code>pattern</code>. |
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 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2547 <h4 heading><a name="String.rep"><code>String.rep (s, n [, sep])</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2548 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2549 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
|
2550 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
|
2551 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
|
2552 (that is, no separator). |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2553 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
|
2554 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2555 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2556 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2557 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2558 <h4 heading><a name="String.reverse"><code>String.reverse (s)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2559 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2560 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
|
2561 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2562 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2563 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2564 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2565 <h4 heading><a name="String.sub"><code>String.sub (s, i [, j])</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2566 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2567 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2568 Returns the substring of <code>s</code> that |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2569 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
|
2570 <code>i</code> and <code>j</code> can be negative. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2571 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
|
2572 (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
|
2573 In particular, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2574 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
|
2575 with length <code>j</code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2576 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
|
2577 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
|
2578 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2579 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2580 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2581 If, after the translation of negative indices, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2582 <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
|
2583 it is corrected to 1. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2584 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
|
2585 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
|
2586 If, after these corrections, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2587 <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
|
2588 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
|
2589 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2590 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2591 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2592 <h4 heading><a name="String.to_binary"><code>String.to_binary (s)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2593 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2594 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2595 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
|
2596 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2597 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2598 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2599 <h4 heading><a name="String.to_number"><code>String.to_number (s [, base])</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2600 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2601 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2602 When called with no <code>base</code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2603 <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
|
2604 If the argument is |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2605 a string convertible to a number, |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2606 then <code>to_number</code> returns this number; |
556
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2607 otherwise, it returns <b>nil</b>. |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2608 |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2609 The conversion of strings can result in integers or floats. |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2610 |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2611 |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2612 <p> |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2613 When called with <code>base</code>, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2614 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
|
2615 an integer numeral in that base. |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2616 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
|
2617 represents 10, '<code>B</code>' represents 11, and so forth, |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2618 with '<code>Z</code>' representing 35. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2619 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
|
2620 the function returns <b>nil</b>. |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2621 |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2622 |
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2623 |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2624 <h4 heading><a name="String.trim"><code>String.trim (s)</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2625 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2626 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2627 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
|
2628 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2629 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2630 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2631 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2632 <h4 heading><a name="String.unicode"><code>String.unicode (s [, i [, j]])</code></a></h4> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2633 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2634 <p> |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2635 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
|
2636 <code>s[i+1]</code>, ..., <code>s[j]</code>. |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2637 The default value for <code>i</code> is 1; |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2638 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
|
2639 These indices are corrected |
562
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2640 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
|
2641 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2642 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2643 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2644 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2645 |
7cc9d4a53d3b
remove SimplyHTML from documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
556
diff
changeset
|
2646 <h4 heading><a name="String.upper"><code>String.upper (s)</code></a></h4> |
556
d02f43598ba3
finish String documentation
Franklin Schmidt <fschmidt@gmail.com>
parents:
555
diff
changeset
|
2647 <p> |
371
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2648 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
|
2649 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
|
2650 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
|
2651 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
|
2652 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2653 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2654 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2659 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2660 <h2>6.6 – <a name="6.6">Table Manipulation</a></h2> |
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 This library provides generic functions for table manipulation. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2664 It provides all its functions inside the table <a name="pdf-table"><code>table</code></a>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2665 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2666 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2667 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2668 Remember that, whenever an operation needs the length of a table, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2669 the table must be a proper sequence |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2670 or have a <code>__len</code> metamethod (see <a href="#3.4.7">§3.4.7</a>). |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2671 All functions ignore non-numeric keys |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2672 in the tables given as arguments. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2673 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2674 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2675 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2676 <hr><h3><a name="pdf-table.concat"><code>table.concat (list [, sep [, i [, j]]])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2677 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2678 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2679 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2680 Given a list where all elements are strings or numbers, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2681 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
|
2682 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
|
2683 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
|
2684 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
|
2685 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
|
2686 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2687 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2688 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2689 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2690 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2691 <hr><h3><a name="pdf-table.insert"><code>table.insert (list, [pos,] value)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2692 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2693 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2694 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2695 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
|
2696 shifting up the elements |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2697 <code>list[pos], list[pos+1], ···, list[#list]</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2698 The default value for <code>pos</code> is <code>#list+1</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2699 so that a call <code>table.insert(t,x)</code> inserts <code>x</code> at the end |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2700 of list <code>t</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2701 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2702 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2703 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2706 <hr><h3><a name="pdf-table.move"><code>table.move (a1, f, e, t [,a2])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2707 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2708 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2709 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2710 Moves elements from table <code>a1</code> to table <code>a2</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2711 This function performs the equivalent to the following |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2712 multiple assignment: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2713 <code>a2[t],··· = a1[f],···,a1[e]</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2714 The default for <code>a2</code> is <code>a1</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2715 The destination range can overlap with the source range. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2716 Index <code>f</code> must be positive. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2717 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2718 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2719 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2720 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2721 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2722 <hr><h3><a name="pdf-table.pack"><code>table.pack (···)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2723 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2724 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2725 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2726 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
|
2727 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
|
2728 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
|
2729 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2730 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2731 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2732 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2733 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2734 <hr><h3><a name="pdf-table.remove"><code>table.remove (list [, pos])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2735 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2736 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2737 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2738 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
|
2739 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
|
2740 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
|
2741 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
|
2742 <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
|
2743 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
|
2744 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
|
2745 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
|
2746 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
|
2747 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2748 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2749 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2750 The default value for <code>pos</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
|
2751 so that a call <code>table.remove(l)</code> removes the last element |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2752 of list <code>l</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2753 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2754 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2755 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2756 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2757 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2758 <hr><h3><a name="pdf-table.sort"><code>table.sort (list [, comp])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2759 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2760 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2761 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2762 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
|
2763 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
|
2764 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
|
2765 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
|
2766 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
|
2767 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
|
2768 (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
|
2769 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
|
2770 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
|
2771 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2772 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2773 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2774 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
|
2775 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
|
2776 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
|
2777 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2778 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2779 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2780 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2781 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2782 <hr><h3><a name="pdf-table.unpack"><code>table.unpack (list [, i [, j]])</code></a></h3> |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2785 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2786 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
|
2787 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
|
2788 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2789 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2790 return list[i], list[i+1], ···, list[j] |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2791 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2792 By default, <code>i</code> is 1 and <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
|
2793 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2798 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2799 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2800 <h2>6.7 – <a name="6.7">Mathematical Functions</a></h2> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2801 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2802 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2803 This library provides basic mathematical functions. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2804 It provides all its functions and constants inside the table <a name="pdf-math"><code>math</code></a>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2805 Functions with the annotation "<code>integer/float</code>" give |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2806 integer results for integer arguments |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2807 and float results for float (or mixed) arguments. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2808 Rounding functions |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2809 (<a href="#pdf-math.ceil"><code>math.ceil</code></a>, <a href="#pdf-math.floor"><code>math.floor</code></a>, and <a href="#pdf-math.modf"><code>math.modf</code></a>) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2810 return an integer when the result fits in the range of an integer, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2811 or a float otherwise. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2812 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2815 <hr><h3><a name="pdf-math.abs"><code>math.abs (x)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2816 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2817 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2818 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2819 Returns the absolute value of <code>x</code>. (integer/float) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2820 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2825 <hr><h3><a name="pdf-math.acos"><code>math.acos (x)</code></a></h3> |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2828 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2829 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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2833 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2834 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2835 <hr><h3><a name="pdf-math.asin"><code>math.asin (x)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2836 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2837 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2838 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2839 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
|
2840 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2841 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2842 |
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 <hr><h3><a name="pdf-math.atan"><code>math.atan (y [, x])</code></a></h3> |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2849 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2850 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
|
2851 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
|
2852 quadrant of the result. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2853 (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
|
2854 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2855 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2856 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2857 The default value for <code>x</code> is 1, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2858 so that the call <code>math.atan(y)</code> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2859 returns the arc tangent of <code>y</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2860 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2861 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2862 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2863 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2864 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2865 <hr><h3><a name="pdf-math.ceil"><code>math.ceil (x)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2866 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2867 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2868 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2869 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
|
2870 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2871 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2872 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2875 <hr><h3><a name="pdf-math.cos"><code>math.cos (x)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2876 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2877 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2878 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2879 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
|
2880 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2881 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2882 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2883 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2884 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2885 <hr><h3><a name="pdf-math.deg"><code>math.deg (x)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2886 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2887 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2888 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2889 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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2893 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2894 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2895 <hr><h3><a name="pdf-math.exp"><code>math.exp (x)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2896 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2897 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2898 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2899 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
|
2900 (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
|
2901 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2902 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2903 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2904 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2905 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2906 <hr><h3><a name="pdf-math.floor"><code>math.floor (x)</code></a></h3> |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2909 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2910 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
|
2911 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2912 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2913 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2914 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2915 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2916 <hr><h3><a name="pdf-math.fmod"><code>math.fmod (x, y)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2917 |
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 Returns the remainder of the division of <code>x</code> by <code>y</code> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2921 that rounds the quotient towards zero. (integer/float) |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2925 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2926 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2927 <hr><h3><a name="pdf-math.huge"><code>math.huge</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2928 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2931 The float value <code>HUGE_VAL</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2932 a value larger than any other numerical value. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2933 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2937 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2938 <hr><h3><a name="pdf-math.log"><code>math.log (x [, base])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2939 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2940 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2941 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2942 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
|
2943 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
|
2944 (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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2948 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2949 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2950 <hr><h3><a name="pdf-math.max"><code>math.max (x, ···)</code></a></h3> |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2954 Returns the argument with the maximum value, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2955 according to the Lua operator <code><</code>. (integer/float) |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2958 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2961 <hr><h3><a name="pdf-math.maxinteger"><code>math.maxinteger</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2962 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
|
2963 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2966 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2967 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2968 <hr><h3><a name="pdf-math.min"><code>math.min (x, ···)</code></a></h3> |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2972 Returns the argument with the minimum value, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2973 according to the Lua operator <code><</code>. (integer/float) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2974 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2975 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2979 <hr><h3><a name="pdf-math.mininteger"><code>math.mininteger</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2980 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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2985 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2986 <hr><h3><a name="pdf-math.modf"><code>math.modf (x)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2987 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2988 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2989 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2990 Returns the integral part of <code>x</code> and the fractional part of <code>x</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2991 Its second result is always a float. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2992 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2996 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2997 <hr><h3><a name="pdf-math.pi"><code>math.pi</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2998 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
2999 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3000 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3001 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
|
3002 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3003 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3004 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3005 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3006 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3007 <hr><h3><a name="pdf-math.rad"><code>math.rad (x)</code></a></h3> |
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 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
|
3012 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3013 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3014 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3015 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3016 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3017 <hr><h3><a name="pdf-math.random"><code>math.random ([m [, n]])</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3018 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3019 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3020 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3021 When called without arguments, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3022 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
|
3023 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
|
3024 When called with two integers <code>m</code> and <code>n</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3025 <code>math.random</code> returns a pseudo-random integer |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3026 with uniform distribution in the range <em>[m, n]</em>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3027 (The value <em>m-n</em> cannot be negative and must fit in a Lua integer.) |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3028 The call <code>math.random(n)</code> is equivalent to <code>math.random(1,n)</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3029 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3032 This function is an interface to the underling |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3033 pseudo-random generator function provided by C. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3034 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
|
3035 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3039 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3040 <hr><h3><a name="pdf-math.randomseed"><code>math.randomseed (x)</code></a></h3> |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3044 Sets <code>x</code> as the "seed" |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3045 for the pseudo-random generator: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3046 equal seeds produce equal sequences of numbers. |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3049 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3050 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3051 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3052 <hr><h3><a name="pdf-math.sin"><code>math.sin (x)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3053 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3054 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3055 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3056 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
|
3057 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3058 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3059 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3062 <hr><h3><a name="pdf-math.sqrt"><code>math.sqrt (x)</code></a></h3> |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3065 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3066 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
|
3067 (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
|
3068 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3069 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3070 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3071 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3072 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3073 <hr><h3><a name="pdf-math.tan"><code>math.tan (x)</code></a></h3> |
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 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
|
3078 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3079 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3080 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3083 <hr><h3><a name="pdf-math.tointeger"><code>math.tointeger (x)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3084 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3085 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3086 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3087 If the value <code>x</code> is convertible to an integer, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3088 returns that integer. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3089 Otherwise, returns <b>nil</b>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3090 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3091 |
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 <hr><h3><a name="pdf-math.type"><code>math.type (x)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3096 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3097 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3098 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3099 Returns "<code>integer</code>" if <code>x</code> is an integer, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3100 "<code>float</code>" if it is a float, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3101 or <b>nil</b> if <code>x</code> is not a number. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3102 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3105 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3106 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3107 <hr><h3><a name="pdf-math.ult"><code>math.ult (m, n)</code></a></h3> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3108 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3109 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3110 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3111 Returns a boolean, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3112 true if integer <code>m</code> is below integer <code>n</code> when |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3113 they are compared as unsigned integers. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3114 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3120 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3121 <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
|
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 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
|
3125 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
|
3126 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
|
3127 default output file, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3128 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
|
3129 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
|
3130 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3133 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
|
3134 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
|
3135 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
|
3136 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
|
3137 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
|
3138 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3139 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3140 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3141 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
|
3142 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
|
3143 <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
|
3144 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
|
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3148 Unless otherwise stated, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3149 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
|
3150 (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
|
3151 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
|
3152 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
|
3153 On non-POSIX systems, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3154 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
|
3155 in case of errors |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3156 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
|
3157 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
|
3158 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3159 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3160 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3161 <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
|
3162 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3163 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3164 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3165 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
|
3166 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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3171 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3172 <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
|
3173 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3174 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3175 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3176 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
|
3177 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3178 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3182 <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
|
3183 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3184 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3185 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3186 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
|
3187 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
|
3188 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
|
3189 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
|
3190 When called without parameters, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3191 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
|
3192 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3193 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3194 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3195 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
|
3196 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
|
3197 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3198 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3199 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3200 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3201 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3202 <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
|
3203 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3204 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3205 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3206 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
|
3207 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
|
3208 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
|
3209 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
|
3210 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
|
3211 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3212 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3213 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3214 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
|
3215 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
|
3216 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
|
3217 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
|
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3221 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
|
3222 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
|
3223 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3227 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3228 <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
|
3229 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3230 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3231 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3232 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
|
3233 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
|
3234 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
|
3235 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
|
3236 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3237 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3238 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3239 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
|
3240 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3241 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3242 <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
|
3243 <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
|
3244 <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
|
3245 <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
|
3246 <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
|
3247 <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
|
3248 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
|
3249 </ul><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3250 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
|
3251 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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3255 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3256 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3257 <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
|
3258 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3259 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3260 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3261 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
|
3262 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3263 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3264 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3267 <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
|
3268 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3271 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
|
3272 on all platforms. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3273 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3274 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3275 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3276 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
|
3277 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
|
3278 (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
|
3279 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
|
3280 (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
|
3281 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3284 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3285 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3286 <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
|
3287 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3288 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3289 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3290 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
|
3291 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3292 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3293 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3294 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3295 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3296 <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
|
3297 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3298 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3299 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3300 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
|
3301 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
|
3302 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
|
3303 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3304 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3305 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3306 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3307 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3308 <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
|
3309 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3312 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
|
3313 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
|
3314 <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
|
3315 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
|
3316 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3317 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3318 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3321 <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
|
3322 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3323 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3324 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3325 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
|
3326 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3327 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3328 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3329 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3330 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3331 <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
|
3332 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3333 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3334 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3335 Closes <code>file</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3336 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
|
3337 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
|
3338 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
|
3339 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3340 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3341 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3342 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
|
3343 <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
|
3344 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
|
3345 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3346 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3350 <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
|
3351 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3352 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3353 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3354 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
|
3355 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3356 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3357 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3360 <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
|
3361 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3362 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3363 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3364 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
|
3365 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
|
3366 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
|
3367 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
|
3368 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
|
3369 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
|
3370 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3371 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3372 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
|
3373 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3374 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
|
3375 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
|
3376 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
|
3377 when the loop ends. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3378 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3379 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3380 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3381 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
|
3382 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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3386 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3387 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3388 <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
|
3389 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3390 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3391 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3392 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
|
3393 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
|
3394 For each format, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3395 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
|
3396 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
|
3397 (In this latter case, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3398 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
|
3399 When called without formats, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3400 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
|
3401 (see below). |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3405 The available formats are |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3406 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3407 <ul> |
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 <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
|
3410 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
|
3411 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
|
3412 (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
|
3413 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
|
3414 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
|
3415 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
|
3416 (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
|
3417 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
|
3418 </li> |
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 <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
|
3421 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
|
3422 </li> |
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 <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
|
3425 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
|
3426 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
|
3427 </li> |
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 <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
|
3430 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
|
3431 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
|
3432 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
|
3433 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3434 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3435 <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
|
3436 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
|
3437 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
|
3438 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3439 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3440 <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
|
3441 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
|
3442 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
|
3443 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
|
3444 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
|
3445 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
|
3446 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3447 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3448 </ul><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3449 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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3453 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3454 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3455 <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
|
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 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
|
3460 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
|
3461 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
|
3462 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
|
3463 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3464 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3465 <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
|
3466 <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
|
3467 <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
|
3468 </ul><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3469 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
|
3470 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
|
3471 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
|
3472 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
|
3473 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3474 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3475 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3476 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
|
3477 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
|
3478 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
|
3479 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
|
3480 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
|
3481 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
|
3482 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
|
3483 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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3488 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3489 <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
|
3490 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3491 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3492 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3493 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
|
3494 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
|
3495 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3496 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3497 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3498 <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
|
3499 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
|
3500 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3501 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3502 <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
|
3503 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
|
3504 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
|
3505 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
|
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>line</code>": </b> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3509 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
|
3510 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
|
3511 (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
|
3512 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3513 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3514 </ul><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3515 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
|
3516 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
|
3517 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
|
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-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
|
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 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
|
3528 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
|
3529 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3530 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3531 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3532 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
|
3533 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
|
3534 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3538 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3539 |
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 <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
|
3542 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3543 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3544 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
|
3545 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3548 <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
|
3549 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3550 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3551 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3552 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
|
3553 used by the program. |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3556 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3559 <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
|
3560 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3561 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3562 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3563 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
|
3564 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
|
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3568 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
|
3569 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
|
3570 (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
|
3571 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
|
3572 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3573 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3574 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3575 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
|
3576 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
|
3577 After this optional character, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3578 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
|
3579 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
|
3580 <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
|
3581 <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
|
3582 <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
|
3583 <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
|
3584 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
|
3585 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
|
3586 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
|
3587 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3588 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3589 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3590 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
|
3591 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
|
3592 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
|
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 When called without arguments, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3597 <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
|
3598 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
|
3599 (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
|
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 On non-POSIX systems, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3604 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
|
3605 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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3609 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3610 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3611 <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
|
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3615 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
|
3616 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
|
3617 (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
|
3618 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
|
3619 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
|
3620 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3621 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3622 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3623 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3624 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3625 <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
|
3626 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3627 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3628 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3629 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
|
3630 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
|
3631 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
|
3632 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
|
3633 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
|
3634 After this first result |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3635 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
|
3636 as follows: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3637 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3638 <ul> |
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 <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
|
3641 the command terminated normally; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3642 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
|
3643 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3644 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3645 <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
|
3646 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
|
3647 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
|
3648 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3649 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3650 </ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3651 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3652 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3653 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
|
3654 <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
|
3655 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3656 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3657 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3658 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3659 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3660 <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
|
3661 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3664 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
|
3665 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
|
3666 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
|
3667 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
|
3668 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
|
3669 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
|
3670 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
|
3671 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
|
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3675 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
|
3676 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
|
3677 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3678 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3679 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3680 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3681 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3682 <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
|
3683 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3684 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3685 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3686 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
|
3687 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
|
3688 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3692 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3693 <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
|
3694 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3695 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3696 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3697 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
|
3698 with the given name. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3699 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
|
3700 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
|
3701 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3705 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3706 <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
|
3707 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3708 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3709 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3710 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
|
3711 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
|
3712 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
|
3713 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3714 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3715 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3716 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3717 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3718 <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
|
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 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
|
3723 <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
|
3724 <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
|
3725 <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
|
3726 <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
|
3727 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
|
3728 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
|
3729 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
|
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3733 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
|
3734 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
|
3735 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
|
3736 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
|
3737 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3738 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3739 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3740 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
|
3741 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
|
3742 for the given category. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3743 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3744 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3745 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3746 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
|
3747 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
|
3748 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3749 |
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 <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
|
3754 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3755 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3756 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3757 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
|
3758 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
|
3759 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
|
3760 and may have fields |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3761 <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
|
3762 <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
|
3763 <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
|
3764 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
|
3765 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
|
3766 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3767 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3768 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3769 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
|
3770 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
|
3771 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
|
3772 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
|
3773 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
|
3774 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
|
3775 <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
|
3776 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3777 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3778 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3781 <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
|
3782 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3783 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3784 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3785 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
|
3786 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
|
3787 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
|
3788 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
|
3789 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3790 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3791 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3792 On POSIX systems, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3793 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
|
3794 to avoid security risks. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3795 (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
|
3796 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
|
3797 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
|
3798 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
|
3799 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3800 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3801 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3802 When possible, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3803 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
|
3804 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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3808 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3809 |
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 <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
|
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 This library provides |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3816 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
|
3817 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
|
3818 Several of its functions |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3819 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
|
3820 (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
|
3821 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
|
3822 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
|
3823 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
|
3824 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
|
3825 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
|
3826 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3829 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
|
3830 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
|
3831 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
|
3832 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
|
3833 thread to operate over. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3834 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
|
3835 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3836 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3837 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3838 <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
|
3839 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3840 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3841 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3842 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
|
3843 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
|
3844 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
|
3845 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
|
3846 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
|
3847 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
|
3848 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
|
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3852 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
|
3853 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
|
3854 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3858 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3859 <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
|
3860 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3863 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
|
3864 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
|
3865 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
|
3866 (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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3870 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3871 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3872 <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
|
3873 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3874 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3875 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3876 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
|
3877 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
|
3878 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
|
3879 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
|
3880 of the given thread: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3881 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
|
3882 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
|
3883 (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
|
3884 and so on. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3885 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
|
3886 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
|
3887 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3888 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3889 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3890 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
|
3891 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
|
3892 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
|
3893 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
|
3894 If present, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3895 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
|
3896 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
|
3897 If present, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3898 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
|
3899 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
|
3900 valid lines. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3901 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3902 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3903 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3904 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
|
3905 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
|
3906 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
|
3907 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
|
3908 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
|
3909 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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3913 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3914 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3915 <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
|
3916 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3917 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3918 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3919 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
|
3920 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
|
3921 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
|
3922 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
|
3923 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3924 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3925 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3926 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
|
3927 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
|
3928 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
|
3929 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
|
3930 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
|
3931 -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
|
3932 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
|
3933 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
|
3934 (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
|
3935 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3936 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3937 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3938 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
|
3939 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
|
3940 (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
|
3941 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
|
3942 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3945 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
|
3946 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
|
3947 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3948 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3949 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3950 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3951 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3952 <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
|
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 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
|
3957 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
|
3958 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3959 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3960 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3961 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3962 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3963 <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
|
3964 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3965 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3966 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3967 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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3972 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3973 <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
|
3974 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3975 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3976 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3977 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
|
3978 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
|
3979 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
|
3980 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3981 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3982 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3983 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
|
3984 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
|
3985 (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
|
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3990 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3991 <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
|
3992 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3993 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3994 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
3995 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
|
3996 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
|
3997 returns <b>nil</b>. |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4000 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4001 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4002 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4003 <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
|
4004 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4007 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
|
4008 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
|
4009 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
|
4010 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
|
4011 with the given meaning: |
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 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4014 <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
|
4015 <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
|
4016 <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
|
4017 </ul><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4018 Moreover, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4019 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
|
4020 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
|
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4024 When called without arguments, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4025 <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
|
4026 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4027 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4028 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4029 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
|
4030 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
|
4031 <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
|
4032 <code>"return"</code>, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4033 <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
|
4034 For line events, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4035 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
|
4036 Inside a hook, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4037 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
|
4038 the running function |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4039 (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
|
4040 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
|
4041 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4042 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4043 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4044 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4045 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4046 <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
|
4047 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4048 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4049 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4050 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
|
4051 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
|
4052 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
|
4053 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
|
4054 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
|
4055 (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
|
4056 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
|
4057 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4058 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4059 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4060 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
|
4061 variable indices and names. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4062 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4063 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4064 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4067 <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
|
4068 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4069 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4070 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4071 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
|
4072 (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
|
4073 Returns <code>value</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4074 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4078 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4079 <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
|
4080 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4081 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4082 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4083 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
|
4084 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
|
4085 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
|
4086 with the given index. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4087 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
|
4088 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4089 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4090 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4091 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4092 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4093 <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
|
4094 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4095 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4096 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4097 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
|
4098 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
|
4099 <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
|
4100 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4101 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4102 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4103 Returns <code>udata</code>. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4104 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4107 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4108 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4109 <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
|
4110 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4111 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4112 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4113 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
|
4114 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
|
4115 Otherwise, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4116 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
|
4117 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
|
4118 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
|
4119 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
|
4120 to start the traceback |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4121 (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
|
4122 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4123 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4124 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4127 <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
|
4128 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4129 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4130 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4131 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
|
4132 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
|
4133 from the given function. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4134 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4135 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4136 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4137 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
|
4138 closures share upvalues. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4139 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
|
4140 (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
|
4141 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
|
4142 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4143 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4144 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4145 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4146 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4147 <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
|
4148 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4149 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4150 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4151 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
|
4152 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
|
4153 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4154 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4158 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4159 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4160 <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
|
4161 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4162 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4163 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
|
4164 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
|
4165 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
|
4166 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
|
4167 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
|
4168 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
|
4169 The standalone interpreter includes |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4170 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
|
4171 Its usage is: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4172 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4173 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4174 lua [options] [script [args]] |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4175 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4176 The options are: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4177 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4178 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4179 <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
|
4180 <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
|
4181 <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
|
4182 <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
|
4183 <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
|
4184 <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
|
4185 <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
|
4186 </ul><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4187 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
|
4188 When called without arguments, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4189 <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
|
4190 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
|
4191 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
|
4192 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4193 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4194 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4195 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
|
4196 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
|
4197 (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
|
4198 before running any argument. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4199 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
|
4200 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
|
4201 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
|
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 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
|
4206 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
|
4207 Lua also ignores |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4208 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
|
4209 setting the values of |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4210 <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
|
4211 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
|
4212 |
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4215 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
|
4216 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
|
4217 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4218 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4219 $ 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
|
4220 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4221 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
|
4222 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
|
4223 (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
|
4224 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4225 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4226 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4227 Before running any code, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4228 <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
|
4229 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
|
4230 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
|
4231 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
|
4232 and so on. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4233 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
|
4234 (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
|
4235 go to negative indices. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4236 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
|
4237 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4238 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4239 $ 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
|
4240 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4241 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
|
4242 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4243 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4244 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
|
4245 [0] = "b.lua", |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4246 [1] = "t1", [2] = "t2" } |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4247 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4248 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
|
4249 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
|
4250 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
|
4251 For instance, the call |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4252 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4253 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4254 $ 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
|
4255 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4256 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
|
4257 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
|
4258 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
|
4259 <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
|
4260 (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
|
4261 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
|
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 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4265 In interactive mode, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4266 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
|
4267 After reading a line, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4268 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
|
4269 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
|
4270 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
|
4271 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
|
4272 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
|
4273 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
|
4274 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4275 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4276 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4277 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
|
4278 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
|
4279 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
|
4280 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
|
4281 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
|
4282 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
|
4283 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
|
4284 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4285 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4286 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4287 When finishing normally, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4288 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
|
4289 (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
|
4290 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
|
4291 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
|
4292 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4293 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4294 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4295 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
|
4296 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
|
4297 the standalone interpreter skips |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4298 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
|
4299 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
|
4300 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
|
4301 as in |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4302 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4303 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4304 #!/usr/local/bin/lua |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4305 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4306 (Of course, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4307 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
|
4308 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
|
4309 then |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4310 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4311 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4312 #!/usr/bin/env lua |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4313 </pre><p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4314 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
|
4315 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4316 |
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 <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
|
4319 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4320 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4321 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
|
4322 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
|
4323 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
|
4324 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
|
4325 However, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4326 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
|
4327 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4328 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4329 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4330 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
|
4331 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
|
4332 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
|
4333 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
|
4334 Therefore, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4335 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
|
4336 different Lua versions. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4337 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
|
4338 using a new version. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4339 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4340 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4341 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4342 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
|
4343 of precompiled chunks; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4344 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
|
4345 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4346 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4347 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4348 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
|
4349 change between versions. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4350 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4351 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4352 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4353 <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
|
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 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4357 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
|
4358 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
|
4359 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
|
4360 some computations |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4361 (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
|
4362 can give different results. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4363 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4364 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4365 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4366 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
|
4367 (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
|
4368 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
|
4369 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
|
4370 (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
|
4371 for an occasional incompatibility; |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4372 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
|
4373 For good programming, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4374 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
|
4375 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
|
4376 </li> |
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 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4379 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
|
4380 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
|
4381 (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
|
4382 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
|
4383 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
|
4384 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
|
4385 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4386 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4387 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4388 (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
|
4389 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
|
4390 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
|
4391 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4392 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4393 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4394 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
|
4395 (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
|
4396 </li> |
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 </ul> |
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 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4403 <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
|
4404 <ul> |
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 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4407 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
|
4408 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
|
4409 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
|
4410 (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
|
4411 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
|
4412 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4413 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4414 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4415 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
|
4416 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
|
4417 </li> |
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 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4420 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
|
4421 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
|
4422 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4423 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4424 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4425 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
|
4426 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
|
4427 </li> |
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 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4430 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
|
4431 <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
|
4432 <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
|
4433 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
|
4434 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
|
4435 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
|
4436 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
|
4437 For the other operations, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4438 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
|
4439 implement them in Lua. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4440 </li> |
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 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4443 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
|
4444 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
|
4445 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
|
4446 (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
|
4447 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
|
4448 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
|
4449 (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
|
4450 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
|
4451 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4452 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4453 </ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4454 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4455 |
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 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4458 <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
|
4459 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4460 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4461 <ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4462 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4463 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4464 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
|
4465 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
|
4466 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
|
4467 Adapt your code accordingly. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4468 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4469 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4470 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4471 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
|
4472 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
|
4473 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4474 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4475 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4476 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
|
4477 (<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
|
4478 <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
|
4479 were deprecated. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4480 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
|
4481 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4482 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4483 <li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4484 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
|
4485 (<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
|
4486 were deprecated. |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4487 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
|
4488 (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
|
4489 </li> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4490 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4491 </ul> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4492 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4493 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4494 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4495 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4496 <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
|
4497 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4498 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4499 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
|
4500 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
|
4501 {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
|
4502 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
|
4503 (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
|
4504 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
|
4505 Name, Numeral, |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4506 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
|
4507 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4508 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4509 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4510 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4511 <pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4512 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4513 chunk ::= block |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4514 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4515 block ::= {stat} [retstat] |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4516 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4517 stat ::= ‘<b>;</b>’ | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4518 varlist ‘<b>=</b>’ explist | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4519 functioncall | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4520 label | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4521 <b>break</b> | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4522 <b>goto</b> Name | |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4523 <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
|
4524 <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
|
4525 <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
|
4526 <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
|
4527 <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
|
4528 <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
|
4529 <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
|
4530 <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
|
4531 <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
|
4532 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4533 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
|
4534 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4535 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
|
4536 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4537 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
|
4538 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4539 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
|
4540 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4541 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
|
4542 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4543 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
|
4544 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4545 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
|
4546 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4547 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
|
4548 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
|
4549 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4550 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
|
4551 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4552 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
|
4553 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4554 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
|
4555 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4556 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
|
4557 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4558 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
|
4559 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4560 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
|
4561 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4562 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
|
4563 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4564 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
|
4565 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4566 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
|
4567 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4568 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
|
4569 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4570 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
|
4571 ‘<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
|
4572 ‘<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
|
4573 <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
|
4574 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4575 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
|
4576 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4577 </pre> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4578 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4579 <p> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4580 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4581 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4582 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4583 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4584 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4585 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4586 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4587 |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4588 <HR> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4589 <SMALL CLASS="footer"> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4590 Last update: |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4591 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
|
4592 </SMALL> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4593 <!-- |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4594 Last change: minor edit |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4595 --> |
e01cddba3433
add manual.html as copy of Lua 5.3 Reference Manual
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff
changeset
|
4596 |
372 | 4597 </div> |
386
db23f654f87d
make all of website use luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
382
diff
changeset
|
4598 |
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
|
4599 </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
|
4600 </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
|
4601 <% |
386
db23f654f87d
make all of website use luan
Franklin Schmidt <fschmidt@gmail.com>
parents:
382
diff
changeset
|
4602 end |