Update of /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/asl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6755/adobe/documentation/sources/asl Modified Files: adam.dox adam_parser.dox algorithm.dox array_t.dox circular_queue.dox conversion.dox copy_on_write.dox dancing_links.dox dictionary_t.dox empty_t.dox eve.dox eve_evaluate.dox eve_parser.dox extents_t.dox forest.dox functional.dox istream.dox iterator.dox md5.dox name_t.dox numeric.dox once.dox regular_object.dox sha.dox static_table.dox string.dox table_index.dox typeinfo.dox unicode.dox value_t.dox virtual_machine_t.dox xstring.dox zuid.dox Added Files: cmath.dox Log Message: asl 1.0.13 Index: functional.dox =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/asl/functional.dox,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** functional.dox 2 Jun 2005 23:15:54 -0000 1.2 --- functional.dox 3 Feb 2006 18:33:35 -0000 1.3 *************** *** 5,10 **** /* ! REVISIT (sparent) : Documentation for delete_ptr moved to adobe/functional.hpp because doxygen ! 1.4.3 cannot handle the template specializations. */ --- 5,10 ---- /* ! REVISIT (sparent) : Documentation for delete_ptr moved to adobe/functional.hpp because doxygen ! 1.4.3 cannot handle the template specializations. */ *************** *** 46,50 **** \return ! An adobe::compare_members_t which can be used to make the comparison. */ --- 46,50 ---- \return ! An adobe::compare_members_t which can be used to make the comparison. */ *************** *** 59,63 **** \return ! An adobe::compare_members_t which can be used to make the comparison. */ --- 59,63 ---- \return ! An adobe::compare_members_t which can be used to make the comparison. */ *************** *** 78,82 **** \todo ! (sparent) Propose this addition back to Boost. */ --- 78,82 ---- \todo ! (sparent) Propose this addition back to Boost. */ *************** *** 90,94 **** \return ! An adobe::transform_member_t which can be used to make the transformation. */ --- 90,94 ---- \return ! An adobe::transform_member_t which can be used to make the transformation. */ Index: array_t.dox =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/asl/array_t.dox,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** array_t.dox 6 Oct 2005 20:59:36 -0000 1.4 --- array_t.dox 3 Feb 2006 18:33:35 -0000 1.5 *************** *** 8,21 **** \model_of ! - \ref concept_regular_type \note ! When copy-on-write semantics are not important, it is advised to use <code>std::vector<adobe::value_t></code> or another container type instead of array_t. \note ! \anchor _1 [1] Because an array_t is copy-on-write, modifications through an iterator are not supported except via back_insert_iterator. \tutorial ! A tutorial for \ref asl_tutorials_array_t is available. */ --- 8,21 ---- \model_of ! - \ref concept_regular_type \note ! When copy-on-write semantics are not important, it is advised to use <code>std::vector<adobe::value_t></code> or another container type instead of array_t. \note ! \anchor _1 [1] Because an array_t is copy-on-write, modifications through an iterator are not supported except via back_insert_iterator. \tutorial ! A tutorial for \ref asl_tutorials_array_t is available. */ *************** *** 87,94 **** \note ! Identical semantics to operator[](). \return ! A const_reference to the element specified. */ --- 87,94 ---- \note ! Identical semantics to operator[](). \return ! A const_reference to the element specified. */ *************** *** 99,106 **** \note ! Identical semantics to at(). \return ! A const_reference to the element specified. */ --- 99,106 ---- \note ! Identical semantics to at(). \return ! A const_reference to the element specified. */ *************** *** 112,119 **** \exception ! None. Guaranteed not to throw. ! \return ! true if <code>value</code> was assigned, false otherwise. */ --- 112,119 ---- \exception ! None. Guaranteed not to throw. ! \return ! true if <code>value</code> was assigned, false otherwise. */ *************** *** 122,126 **** \return ! A const_reference to the first element in the array. */ --- 122,126 ---- \return ! A const_reference to the first element in the array. */ *************** *** 129,133 **** \return ! A const_reference to the last element in the array. Note this returns a different element than end(). */ --- 129,133 ---- \return ! A const_reference to the last element in the array. Note this returns a different element than end(). */ *************** *** 136,143 **** \return ! A write_reference to the array. \note ! copy_on_write semantics mandate a copy of the internal implementation if it is being shared. */ --- 136,143 ---- \return ! A write_reference to the array. \note ! copy_on_write semantics mandate a copy of the internal implementation if it is being shared. */ *************** *** 148,152 **** \return ! A new array; a duplicate of this one with this value appended. */ --- 148,152 ---- \return ! A new array; a duplicate of this one with this value appended. */ *************** *** 155,159 **** \return ! <code>true</code> if the array is void of elements, <code>false</code> otherwise. */ --- 155,159 ---- \return ! <code>true</code> if the array is void of elements, <code>false</code> otherwise. */ *************** *** 162,166 **** \return ! A count of the number of elements in the array. */ --- 162,166 ---- \return ! A count of the number of elements in the array. */ *************** *** 169,173 **** \return ! Number of elements allowed to be added to the array before a memory reallocation is required. */ --- 169,173 ---- \return ! Number of elements allowed to be added to the array before a memory reallocation is required. */ *************** *** 205,209 **** \note ! This will not guarantee destruction of the elements formerly contained within the array, as other arrays may also be referring to them. */ --- 205,209 ---- \note ! This will not guarantee destruction of the elements formerly contained within the array, as other arrays may also be referring to them. */ *************** *** 212,216 **** \return ! An iterator to the first element in the array */ --- 212,216 ---- \return ! An iterator to the first element in the array */ *************** *** 219,223 **** \return ! An iterator to one past the last element in the array */ --- 219,223 ---- \return ! An iterator to one past the last element in the array */ *************** *** 226,230 **** \return ! An iterator to one past the last element in the array */ --- 226,230 ---- \return ! An iterator to one past the last element in the array */ *************** *** 233,237 **** \return ! An iterator to the first element in the array */ --- 233,237 ---- \return ! An iterator to the first element in the array */ *************** *** 240,244 **** \return ! An insert iterator into the array allowing for backside appending of new elements. */ --- 240,244 ---- \return ! An insert iterator into the array allowing for backside appending of new elements. */ *************** *** 249,256 **** \return ! <code>true</code> if this array and the argument refer to the same copy_on_write instance; <code>false</code> otherwise. \note ! This is not the same as <code>operator==</code>. This function will return <code>false</code> if the arrays are identical but do not refer to the same implementation instance. */ --- 249,256 ---- \return ! <code>true</code> if this array and the argument refer to the same copy_on_write instance; <code>false</code> otherwise. \note ! This is not the same as <code>operator==</code>. This function will return <code>false</code> if the arrays are identical but do not refer to the same implementation instance. */ *************** *** 259,263 **** \return ! <code>true</code> if this array is the only one referrring to its implementation instance (i.e., the implementation instance is currently not being shared). <code>false</code> otherwise. */ --- 259,263 ---- \return ! <code>true</code> if this array is the only one referrring to its implementation instance (i.e., the implementation instance is currently not being shared). <code>false</code> otherwise. */ *************** *** 271,274 **** \model_of ! - <a href="http://www.sgi.com/tech/stl/OutputIterator.html">OutputIterator</a> */ --- 271,274 ---- \model_of ! - <a href="http://www.sgi.com/tech/stl/OutputIterator.html">OutputIterator</a> */ Index: value_t.dox =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/asl/value_t.dox,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** value_t.dox 19 Mar 2005 00:16:41 -0000 1.1 --- value_t.dox 3 Feb 2006 18:33:35 -0000 1.2 *************** *** 6,29 **** \model_of ! - \ref concept_regular_type \details \par Type Promotion ! \c adobe::value_t leverages <code>adobe::promote</code> while storing instance values. This is an exception to the discriminating union concept to which \c adobe::value_t adheres. \par Getting a Value ! \c adobe::value_t uses <code>get<>()</code> to get its instance value. It behaves like an explicit cast and an assignment: getting a value_t out will always succeed and simply returns the same value_t. \par Setting a Value ! \c adobe::value_t uses <code>set<>()</code> to set its instance value. It behaves like an explicit cast and an assignment: putting a value_t into a value_t simply assigns the values; it does not wrap them. \par How does adobe::value_t differ from boost::any? ! value_t differs from <a href="http://www.boost.org/doc/html/any.html"><code>boost::any</code></a> in several ways: ! - value_t models \ref stldoc_EqualityComparable, fully modeling a \ref concept_regular_type. ! - value_t supports type promotion. See <code>adobe::promote</code> for more details. ! - get<>() results are returned by reference, making value_t generally more efficient. \tutorial ! A tutorial for \ref asl_tutorials_value_t is available. */ --- 6,29 ---- \model_of ! - \ref concept_regular_type \details \par Type Promotion ! \c adobe::value_t leverages <code>adobe::promote</code> while storing instance values. This is an exception to the discriminating union concept to which \c adobe::value_t adheres. \par Getting a Value ! \c adobe::value_t uses <code>get<>()</code> to get its instance value. It behaves like an explicit cast and an assignment: getting a value_t out will always succeed and simply returns the same value_t. \par Setting a Value ! \c adobe::value_t uses <code>set<>()</code> to set its instance value. It behaves like an explicit cast and an assignment: putting a value_t into a value_t simply assigns the values; it does not wrap them. \par How does adobe::value_t differ from boost::any? ! value_t differs from <a href="http://www.boost.org/doc/html/any.html"><code>boost::any</code></a> in several ways: ! - value_t models \ref stldoc_EqualityComparable, fully modeling a \ref concept_regular_type. ! - value_t supports type promotion. See <code>adobe::promote</code> for more details. ! - get<>() results are returned by reference, making value_t generally more efficient. \tutorial ! A tutorial for \ref asl_tutorials_value_t is available. */ *************** *** 34,38 **** \note ! What is stored is a copy of <code>x</code> promoted to <code>promote<T>::type</code>. */ --- 34,38 ---- \note ! What is stored is a copy of <code>x</code> promoted to <code>promote<T>::type</code>. */ *************** *** 41,48 **** \return ! A refernce to a promoted type for <code>T</code> containing the <code>value_t</code>'s instance value. \exception ! adobe::bad_cast Thrown if <code>adobe::promote<T></code> does not match the stored instance type. */ --- 41,48 ---- \return ! A refernce to a promoted type for <code>T</code> containing the <code>value_t</code>'s instance value. \exception ! adobe::bad_cast Thrown if <code>adobe::promote<T></code> does not match the stored instance type. */ *************** *** 51,58 **** \return ! A refernce to a promoted type for <code>T</code> containing the <code>value_t</code>'s instance value. \exception ! adobe::bad_cast Thrown if <code>adobe::promote<T></code> does not match the stored instance type. */ --- 51,58 ---- \return ! A refernce to a promoted type for <code>T</code> containing the <code>value_t</code>'s instance value. \exception ! adobe::bad_cast Thrown if <code>adobe::promote<T></code> does not match the stored instance type. */ *************** *** 61,71 **** \param ! x Value that will be set to the value stored in the value_t. \return ! <code>true</code> if x was set successfully, <code>false</code> otherwise. \exception ! Undefined Will relay anything thrown by <code>x.operator=()</code>. */ --- 61,71 ---- \param ! x Value that will be set to the value stored in the value_t. \return ! <code>true</code> if x was set successfully, <code>false</code> otherwise. \exception ! Undefined Will relay anything thrown by <code>x.operator=()</code>. */ *************** *** 76,80 **** \return ! The value_t with its new value set. */ --- 76,80 ---- \return ! The value_t with its new value set. */ *************** *** 83,87 **** \return ! The information returned by <code>typeid()</code> for the instance value. */ --- 83,87 ---- \return ! The information returned by <code>typeid()</code> for the instance value. */ *************** *** 111,115 **** \return ! A reference to the instance value stored in this value_t. */ --- 111,115 ---- \return ! A reference to the instance value stored in this value_t. */ *************** *** 120,123 **** \return ! A reference to the instance value stored in this value_t. */ --- 120,123 ---- \return ! A reference to the instance value stored in this value_t. */ Index: eve.dox =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/asl/eve.dox,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** eve.dox 6 Oct 2005 20:59:36 -0000 1.6 --- eve.dox 3 Feb 2006 18:33:35 -0000 1.7 *************** *** 21,25 **** \note ! Locale support for direction is not implemented yet. */ --- 21,25 ---- \note ! Locale support for direction is not implemented yet. */ *************** *** 162,166 **** \sa ! \ref adobe::eve_t::evaluate_options_t */ --- 162,166 ---- \sa ! \ref adobe::eve_t::evaluate_options_t */ *************** *** 176,180 **** \sa ! \ref adobe::eve_t::evaluate_options_t */ --- 176,180 ---- \sa ! \ref adobe::eve_t::evaluate_options_t */ *************** *** 210,262 **** \par Available Parameter Keys <table width="100%" border="1"> ! <tr><th>Name</th><th>Possible Values</th><th>Default</th><th>Notes</th></tr> ! <tr> ! <td><code>child_horizontal</code></td> ! <td>Any of the adobe::eve_t::alignment_t enumeration labels as an adobe::name_t</td> ! <td><code>align_default</code></td> ! <td></td> ! </tr> ! <tr> ! <td><code>child_vertical</code></td> ! <td>Any of the adobe::eve_t::alignment_t enumeration labels as an adobe::name_t</td> ! <td><code>align_default</code></td> ! <td></td> ! </tr> ! <tr> ! <td><code>guide_mask</code></td> ! <td>array containing any of [ guide_baseline, guide_label ]</td> ! <td>empty (no suppression)</td> ! <td>Suppression of horizontal and/or vertical guides</td> ! </tr> ! <tr> ! <td><code>horizontal</code></td> ! <td>Any of the adobe::eve_t::alignment_t enumeration labels as an adobe::name_t</td> ! <td><code>align_default</code></td> ! <td></td> ! </tr> ! <tr> ! <td><code>indent</code></td> ! <td>integer</td> ! <td>0</td> ! <td></td> ! </tr> ! <tr> ! <td><code>placement</code></td> ! <td>Any of the adobe::eve_t::placement_t enumeration labels as an adobe::name_t</td> ! <td><code>place_leaf</code></td> ! <td></td> ! </tr> ! <tr> ! <td><code>spacing</code></td> ! <td>array of integers</td> ! <td><code>[ 0 ]</code></td> ! <td>A single value here will propagate for all needed spacing values</td> ! </tr> ! <tr> ! <td><code>vertical</code></td> ! <td>Any of the adobe::eve_t::alignment_t enumeration labels as an adobe::name_t</td> ! <td><code>align_default</code></td> ! <td></td> ! </tr> </table> */ --- 210,262 ---- \par Available Parameter Keys <table width="100%" border="1"> ! <tr><th>Name</th><th>Possible Values</th><th>Default</th><th>Notes</th></tr> ! <tr> ! <td><code>child_horizontal</code></td> ! <td>Any of the adobe::eve_t::alignment_t enumeration labels as an adobe::name_t</td> ! <td><code>align_default</code></td> ! <td></td> ! </tr> ! <tr> ! <td><code>child_vertical</code></td> ! <td>Any of the adobe::eve_t::alignment_t enumeration labels as an adobe::name_t</td> ! <td><code>align_default</code></td> ! <td></td> ! </tr> ! <tr> ! <td><code>guide_mask</code></td> ! <td>array containing any of [ guide_baseline, guide_label ]</td> ! <td>empty (no suppression)</td> ! <td>Suppression of horizontal and/or vertical guides</td> ! </tr> ! <tr> ! <td><code>horizontal</code></td> ! <td>Any of the adobe::eve_t::alignment_t enumeration labels as an adobe::name_t</td> ! <td><code>align_default</code></td> ! <td></td> ! </tr> ! <tr> ! <td><code>indent</code></td> ! <td>integer</td> ! <td>0</td> ! <td></td> ! </tr> ! <tr> ! <td><code>placement</code></td> ! <td>Any of the adobe::eve_t::placement_t enumeration labels as an adobe::name_t</td> ! <td><code>place_leaf</code></td> ! <td></td> ! </tr> ! <tr> ! <td><code>spacing</code></td> ! <td>array of integers</td> ! <td><code>[ 0 ]</code></td> ! <td>A single value here will propagate for all needed spacing values</td> ! </tr> ! <tr> ! <td><code>vertical</code></td> ! <td>Any of the adobe::eve_t::alignment_t enumeration labels as an adobe::name_t</td> ! <td><code>align_default</code></td> ! <td></td> ! </tr> </table> */ *************** *** 268,272 **** \sa ! \ref adobe::eve_t::signal_suite_t */ --- 268,272 ---- \sa ! \ref adobe::eve_t::signal_suite_t */ *************** *** 285,289 **** \todo ! (sparent) : We have a mechanism for defaulting container attributes. This needs to be extended to view attributes such as supressing guides. */ --- 285,289 ---- \todo ! (sparent) : We have a mechanism for defaulting container attributes. This needs to be extended to view attributes such as supressing guides. */ *************** *** 302,306 **** \sa ! \ref adobe::eve_t::placement_t */ --- 302,306 ---- \sa ! \ref adobe::eve_t::placement_t */ *************** *** 312,316 **** \sa ! \ref adobe::eve_t::calculate_data_t::slice_t */ --- 312,316 ---- \sa ! \ref adobe::eve_t::calculate_data_t::slice_t */ *************** *** 329,333 **** \sa ! \ref adobe::eve_t::signal_suite_t */ --- 329,333 ---- \sa ! \ref adobe::eve_t::signal_suite_t */ *************** *** 370,374 **** \note ! inset is not implemented yet. */ --- 370,374 ---- \note ! inset is not implemented yet. */ *************** *** 394,398 **** \sa ! \ref adobe::eve_t::alignment_t */ --- 394,398 ---- \sa ! \ref adobe::eve_t::alignment_t */ *************** *** 404,408 **** \sa ! \ref adobe::eve_t::alignment_t */ --- 404,408 ---- \sa ! \ref adobe::eve_t::alignment_t */ *************** *** 421,425 **** \todo ! (sparent) Currently only implemented cross stream */ --- 421,425 ---- \todo ! (sparent) Currently only implemented cross stream */ *************** *** 436,446 **** \par The place_data_t is the primary communication mechanism Eve uses to get solved layout information to the client. The place_data_t is similar to the calculate_data_t, except for the following: ! - data included is the "solved" result, not the data the client passed in (though the solution is based on the client's data) ! - data included is only pertinent to the laying-out of the widget into it's final resting place. \par This struct is used when calling the place signal inside the widget's related place signal. \sa ! \ref adobe::eve_t::signal_suite_t */ --- 436,446 ---- \par The place_data_t is the primary communication mechanism Eve uses to get solved layout information to the client. The place_data_t is similar to the calculate_data_t, except for the following: ! - data included is the "solved" result, not the data the client passed in (though the solution is based on the client's data) ! - data included is only pertinent to the laying-out of the widget into it's final resting place. \par This struct is used when calling the place signal inside the widget's related place signal. \sa ! \ref adobe::eve_t::signal_suite_t */ *************** *** 470,474 **** \sa ! \ref adobe::eve_t::evaluate_options_t */ --- 470,474 ---- \sa ! \ref adobe::eve_t::evaluate_options_t */ *************** *** 517,524 **** \par Place is the final callback signaled from the Eve engine to a widget. When this callback is made there are several guarantees for the client: ! - All parent views for this widget have already had their place callback signalled ! - All data provided in the place_data_t is the final geometric information for the widget. \par ! Note that this callback can be signalled multiple times- given a view re-layout (i.e. during a window resize event) the other callbacks will not be signalled- the layout will be adjusted internally in the Eve engine and only this callback will be signalled with updated placement information for the widget. */ --- 517,524 ---- \par Place is the final callback signaled from the Eve engine to a widget. When this callback is made there are several guarantees for the client: ! - All parent views for this widget have already had their place callback signalled ! - All data provided in the place_data_t is the final geometric information for the widget. \par ! Note that this callback can be signalled multiple times- given a view re-layout (i.e. during a window resize event) the other callbacks will not be signalled- the layout will be adjusted internally in the Eve engine and only this callback will be signalled with updated placement information for the widget. */ Index: name_t.dox =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/asl/name_t.dox,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** name_t.dox 8 Aug 2005 17:01:28 -0000 1.2 --- name_t.dox 3 Feb 2006 18:33:35 -0000 1.3 *************** *** 8,14 **** \par Model Of: ! - \ref concept_regular_type ! - \ref stldoc_LessThanComparable ! - \ref concept_convertible_to_bool \par Rationale: --- 8,14 ---- \par Model Of: ! - \ref concept_regular_type ! - \ref stldoc_LessThanComparable ! - \ref concept_convertible_to_bool \par Rationale: *************** *** 58,62 **** \promotes_to ! adobe::name_t */ --- 58,62 ---- \promotes_to ! adobe::name_t */ *************** *** 81,88 **** \promotes_to ! adobe::name_t \rationale ! The primary purpose of const_once_name_t is to provide a name_t implementation that can be used in a multithreaded environment as a static variable. Because its construction does nothing to initialize the value of the name_t, such initialization must take place during a threadsafe intialization function (boost::call_once, for instance). */ --- 81,88 ---- \promotes_to ! adobe::name_t \rationale ! The primary purpose of const_once_name_t is to provide a name_t implementation that can be used in a multithreaded environment as a static variable. Because its construction does nothing to initialize the value of the name_t, such initialization must take place during a threadsafe intialization function (boost::call_once, for instance). */ Index: xstring.dox =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/asl/xstring.dox,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** xstring.dox 6 Oct 2005 20:59:36 -0000 1.5 --- xstring.dox 3 Feb 2006 18:33:35 -0000 1.6 *************** *** 13,25 **** The xstring grammar is based on the XML 1.1 grammar specification (http://www.w3.org/TR/2004/REC-xml11-20040204/) \verbatim ! S = (#x20 | #x09 | #x0D | #x0A)+ ! Char = [#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] ! CharData = [^<&]* ! CharRef = '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';' ! NameStartChar = ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | --- 13,25 ---- The xstring grammar is based on the XML 1.1 grammar specification (http://www.w3.org/TR/2004/REC-xml11-20040204/) \verbatim ! S = (#x20 | #x09 | #x0D | #x0A)+ ! Char = [#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] ! CharData = [^<&]* ! CharRef = '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';' ! NameStartChar = ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | *************** *** 27,57 **** [#x10000-#xEFFFF] ! NameChar = NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040] ! Name = NameStartChar (NameChar)* ! EntityRef = '&' Name ';' ! Reference = EntityRef | CharRef ! AttValue = '"' ([^<&"] | Reference)* '"' | "'" ([^<&'] | Reference)* "'" ! Eq = S? '=' S? ! Attribute = Name Eq AttValue ! EmptyElemTag = '<' Name (S Attribute)* S? '/>' ! STag = '<' Name (S Attribute)* S? '>' ! ETag = '</' Name S? '>' ! content = CharData? ((element | Reference | Comment) CharData?)* ! element = EmptyElemTag | STag content ETag ! translation_unit = element* \endverbatim --- 27,57 ---- [#x10000-#xEFFFF] ! NameChar = NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040] ! Name = NameStartChar (NameChar)* ! EntityRef = '&' Name ';' ! Reference = EntityRef | CharRef ! AttValue = '"' ([^<&"] | Reference)* '"' | "'" ([^<&'] | Reference)* "'" ! Eq = S? '=' S? ! Attribute = Name Eq AttValue ! EmptyElemTag = '<' Name (S Attribute)* S? '/>' ! STag = '<' Name (S Attribute)* S? '>' ! ETag = '</' Name S? '>' ! content = CharData? ((element | Reference | Comment) CharData?)* ! element = EmptyElemTag | STag content ETag ! translation_unit = element* \endverbatim *************** *** 62,83 **** The context of a string is a runtime evaluated collection of information about the state of the machine and the xstring that we currently care about. This context is gathered from several locations: ! -# the runtime context of the xstring system (which includes some defaults) ! -# the static attributes of the xstring definition The runtime context of the xstring system can be manipulated with the adobe::xstring_context_t class. The runtime context has several pieces of information set by default. These pieces are: ! - lang : defaults to 'en-us' ! - platform : defaults to one of several target platform tags: ! - "linux" ! - "bsd" ! - "solaris" ! - "irix" ! - "hpux" ! - "cygwin" ! - "windows" ! - "beos" ! - "macintosh" ! - "aix" ! - "amiga" ! - "unix" The static attributes of the xstring definition also provide context. Example: --- 62,83 ---- The context of a string is a runtime evaluated collection of information about the state of the machine and the xstring that we currently care about. This context is gathered from several locations: ! -# the runtime context of the xstring system (which includes some defaults) ! -# the static attributes of the xstring definition The runtime context of the xstring system can be manipulated with the adobe::xstring_context_t class. The runtime context has several pieces of information set by default. These pieces are: ! - lang : defaults to 'en-us' ! - platform : defaults to one of several target platform tags: ! - "linux" ! - "bsd" ! - "solaris" ! - "irix" ! - "hpux" ! - "cygwin" ! - "windows" ! - "beos" ! - "macintosh" ! - "aix" ! - "amiga" ! - "unix" The static attributes of the xstring definition also provide context. Example: *************** *** 125,131 **** And given the following code: \code ! std::string good_thing(adobe::xstring("<xstr id='a_good_thing'/>")); ! std::string bad_thing(adobe::xstring("<xstr id='a_bad_thing'/>")); ! std::string neutral_thing(adobe::xstring("<xstr id='a_neutral_thing'/>")); std::cout << "good marker: " << good_thing << std::endl; --- 125,131 ---- And given the following code: \code ! std::string good_thing(adobe::xstring("<xstr id='a_good_thing'/>")); ! std::string bad_thing(adobe::xstring("<xstr id='a_bad_thing'/>")); ! std::string neutral_thing(adobe::xstring("<xstr id='a_neutral_thing'/>")); std::cout << "good marker: " << good_thing << std::endl; *************** *** 176,182 **** Callback for the XML fragment parser. When the fragment parser finds a well formed element, it will signal a function with this signature with the following parameters: ! \param name The name of the element ! \param attribute_set A collection of attributes for the found element (could be empty) ! \param value The character data contained within the element (could be empty) \return A UTF8 buffer that is the value of this element. The value is dependent on the implementation of the callback (for example, see xml_element_echo). --- 176,182 ---- Callback for the XML fragment parser. When the fragment parser finds a well formed element, it will signal a function with this signature with the following parameters: ! \param name The name of the element ! \param attribute_set A collection of attributes for the found element (could be empty) ! \param value The character data contained within the element (could be empty) \return A UTF8 buffer that is the value of this element. The value is dependent on the implementation of the callback (for example, see xml_element_echo). *************** *** 190,194 **** Appends the current xstring glossary. Strings with identical contexts are stored on a first-in basis, and are not replaced by subsequent strings with the same context. ! \param stream Stream containing XML fragment to parse into the xstring glossary */ --- 190,194 ---- Appends the current xstring glossary. Strings with identical contexts are stored on a first-in basis, and are not replaced by subsequent strings with the same context. ! \param stream Stream containing XML fragment to parse into the xstring glossary */ *************** *** 199,205 **** Appends the current xstring glossary. Strings with identical contexts are stored on a first-in basis, and are not replaced by subsequent strings with the same context. ! \param stream Stream containing XML fragment to parse into the xstring glossary ! \param file Name of the file to parse (for better error reporting) ! \param line Starting line number in the file to parse (for better error reporting) */ #endif --- 199,205 ---- Appends the current xstring glossary. Strings with identical contexts are stored on a first-in basis, and are not replaced by subsequent strings with the same context. ! \param stream Stream containing XML fragment to parse into the xstring glossary ! \param file Name of the file to parse (for better error reporting) ! \param line Starting line number in the file to parse (for better error reporting) */ #endif *************** *** 212,216 **** \note ! This is available only for builds where <code>NDEBUG</code> is not defined */ --- 212,216 ---- \note ! This is available only for builds where <code>NDEBUG</code> is not defined */ *************** *** 219,224 **** \ingroup asl_xstring ! \param xstr 7-bit ASCII encoded xstring definition (an XML element fragment) to parse ! \param n size of the input buffer \return The glossary-obtained xstring value, or the default string if none is found in the glossary. This result will be a valid XML fragment --- 219,224 ---- \ingroup asl_xstring ! \param xstr 7-bit ASCII encoded xstring definition (an XML element fragment) to parse ! \param n size of the input buffer \return The glossary-obtained xstring value, or the default string if none is found in the glossary. This result will be a valid XML fragment *************** *** 231,235 **** \ingroup asl_xstring ! \param xstr utf-8 buffer of the xstring defintion to parse and look up \return The glossary-obtained xstring value, or the default string if none is found in the glossary. This result will be a valid XML fragment --- 231,235 ---- \ingroup asl_xstring ! \param xstr utf-8 buffer of the xstring defintion to parse and look up \return The glossary-obtained xstring value, or the default string if none is found in the glossary. This result will be a valid XML fragment *************** *** 242,248 **** \ingroup asl_xstring ! \param xstring 7-bit ASCII encoded xstring definition (an XML element fragment) to parse ! \param n size of the input buffer ! \param output Type that models OutputIterator; recieves the result of the xstring lookup. \return The glossary-obtained xstring value, or the default string if none is found in the glossary. This result will be a valid XML fragment --- 242,248 ---- \ingroup asl_xstring ! \param xstring 7-bit ASCII encoded xstring definition (an XML element fragment) to parse ! \param n size of the input buffer ! \param output Type that models OutputIterator; recieves the result of the xstring lookup. \return The glossary-obtained xstring value, or the default string if none is found in the glossary. This result will be a valid XML fragment *************** *** 255,260 **** \ingroup asl_xstring ! \param xstring Null-terminated 7-bit ASCII encoded xstring definition (an XML element fragment) to parse ! \param output Type that models OutputIterator; recieves the result of the xstring lookup. \return The glossary-obtained xstring value, or the default string if none is found in the glossary. This result will be a valid XML fragment --- 255,260 ---- \ingroup asl_xstring ! \param xstring Null-terminated 7-bit ASCII encoded xstring definition (an XML element fragment) to parse ! \param output Type that models OutputIterator; recieves the result of the xstring lookup. \return The glossary-obtained xstring value, or the default string if none is found in the glossary. This result will be a valid XML fragment *************** *** 269,275 **** Parses a fragment of XML, outputting the result to an OutputIterator instance. ! \param fragment utf-8 encoded fragment of XML to parse ! \param n Number of bytes in the fragment ! \param output OutputIterator implementation that receives the result of the parse \return The value of the parsed fragment --- 269,275 ---- Parses a fragment of XML, outputting the result to an OutputIterator instance. ! \param fragment utf-8 encoded fragment of XML to parse ! \param n Number of bytes in the fragment ! \param output OutputIterator implementation that receives the result of the parse \return The value of the parsed fragment *************** *** 282,287 **** Parses a fragment of XML, outputting the result to an OutputIterator instance. ! \param fragment utf-8 encoded fragment of XML to parse ! \param output OutputIterator implementation that receives the result of the parse \return The value of the parsed fragment --- 282,287 ---- Parses a fragment of XML, outputting the result to an OutputIterator instance. ! \param fragment utf-8 encoded fragment of XML to parse ! \param output OutputIterator implementation that receives the result of the parse \return The value of the parsed fragment *************** *** 294,299 **** Parses a fragment of XML, outputting the result to an OutputIterator instance. ! \param fragment Null-terminated 7-bit ASCII encoded fragment of XML to parse ! \param output OutputIterator implementation that receives the result of the parse \return The value of the parsed fragment --- 294,299 ---- Parses a fragment of XML, outputting the result to an OutputIterator instance. ! \param fragment Null-terminated 7-bit ASCII encoded fragment of XML to parse ! \param output OutputIterator implementation that receives the result of the parse \return The value of the parsed fragment *************** *** 365,375 **** \code { ! adobe::attribute_set_t attribute_set; ! attribute_set.push_back(std::make_pair(adobe::static_name_t("context"), adobe::static_name_t("some_view"))); ! adobe::xstring_context_t mycontext(attribute_set); ! // anything here is looked up with the context='some_view'; other attributes remain unchanged } // now our context is out scope and we go back to what we had before. --- 365,375 ---- \code { ! adobe::attribute_set_t attribute_set; ! attribute_set.push_back(std::make_pair(adobe::static_name_t("context"), adobe::static_name_t("some_view"))); ! adobe::xstring_context_t mycontext(attribute_set); ! // anything here is looked up with the context='some_view'; other attributes remain unchanged } // now our context is out scope and we go back to what we had before. *************** *** 379,385 **** \code { ! adobe::xstring_context_t mycontext(adobe::static_name_t("context"), adobe::static_name_t("some_view")); ! // anything here is looked up with the context='some_view'; other attributes remain unchanged } // now our context is out scope and we go back to what we had before. --- 379,385 ---- \code { ! adobe::xstring_context_t mycontext(adobe::static_name_t("context"), adobe::static_name_t("some_view")); ! // anything here is looked up with the context='some_view'; other attributes remain unchanged } // now our context is out scope and we go back to what we had before. *************** *** 389,399 **** \code { ! std::vector<std::pair<adobe::name_t, adobe::name_t> > my_set; ! // fill in my_set ... ! adobe::xstring_context_t mycontext(&my_set[0], &my_set[my_set.size()]); ! // anything here is looked up with a context affected by my_set } // now our context is out scope and we go back to what we had before. --- 389,399 ---- \code { ! std::vector<std::pair<adobe::name_t, adobe::name_t> > my_set; ! // fill in my_set ... ! adobe::xstring_context_t mycontext(&my_set[0], &my_set[my_set.size()]); ! // anything here is looked up with a context affected by my_set } // now our context is out scope and we go back to what we had before. Index: conversion.dox =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/asl/conversion.dox,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** conversion.dox 19 Mar 2005 00:16:41 -0000 1.1 --- conversion.dox 3 Feb 2006 18:33:35 -0000 1.2 *************** *** 21,39 **** \note ! <code>char</code> is <i>not</i> specified to promote to <code>wchar_t</code> as standard behavior. Without knowing the source or destination character encodings there is not enough information to do this type promotion correctly. \see_also ! - <code>adobe::static_name_t</code> ! - <code>adobe::value_t</code> \section standard_promotions Standard Promotions ! - The following promote to <code>double</code>: ! - <code>short</code> ! - <code>unsigned short</code> ! - <code>int</code> ! - <code>unsigned int</code> ! - <code>long</code> ! - <code>unsigned long</code> ! - <code>float</code> */ --- 21,39 ---- \note ! <code>char</code> is <i>not</i> specified to promote to <code>wchar_t</code> as standard behavior. Without knowing the source or destination character encodings there is not enough information to do this type promotion correctly. \see_also ! - <code>adobe::static_name_t</code> ! - <code>adobe::value_t</code> \section standard_promotions Standard Promotions ! - The following promote to <code>double</code>: ! - <code>short</code> ! - <code>unsigned short</code> ! - <code>int</code> ! - <code>unsigned int</code> ! - <code>long</code> ! - <code>unsigned long</code> ! - <code>float</code> */ Index: dictionary_t.dox =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/asl/dictionary_t.dox,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** dictionary_t.dox 26 Apr 2005 16:22:59 -0000 1.2 --- dictionary_t.dox 3 Feb 2006 18:33:35 -0000 1.3 *************** *** 6,13 **** \model_of ! - \ref concept_regular_type \tutorial ! A tutorial for \ref asl_tutorials_dictionary_t is available. */ --- 6,13 ---- \model_of ! - \ref concept_regular_type \tutorial ! A tutorial for \ref asl_tutorials_dictionary_t is available. */ *************** *** 84,97 **** \note ! Identical semantics as operator[](). \complexity ! Same complexity as <code>dictionary_t::find()</code>. \return ! A reference to <code>key</code>'s associated value_t. \exception ! std::exception Thrown if the key cannot be found. */ --- 84,97 ---- \note ! Identical semantics as operator[](). \complexity ! Same complexity as <code>dictionary_t::find()</code>. \return ! A reference to <code>key</code>'s associated value_t. \exception ! std::exception Thrown if the key cannot be found. */ *************** *** 102,115 **** \note ! Identical semantics as at(). \complexity ! Same complexity as <code>dictionary_t::find()</code>. \return ! A reference to <code>key</code>'s associated value_t. \exception ! std::exception Thrown if the key cannot be found. */ --- 102,115 ---- \note ! Identical semantics as at(). \complexity ! Same complexity as <code>dictionary_t::find()</code>. \return ! A reference to <code>key</code>'s associated value_t. \exception ! std::exception Thrown if the key cannot be found. */ *************** *** 120,130 **** \complexity ! Same complexity as <code>dictionary_t::find()</code>. \return ! A reference to <code>key</code>'s associated value_t (if <code>key</code> exists). \exception ! std::exception Thrown if the key cannot be found or the type cannot be coerced to <code>T</code>. */ --- 120,130 ---- \complexity ! Same complexity as <code>dictionary_t::find()</code>. \return ! A reference to <code>key</code>'s associated value_t (if <code>key</code> exists). \exception ! std::exception Thrown if the key cannot be found or the type cannot be coerced to <code>T</code>. */ *************** *** 136,143 **** \complexity ! Same complexity as <code>dictionary_t::find()</code>. \exception ! None. Guaranteed not to throw. */ --- 136,143 ---- \complexity ! Same complexity as <code>dictionary_t::find()</code>. \exception ! None. Guaranteed not to throw. */ *************** *** 146,153 **** \return ! A writeable reference to the dictionary. \note ! copy_on_write semantics mandate a copy of the internal implementation if it is being shared. */ --- 146,153 ---- \return ! A writeable reference to the dictionary. \note ! copy_on_write semantics mandate a copy of the internal implementation if it is being shared. */ *************** *** 156,163 **** \complexity ! Same complexity as <code>dictionary_t::find()</code>. \return ! A new dictionary; a duplicate of this one with this key/value pair appended. */ --- 156,163 ---- \complexity ! Same complexity as <code>dictionary_t::find()</code>. \return ! A new dictionary; a duplicate of this one with this key/value pair appended. */ *************** *** 166,170 **** \return ! <code>true</code> if the dictionary is void of elements, <code>false</code> otherwise. */ --- 166,170 ---- \return ! <code>true</code> if the dictionary is void of elements, <code>false</code> otherwise. */ *************** *** 173,180 **** \complexity ! Same complexity as <code>dictionary_t::find()</code>. \return ! A count of the number of elements in the dictionary. */ --- 173,180 ---- \complexity ! Same complexity as <code>dictionary_t::find()</code>. \return ! A count of the number of elements in the dictionary. */ *************** *** 183,187 **** \return ! Number of elements allowed to be added to the dictionary before a memory reallocation is required. */ --- 183,187 ---- \return ! Number of elements allowed to be added to the dictionary before a memory reallocation is required. */ *************** *** 192,202 **** \complexity ! Same complexity as <code>dictionary_t::find()</code>. \return ! The number of elements erased. \exception ! None. Guaranteed not to throw. */ --- 192,202 ---- \complexity ! Same complexity as <code>dictionary_t::find()</code>. \return ! The number of elements erased. \exception ! None. Guaranteed not to throw. */ *************** *** 207,211 **** \note ! This will not guarantee destruction of the elements formerly contained within the dictionary, as other dictionaries may also be referring to them. */ --- 207,211 ---- \note ! This will not guarantee destruction of the elements formerly contained within the dictionary, as other dictionaries may also be referring to them. */ *************** *** 214,218 **** \return ! A function object for value comparison. */ --- 214,218 ---- \return ! A function object for value comparison. */ *************** *** 221,225 **** \return ! A function object for key comparison. */ --- 221,225 ---- \return ! A function object for key comparison. */ *************** *** 230,237 **** \complexity ! Same complexity as <code>adobe::lower_bound</code>. \return ! An iterator to the key/value pair specified by name_t. <code>end()</code> if not found. */ --- 230,237 ---- \complexity ! Same complexity as <code>adobe::lower_bound</code>. \return ! An iterator to the key/value pair specified by name_t. <code>end()</code> if not found. */ *************** *** 248,252 **** \return ! An iterator to the start of the dictionary's key/value pairs. */ --- 248,252 ---- \return ! An iterator to the start of the dictionary's key/value pairs. */ *************** *** 255,259 **** \return ! An iterator to one past the last of the dictionary's key/value pairs. */ --- 255,259 ---- \return ! An iterator to one past the last of the dictionary's key/value pairs. */ *************** *** 262,266 **** \return ! An iterator to one past the last of the dictionary's key/value pairs. */ --- 262,266 ---- \return ! An iterator to one past the last of the dictionary's key/value pairs. */ *************** *** 269,273 **** \return ! An const_reverse_iterator to the start of the dictionary's key/value pairs. */ --- 269,273 ---- \return ! An const_reverse_iterator to the start of the dictionary's key/value pairs. */ *************** *** 278,285 **** \complexity ! Same complexity as <code>dictionary_t::find()</code>. \return ! <code>false</code> if the insertion replaced a previous value associated with the key; <code>true</code> otherwise (i.e. the key is new). */ --- 278,285 ---- \complexity ! Same complexity as <code>dictionary_t::find()</code>. \return ! <code>false</code> if the insertion replaced a previous value associated with the key; <code>true</code> otherwise (i.e. the key is new). */ *************** *** 291,295 **** \complexity ! Same complexity as <code>dictionary_t::find()</code>. */ --- 291,295 ---- \complexity ! Same complexity as <code>dictionary_t::find()</code>. */ *************** *** 298,302 **** \return ! An insert_iterator */ --- 298,302 ---- \return ! An insert_iterator */ *************** *** 307,314 **** \return ! <code>true</code> if this dictionary and the argument refer to the same copy_on_write instance; <code>false</code> otherwise. \note ! This is not the same as <code>operator==</code>. This function will return <code>false</code> if the dictionaries are identical but do not refer to the same implementation instance. */ --- 307,314 ---- \return ! <code>true</code> if this dictionary and the argument refer to the same copy_on_write instance; <code>false</code> otherwise. \note ! This is not the same as <code>operator==</code>. This function will return <code>false</code> if the dictionaries are identical but do not refer to the same implementation instance. */ *************** *** 317,320 **** \return ! <code>true</code> if this dictionary is the only one referrring to its implementation instance (i.e., the implementation instance is currently not being shared). <code>false</code> otherwise. */ --- 317,320 ---- \return ! <code>true</code> if this dictionary is the only one referrring to its implementation instance (i.e., the implementation instance is currently not being shared). <code>false</code> otherwise. */ Index: iterator.dox =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/asl/iterator.dox,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** iterator.dox 2 Dec 2005 02:59:15 -0000 1.3 --- iterator.dox 3 Feb 2006 18:33:35 -0000 1.4 *************** *** 11,22 **** \par Model Of: ! - \ref concept_regular_type ! - Iterator concept specified by C \par Types: ! - T: Value type of the sequence's elements; models \ref concept_regular_type ! - C: Iterator category ! - R: Return type of operator*(); models Reference Type of T ! - D: Difference type between iterators; models Signed Integer */ --- 11,22 ---- \par Model Of: ! - \ref concept_regular_type ! - Iterator concept specified by C \par Types: ! - T: Value type of the sequence's elements; models \ref concept_regular_type ! - C: Iterator category ! - R: Return type of operator*(); models Reference Type of T ! - D: Difference type between iterators; models Signed Integer */ *************** *** 35,47 **** \par Model Of: ! - \ref concept_regular_type ! - Random Access Iterator \par Types: ! - F: Models Unary Function ! - T: Value type of the sequence's elements; models \ref concept_regular_type ! - R: Return type of operator*(); models Reference Type of T ! - I: Index type; models Unsigned Integer ! - D: Difference type of I; models Signed Integer */ --- 35,47 ---- \par Model Of: ! - \ref concept_regular_type ! - Random Access Iterator \par Types: ! - F: Models Unary Function ! - T: Value type of the sequence's elements; models \ref concept_regular_type ! - R: Return type of operator*(); models Reference Type of T ! - I: Index type; models Unsigned Integer ! - D: Difference type of I; models Signed Integer */ Index: virtual_machine_t.dox =================================================================== RCS file: /cvsroot/adobe-source/sandbox/adobe-source/adobe/documentation/sources/asl/virtual_machine_t.dox,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** virtual_machine_t.dox 19 Mar 2005 00:16:41 -0000 1.1 --- virtual_machine_t.dox 3 Feb 2006 18:33:35 -0000 1.2 *************** *** 15,57 **** \par <table width="100%" cellspacing="1" cellpadding="1" border="1"> ! <tr><th>Unary Operation Name</th><th colspan="4">Parameter</th><th>Result</th></tr> ! <tr><td><code>.not</code></td><td colspan="4">boolean</td><td>logical not</td></tr> ! <tr><td><code>.unary_negate</code></td><td colspan="4">number</td><td>unary negation</td></tr> ! <tr><th>Binary Operation Name</th><th colspan="4">Parameters</th><th>Result</th></tr> ! <tr><td><code>.add</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 + number_1</td></tr> ! <tr><td><code>.subtract</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 - number_1</td></tr> ! <tr><td><code>.multiply</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 * number_1</td></tr> ! <tr><td><code>.modulus</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 \% number_1</td></tr> ! <tr><td><code>.divide</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 / number_1</td></tr> ! <tr><th>Predicate Operation Name</th><th colspan="4">Parameters</th><th>Result</th></tr> ! <tr><td><code>.less</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 < number_1</td></tr> ! <tr><td><code>.greater</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 > number_1</td></tr> ! <tr><td><code>.less_equal</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 <= number_1</td></tr> ! <tr><td><code>.greater_equal</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 >= number_1</td></tr> ! <tr><td><code>.equal</code><td colspan="2">value_0</td><td colspan="2">value_1</td><td>value_0 == value_1</td></tr> ! <tr><td><code>.not_equal</code><td colspan="2">value_0</td><td colspan="2">value_1</td><td>value_0 != value_1</td></tr> ! <tr><td><code>.and_op</code><td colspan="2">boolean</td><td colspan="2">expression</td><td>boolean && expression <a href="#op_1">[1]</a> <a href="#op_3">[3]</a></td></tr> ! <tr><td><code>.or_op</code><td colspan="2">boolean</td><td colspan="2">expression</td><td>boolean || expression <a href="#op_2">[2]</a> <a href="#op_3">[3]</a></td></tr> ! <tr><th>Misc. Operation Name</th><th colspan="4">Parameters</th><th>Result</th></tr> ! <tr><td><code>.array</code><td>number</td><td colspan="3"><code>number</code> unnamed argument(s)</td><td>an array_t containing the top <code>number</code> elements in the evaluation stack</td></tr> ! <tr><td><code>.dictionary</code><td>number</td><td colspan="3"><code>number</code> key/value pair(s) (named argument(s))</td><td>a dictionary_t containing the top <code>number</code> key/value pairs in the evaluation stack</td></tr> ! <tr><td><code>.ifelse</code><td>boolean</td><td colspan="2">expression_0</td><td>expression_1</td><td>evaluated expression_0 if boolean is true; evaluated expression_1 otherwise <a href="#op_4">[4]</a></td></tr> ! <tr><td><code>.index</code><td colspan="2">array</td><td colspan="2">number</td><td>evaluated array[number]</td></tr> ! <tr><td><code>.index</code><td colspan="2">dictionary</td><td colspan="2">name</td><td>evaluated dictionary[name]</td></tr> ! <tr><td><code>.function</code><td colspan="2">name</td><td colspan="2">dictionary of expressions</td><td>result of calling function name with argument dictionary</td></tr> ! <tr><td><code>.function</code><td colspan="2">name</td><td colspan="2">array of expressions</td><td>result of calling function name with argument array</td></tr> ! <tr><td><code>.variable</code><td colspan="4">name</td><td>evaluated value of name</td></tr> </table> \notes ! <a name="op_1">[1]</a> expression is evaluated only if boolean is true. \par ! <a name="op_2">[2]</a> expression is evaluated only if boolean is false. \par ! <a name="op_3">[3]</a> expression must yield a boolean. \par ! <a name="op_4">[4]</a> only the pertinent expression is evaluated. \section named_functions Named Functions --- 15,57 ---- \par <table width="100%" cellspacing="1" cellpadding="1" border="1"> ! <tr><th>Unary Operation Name</th><th colspan="4">Parameter</th><th>Result</th></tr> ! <tr><td><code>.not</code></td><td colspan="4">boolean</td><td>logical not</td></tr> ! <tr><td><code>.unary_negate</code></td><td colspan="4">number</td><td>unary negation</td></tr> ! <tr><th>Binary Operation Name</th><th colspan="4">Parameters</th><th>Result</th></tr> ! <tr><td><code>.add</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 + number_1</td></tr> ! <tr><td><code>.subtract</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 - number_1</td></tr> ! <tr><td><code>.multiply</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 * number_1</td></tr> ! <tr><td><code>.modulus</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 \% number_1</td></tr> ! <tr><td><code>.divide</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 / number_1</td></tr> ! <tr><th>Predicate Operation Name</th><th colspan="4">Parameters</th><th>Result</th></tr> ! <tr><td><code>.less</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 < number_1</td></tr> ! <tr><td><code>.greater</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 > number_1</td></tr> ! <tr><td><code>.less_equal</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number_0 <= number_1</td></tr> ! <tr><td><code>.greater_equal</code><td colspan="2">number_0</td><td colspan="2">number_1</td><td>number... [truncated message content] |