Mercurial Hosting > luan
comparison website/src/manual.html.luan @ 465:47c7de1f2322
documentation work
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 07 May 2015 22:10:45 -0600 |
parents | eddf7c73373b |
children | 9b51e2413cab |
comparison
equal
deleted
inserted
replaced
464:eddf7c73373b | 465:47c7de1f2322 |
---|---|
58 <li><a href="#assignment">Assignment</a></li> | 58 <li><a href="#assignment">Assignment</a></li> |
59 <li><a href="#control">Control Structures</a></li> | 59 <li><a href="#control">Control Structures</a></li> |
60 <li><a href="#for">For Statement</a></li> | 60 <li><a href="#for">For Statement</a></li> |
61 <li><a href="#fn_stmt">Function Calls as Statements</a></li> | 61 <li><a href="#fn_stmt">Function Calls as Statements</a></li> |
62 <li><a href="#local_stmt">Local Declarations</a></li> | 62 <li><a href="#local_stmt">Local Declarations</a></li> |
63 <li><a href="#template_stmt">Template Statements</a></li> | |
63 </ul> | 64 </ul> |
64 </li> | 65 </li> |
65 <li> | 66 <li> |
66 <a href="#expressions">Expressions</a> | 67 <a href="#expressions">Expressions</a> |
67 <ul> | 68 <ul> |
73 <li><a href="#length">The Length Operator</a></li> | 74 <li><a href="#length">The Length Operator</a></li> |
74 <li><a href="#precedence">Precedence</a></li> | 75 <li><a href="#precedence">Precedence</a></li> |
75 <li><a href="#constructors">Table Constructors</a></li> | 76 <li><a href="#constructors">Table Constructors</a></li> |
76 <li><a href="#fn_calls">Function Calls</a></li> | 77 <li><a href="#fn_calls">Function Calls</a></li> |
77 <li><a href="#fn_def">Function Definitions</a></li> | 78 <li><a href="#fn_def">Function Definitions</a></li> |
79 <li><a href="#template_expr">Template Expressions</a></li> | |
78 </ul> | 80 </ul> |
79 </li> | 81 </li> |
80 <li><a href="#visibility">Visibility Rules</a></li> | 82 <li><a href="#visibility">Visibility Rules</a></li> |
81 </ul> | 83 </ul> |
82 </div> | 84 </div> |
1105 | 1107 |
1106 <p> | 1108 <p> |
1107 The visibility rules for local variables are explained in <a href="#visibility">Visibility Rules</a>. | 1109 The visibility rules for local variables are explained in <a href="#visibility">Visibility Rules</a>. |
1108 | 1110 |
1109 | 1111 |
1112 <h4 margin-top="1em"><a name="template_stmt">Template Statements</a></h4> | |
1113 | |
1114 <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> | |
1115 | |
1116 <p><tt><pre><%=Html.encode[[ | |
1117 local name = "Bob" | |
1118 %> | |
1119 Hello <%=name%>! | |
1120 Bye <%=name%>. | |
1121 <% | |
1122 ]]%></pre></tt></p> | |
1123 | |
1124 <p>is equivalent to the code:</p> | |
1125 | |
1126 <p><tt><pre><%=Html.encode[[ | |
1127 local name = "Bob" | |
1128 require("luan:Io").stdout.write( %> | |
1129 Hello <%=name%>! | |
1130 Bye <%=name%>. | |
1131 <% ) | |
1132 ]]%></pre></tt></p> | |
1133 | |
1110 | 1134 |
1111 | 1135 |
1112 <h3 margin-top="1em"><a name="expressions">Expressions</a></h3> | 1136 <h3 margin-top="1em"><a name="expressions">Expressions</a></h3> |
1113 | 1137 |
1114 <p> | 1138 <p> |
1221 | 1245 |
1222 | 1246 |
1223 <h4 margin-top="1em"><a name="conversions">Coercions and Conversions</a></h4> | 1247 <h4 margin-top="1em"><a name="conversions">Coercions and Conversions</a></h4> |
1224 | 1248 |
1225 <p> | 1249 <p> |
1226 Luan provides some automatic conversions between some | 1250 Luan generally avoids automatic conversions. |
1227 types and representations at run time. | 1251 String concatenation automatically converts all of its arguments to strings. |
1228 String concatenation converts all of its arguments to strings. | 1252 |
1229 | 1253 <p> |
1230 Luan also converts strings to numbers | 1254 Luan provides library functions for explicit type conversions. |
1231 whenever a number is expected. | |
1232 | |
1233 | 1255 |
1234 | 1256 |
1235 | 1257 |
1236 | 1258 |
1237 <h4 margin-top="1em"><a name="relational">Relational Operators</a></h4> | 1259 <h4 margin-top="1em"><a name="relational">Relational Operators</a></h4> |
1693 Results are returned using the <b>return</b> statement (see <a href="#control">Control Structures</a>). | 1715 Results are returned using the <b>return</b> statement (see <a href="#control">Control Structures</a>). |
1694 If control reaches the end of a function | 1716 If control reaches the end of a function |
1695 without encountering a <b>return</b> statement, | 1717 without encountering a <b>return</b> statement, |
1696 then the function returns with no results. | 1718 then the function returns with no results. |
1697 | 1719 |
1720 | |
1721 <h4 margin-top="1em"><a name="template_expr">Template Expressions</a></h4> | |
1722 | |
1723 <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> | |
1724 | |
1725 <p><tt><pre><%=Html.encode[[ | |
1726 local name = "Bob" | |
1727 write( %>Hello <%=name%>!<% ) | |
1728 ]]%></pre></tt></p> | |
1729 | |
1730 <p>This is equivalent to the code:</p> | |
1731 | |
1732 <p><tt><pre> | |
1733 local name = "Bob" | |
1734 write( "Hello ", name, "!" ) | |
1735 </pre></tt></p> | |
1736 | |
1737 <p>The strings in template expressions may be multiple lines.</p> | |
1698 | 1738 |
1699 | 1739 |
1700 | 1740 |
1701 <h3 margin-top="1em"><a name="visibility">Visibility Rules</a></h3> | 1741 <h3 margin-top="1em"><a name="visibility">Visibility Rules</a></h3> |
1702 | 1742 |