Mercurial Hosting > luan
diff website/src/manual.html @ 1327:b29eefad2111
website - improve docs
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 08 Feb 2019 00:45:31 -0700 |
parents | 29d6d7d79c41 |
children | 60599adc27b8 |
line wrap: on
line diff
--- a/website/src/manual.html Thu Feb 07 23:13:23 2019 -0700 +++ b/website/src/manual.html Fri Feb 08 00:45:31 2019 -0700 @@ -13,7 +13,7 @@ / <a href="docs.html">Documentation</a> </div> -<h1>Luan Reference Manual</h1> +<h1><a href="manual.html">Luan Reference Manual</a></h1> <p small> Original copyright © 2015 Lua.org, PUC-Rio. @@ -94,7 +94,7 @@ <hr/> -<h2 heading><a name="intro">Introduction</a></h2> +<h2 heading><a name="intro" href="#intro">Introduction</a></h2> <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,11 +103,11 @@ <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> -<h2 heading><a name="basic">Basic Concepts</a></h2> +<h2 heading><a name="basic" href="#basic">Basic Concepts</a></h2> <p>This section describes the basic concepts of the language.</p> -<h3 heading><a name="types">Values and Types</a></h3> +<h3 heading><a name="types" href="#types">Values and Types</a></h3> <p> Luan is a <em>dynamically typed language</em>. @@ -226,7 +226,7 @@ -<h3 heading><a name="env">Environments</a></h3> +<h3 heading><a name="env" href="#env">Environments</a></h3> <p> 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>. @@ -238,7 +238,7 @@ can be syntactically translated to <code>_ENV.var</code> if <code>_ENV</code> is defined. -<h3 heading><a name="error">Error Handling</a></h3> +<h3 heading><a name="error" href="#error">Error Handling</a></h3> <p> Luan code can explicitly generate an error by calling the @@ -256,7 +256,7 @@ -<h3 heading><a name="meta">Metatables and Metamethods</a></h3> +<h3 heading><a name="meta" href="#meta">Metatables and Metamethods</a></h3> <p> Every table in Luan can have a <em>metatable</em>. @@ -475,7 +475,7 @@ -<h3 heading><a name="gc">Garbage Collection</a></h3> +<h3 heading><a name="gc" href="#gc">Garbage Collection</a></h3> <p> Luan uses Java's garbage collection. @@ -484,7 +484,7 @@ -<h2 heading><a name="lang">The Language</a></h2> +<h2 heading><a name="lang" href="#lang">The Language</a></h2> <p> This section describes the lexis, the syntax, and the semantics of Luan. @@ -508,7 +508,7 @@ -<h3 heading><a name="lex">Lexical Conventions</a></h3> +<h3 heading><a name="lex" href="#lex">Lexical Conventions</a></h3> <p> Luan ignores spaces and comments @@ -686,7 +686,7 @@ -<h3 heading><a name="vars">Variables</a></h3> +<h3 heading><a name="vars" href="#vars">Variables</a></h3> <p> Variables are places that store values. @@ -749,7 +749,7 @@ -<h3 heading><a name="stmts">Statements</a></h3> +<h3 heading><a name="stmts" href="#stmts">Statements</a></h3> <p> Luan supports an almost conventional set of statements, @@ -760,7 +760,7 @@ -<h4 heading><a name="blocks">Blocks</a></h4> +<h4 heading><a name="blocks" href="#blocks">Blocks</a></h4> <p> A block is a list of statements, @@ -799,7 +799,7 @@ -<h4 heading><a name="chunks">Chunks</a></h4> +<h4 heading><a name="chunks" href="#chunks">Chunks</a></h4> <p> The unit of compilation of Luan is called a <em>chunk</em>. @@ -829,7 +829,7 @@ -<h4 heading><a name="assignment">Assignment</a></h4> +<h4 heading><a name="assignment" href="#assignment">Assignment</a></h4> <p> Luan allows multiple assignments. @@ -913,7 +913,7 @@ -<h4 heading><a name="control">Control Structures</a></h4> +<h4 heading><a name="control" href="#control">Control Structures</a></h4> <p> The control structures @@ -976,7 +976,7 @@ -<h4 heading><a name="for">For Statement</a></h4> +<h4 heading><a name="for" href="#for">For Statement</a></h4> <p> The <b>for</b> statement works over functions, @@ -1043,7 +1043,7 @@ -<h4 heading><a name="fn_stmt">Function Calls as Statements</a></h4> +<h4 heading><a name="fn_stmt" href="#fn_stmt">Function Calls as Statements</a></h4> <p> To allow possible side-effects, @@ -1059,7 +1059,7 @@ -<h4 heading><a name="local_stmt">Local Declarations</a></h4> +<h4 heading><a name="local_stmt" href="#local_stmt">Local Declarations</a></h4> <p> Local variables can be declared anywhere inside a block. @@ -1084,7 +1084,7 @@ The visibility rules for local variables are explained in <a href="#visibility">Visibility Rules</a>. -<h4 heading><a name="template_stmt">Template Statements</a></h4> +<h4 heading><a name="template_stmt" href="#template_stmt">Template Statements</a></h4> <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> @@ -1108,7 +1108,7 @@ -<h3 heading><a name="expressions">Expressions</a></h3> +<h3 heading><a name="expressions" href="#expressions">Expressions</a></h3> <p> The basic expressions in Luan are the following: @@ -1194,7 +1194,7 @@ -<h4 heading><a name="arithmetic">Arithmetic Operators</a></h4> +<h4 heading><a name="arithmetic" href="#arithmetic">Arithmetic Operators</a></h4> <p> Luan supports the following arithmetic operators: @@ -1219,7 +1219,7 @@ -<h4 heading><a name="conversions">Coercions and Conversions</a></h4> +<h4 heading><a name="conversions" href="#conversions">Coercions and Conversions</a></h4> <p> Luan generally avoids automatic conversions. @@ -1231,7 +1231,7 @@ -<h4 heading><a name="relational">Relational Operators</a></h4> +<h4 heading><a name="relational" href="#relational">Relational Operators</a></h4> <p> Luan supports the following relational operators: @@ -1297,7 +1297,7 @@ -<h4 heading><a name="logical_ops">Logical Operators</a></h4> +<h4 heading><a name="logical_ops" href="#logical_ops">Logical Operators</a></h4> <p> The logical operators in Luan are @@ -1337,7 +1337,7 @@ -<h4 heading><a name="concatenation">Concatenation</a></h4> +<h4 heading><a name="concatenation" href="#concatenation">Concatenation</a></h4> <p> The string concatenation operator in Luan is @@ -1346,7 +1346,7 @@ -<h4 heading><a name="length">The Length Operator</a></h4> +<h4 heading><a name="length" href="#length">The Length Operator</a></h4> <p> The length operator is denoted by the unary prefix operator <code>#</code>. @@ -1380,7 +1380,7 @@ -<h4 heading><a name="precedence">Precedence</a></h4> +<h4 heading><a name="precedence" href="#precedence">Precedence</a></h4> <p> Operator precedence in Luan follows the table below, @@ -1408,7 +1408,7 @@ -<h4 heading><a name="constructors">Table Constructors</a></h4> +<h4 heading><a name="constructors" href="#constructors">Table Constructors</a></h4> <p> Table constructors are expressions that create tables. @@ -1476,7 +1476,7 @@ -<h4 heading><a name="fn_calls">Function Calls</a></h4> +<h4 heading><a name="fn_calls" href="#fn_calls">Function Calls</a></h4> <p> A function call in Luan has the following syntax: @@ -1515,7 +1515,7 @@ -<h4 heading><a name="fn_def">Function Definitions</a></h4> +<h4 heading><a name="fn_def" href="#fn_def">Function Definitions</a></h4> <p> The syntax for function definition is @@ -1664,7 +1664,7 @@ then the function returns with no results. -<h4 heading><a name="template_expr">Template Expressions</a></h4> +<h4 heading><a name="template_expr" href="#template_expr">Template Expressions</a></h4> <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> @@ -1684,7 +1684,7 @@ -<h3 heading><a name="visibility">Visibility Rules</a></h3> +<h3 heading><a name="visibility" href="#visibility">Visibility Rules</a></h3> <p> Luan is a lexically scoped language. @@ -1747,7 +1747,7 @@ -<h2 heading><a name="libs">Standard Libraries</a></h2> +<h2 heading><a name="libs" href="#libs">Standard Libraries</a></h2> <p> The standard Luan libraries provide useful functions @@ -1758,19 +1758,19 @@ others provide access to "outside" services (e.g., I/O). -<h3 heading><a name="default_lib">Default Environment</a></h3> +<h3 heading><a name="default_lib" href="#default_lib">Default Environment</a></h3> <p> These are provided by default as local variables for any Luan code as described in <a href="#env">Environments</a>. -<h4 heading><a name="require"><code>java ()</code></a></h4> +<h4 heading><a name="java" href="#java"><code>java ()</code></a></h4> <p> 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. -<h4 heading><a name="require"><code>require (mod_uri)</code></a></h4> +<h4 heading><a name="require" href="#require"><code>require (mod_uri)</code></a></h4> <p> Example use: @@ -1789,7 +1789,7 @@ </pre> -<h3 heading><a name="luan_lib">Basic Functions</a></h3> +<h3 heading><a name="luan_lib" href="#luan_lib">Basic Functions</a></h3> <p> Include this library by: @@ -2184,7 +2184,7 @@ -<h3 heading><a name="package_lib">Modules</a></h3> +<h3 heading><a name="package_lib" href="#package_lib">Modules</a></h3> <p> Include this library by: @@ -2241,7 +2241,7 @@ -<h3 heading><a name="string_lib">String Manipulation</a></h3> +<h3 heading><a name="string_lib" href="#string_lib">String Manipulation</a></h3> <p> Include this library by: @@ -2593,7 +2593,7 @@ -<h3 heading><a name="binary_lib">Binary Manipulation</a></h3> +<h3 heading><a name="binary_lib" href="#binary_lib">Binary Manipulation</a></h3> <p> Include this library by: @@ -2630,7 +2630,7 @@ -<h3 heading><a name="table_lib">Table Manipulation</a></h3> +<h3 heading><a name="table_lib" href="#table_lib">Table Manipulation</a></h3> <p> Include this library by: @@ -2750,7 +2750,7 @@ -<h3 heading><a name="number_lib">Number Manipulation</a></h3> +<h3 heading><a name="number_lib" href="#number_lib">Number Manipulation</a></h3> <p> Include this library by: @@ -2791,7 +2791,7 @@ -<h3 heading><a name="math_lib">Mathematical Functions</a></h3> +<h3 heading><a name="math_lib" href="#math_lib">Mathematical Functions</a></h3> <p> Include this library by: