diff options
Diffstat (limited to 'macros/luatex')
-rw-r--r-- | macros/luatex/generic/luakeys/README.md | 18 | ||||
-rw-r--r-- | macros/luatex/generic/luakeys/luakeys-debug.sty | 2 | ||||
-rw-r--r-- | macros/luatex/generic/luakeys/luakeys-doc.pdf | bin | 276812 -> 283942 bytes | |||
-rw-r--r-- | macros/luatex/generic/luakeys/luakeys-doc.tex | 130 | ||||
-rw-r--r-- | macros/luatex/generic/luakeys/luakeys.lua | 118 | ||||
-rw-r--r-- | macros/luatex/generic/luakeys/luakeys.sty | 2 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/README.md | 11 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/doc/appendix/luacas.dat | 2 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/doc/appendix/versionhistory.tex | 22 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/doc/luacas.pdf | bin | 758211 -> 760471 bytes | |||
-rw-r--r-- | macros/luatex/latex/luacas/doc/luacas.tex | 10 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/_lib/luacas-inspect.lua (renamed from macros/luatex/latex/luacas/tex/_lib/inspect.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/_lib/luacas-pepperfish.lua (renamed from macros/luatex/latex/luacas/tex/_lib/pepperfish.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/_lib/luacas-table.lua (renamed from macros/luatex/latex/luacas/tex/_lib/table.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/_init.lua | 24 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-absexpression.lua (renamed from macros/luatex/latex/luacas/tex/algebra/absexpression.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-algebra_init.lua | 24 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-equation.lua (renamed from macros/luatex/latex/luacas/tex/algebra/equation.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-euclideandomain.lua (renamed from macros/luatex/latex/luacas/tex/algebra/euclideandomain.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-factorialexpression.lua (renamed from macros/luatex/latex/luacas/tex/algebra/factorialexpression.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-field.lua (renamed from macros/luatex/latex/luacas/tex/algebra/field.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-integer.lua (renamed from macros/luatex/latex/luacas/tex/algebra/integer.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-integerquotientring.lua (renamed from macros/luatex/latex/luacas/tex/algebra/integerquotientring.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-logarithm.lua (renamed from macros/luatex/latex/luacas/tex/algebra/logarithm.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-polynomialring.lua (renamed from macros/luatex/latex/luacas/tex/algebra/polynomialring.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-rational.lua (renamed from macros/luatex/latex/luacas/tex/algebra/rational.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-ring.lua (renamed from macros/luatex/latex/luacas/tex/algebra/ring.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-rootexpression.lua (renamed from macros/luatex/latex/luacas/tex/algebra/rootexpression.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-sqrtexpression.lua (renamed from macros/luatex/latex/luacas/tex/algebra/sqrtexpression.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/luacas-trigexpression.lua (renamed from macros/luatex/latex/luacas/tex/algebra/trigexpression.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/polynomialring/luacas-berlekampfactoring.lua (renamed from macros/luatex/latex/luacas/tex/algebra/polynomialring/berlekampfactoring.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/polynomialring/luacas-decomposition.lua (renamed from macros/luatex/latex/luacas/tex/algebra/polynomialring/decomposition.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/algebra/polynomialring/luacas-zassenhausfactoring.lua (renamed from macros/luatex/latex/luacas/tex/algebra/polynomialring/zassenhausfactoring.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/calculus/_init.lua | 6 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/calculus/luacas-calculus_init.lua | 6 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/calculus/luacas-derivativeexpression.lua (renamed from macros/luatex/latex/luacas/tex/calculus/derivativeexpression.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/calculus/luacas-diffexpression.lua (renamed from macros/luatex/latex/luacas/tex/calculus/diffexpression.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/calculus/luacas-integralexpression.lua (renamed from macros/luatex/latex/luacas/tex/calculus/integralexpression.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/core/_init.lua | 16 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-difference.lua (renamed from macros/luatex/latex/luacas/tex/core/binaryoperation/difference.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-power.lua (renamed from macros/luatex/latex/luacas/tex/core/binaryoperation/power.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-product.lua (renamed from macros/luatex/latex/luacas/tex/core/binaryoperation/product.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-quotient.lua (renamed from macros/luatex/latex/luacas/tex/core/binaryoperation/quotient.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-sum.lua (renamed from macros/luatex/latex/luacas/tex/core/binaryoperation/sum.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/core/luacas-atomicexpression.lua (renamed from macros/luatex/latex/luacas/tex/core/atomicexpression.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/core/luacas-binaryoperation.lua (renamed from macros/luatex/latex/luacas/tex/core/binaryoperation.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/core/luacas-compoundexpression.lua (renamed from macros/luatex/latex/luacas/tex/core/compoundexpression.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/core/luacas-constantexpression.lua (renamed from macros/luatex/latex/luacas/tex/core/constantexpression.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/core/luacas-core_init.lua | 16 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/core/luacas-expression.lua (renamed from macros/luatex/latex/luacas/tex/core/expression.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/core/luacas-functionexpression.lua (renamed from macros/luatex/latex/luacas/tex/core/functionexpression.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/core/luacas-symbolexpression.lua (renamed from macros/luatex/latex/luacas/tex/core/symbolexpression.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/luacas.sty | 6 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/calculus/luacas-derivatives.lua (renamed from macros/luatex/latex/luacas/tex/test/calculus/derivatives.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/calculus/luacas-integrals.lua (renamed from macros/luatex/latex/luacas/tex/test/calculus/integrals.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/expressions/luacas-autosimplify.lua (renamed from macros/luatex/latex/luacas/tex/test/expressions/autosimplify.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/expressions/luacas-collect.lua (renamed from macros/luatex/latex/luacas/tex/test/expressions/collect.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/expressions/luacas-equations.lua (renamed from macros/luatex/latex/luacas/tex/test/expressions/equations.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/expressions/luacas-functions.lua (renamed from macros/luatex/latex/luacas/tex/test/expressions/functions.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/expressions/luacas-logarithms.lua (renamed from macros/luatex/latex/luacas/tex/test/expressions/logarithms.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/expressions/luacas-rationalexponent.lua (renamed from macros/luatex/latex/luacas/tex/test/expressions/rationalexponent.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/expressions/luacas-simplify.lua (renamed from macros/luatex/latex/luacas/tex/test/expressions/simplify.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/expressions/luacas-substitute.lua (renamed from macros/luatex/latex/luacas/tex/test/expressions/substitute.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/luacas-helper.lua (renamed from macros/luatex/latex/luacas/tex/test/helper.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/luacas-main.lua (renamed from macros/luatex/latex/luacas/tex/test/main.lua) | 44 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/luacas-parser.lua (renamed from macros/luatex/latex/luacas/tex/test/parser.lua) | 2 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/polynomials/luacas-partialfractions.lua (renamed from macros/luatex/latex/luacas/tex/test/polynomials/partialfractions.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/polynomials/luacas-polynomial.lua (renamed from macros/luatex/latex/luacas/tex/test/polynomials/polynomial.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/polynomials/luacas-polynomialmod.lua (renamed from macros/luatex/latex/luacas/tex/test/polynomials/polynomialmod.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/polynomials/luacas-roots.lua (renamed from macros/luatex/latex/luacas/tex/test/polynomials/roots.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/rings/luacas-conversion.lua (renamed from macros/luatex/latex/luacas/tex/test/rings/conversion.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/rings/luacas-modulararithmetic.lua (renamed from macros/luatex/latex/luacas/tex/test/rings/modulararithmetic.lua) | 0 | ||||
-rw-r--r-- | macros/luatex/latex/luacas/tex/test/rings/luacas-number.lua (renamed from macros/luatex/latex/luacas/tex/test/rings/number.lua) | 0 |
73 files changed, 321 insertions, 138 deletions
diff --git a/macros/luatex/generic/luakeys/README.md b/macros/luatex/generic/luakeys/README.md index 2bff44088b..bd30edb066 100644 --- a/macros/luatex/generic/luakeys/README.md +++ b/macros/luatex/generic/luakeys/README.md @@ -78,6 +78,9 @@ local defs = { ```lua local opts = { + -- Configure the delimiter that assigns a value to a key. + assignment_operator = '=', + -- Automatically convert dimensions into scaled points (1cm -> 1864679). convert_dimensions = false, @@ -97,6 +100,12 @@ local opts = { -- lower, snake, upper format_keys = { 'snake' }, + -- Configure the delimiter that marks the beginning of a group. + group_begin = '{', + + -- Configure the delimiter that marks the end of a group. + group_end = '}', + -- Listed in the order of execution hooks = { kv_string = function(kv_string) @@ -131,6 +140,9 @@ local opts = { end, }, + -- Configure the delimiter that separates list items from each other. + list_separator = ',', + -- If true, naked keys are converted to values: -- { one = true, two = true, three = true } -> { 'one', 'two', 'three' } naked_as_value = false, @@ -138,6 +150,12 @@ local opts = { -- Throw no error if there are unknown keys. no_error = false, + -- Configure the delimiter that marks the beginning of a string. + quotation_begin = '"', + + -- Configure the delimiter that marks the end of a string. + quotation_end = '"', + -- { key = { 'value' } } -> { key = 'value' } unpack = false, } diff --git a/macros/luatex/generic/luakeys/luakeys-debug.sty b/macros/luatex/generic/luakeys/luakeys-debug.sty index 1a26a66450..5f8cc808f5 100644 --- a/macros/luatex/generic/luakeys/luakeys-debug.sty +++ b/macros/luatex/generic/luakeys/luakeys-debug.sty @@ -17,6 +17,6 @@ % luakeys-debug.sty and luakeys-debug.tex. \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{luakeys-debug}[2022/07/06 0.7.0 Debug package for luakeys.] +\ProvidesPackage{luakeys-debug}[2022/11/17 0.8.0 Debug package for luakeys.] \input luakeys-debug.tex diff --git a/macros/luatex/generic/luakeys/luakeys-doc.pdf b/macros/luatex/generic/luakeys/luakeys-doc.pdf Binary files differindex ee0f3411f6..04e307a84d 100644 --- a/macros/luatex/generic/luakeys/luakeys-doc.pdf +++ b/macros/luatex/generic/luakeys/luakeys-doc.pdf diff --git a/macros/luatex/generic/luakeys/luakeys-doc.tex b/macros/luatex/generic/luakeys/luakeys-doc.tex index dd6fcc0973..f7d2940f66 100644 --- a/macros/luatex/generic/luakeys/luakeys-doc.tex +++ b/macros/luatex/generic/luakeys/luakeys-doc.tex @@ -58,7 +58,7 @@ The default value of the option “\texttt{#1}” is: \href{https://github.com/Josef-Friedrich/luakeys} {github.com/Josef-Friedrich/luakeys}% } -\date{0.7.0 from 2022/07/06} +\date{0.8.0 from 2022/11/17} \maketitle @@ -357,7 +357,7 @@ The \lua{parse} function can be called with an options table. This options are supported: \catcode`_=12 \directlua{luakeys.print_names('opts')} -\InputLua[firstline=5,lastline=69]{opts/all-opts.lua} +\InputLua[firstline=5,lastline=86]{opts/all-opts.lua} \noindent The options can also be set globally using the exported table @@ -371,6 +371,32 @@ The options can also be set globally using the exported table % %% +\subsubsection{Option “\texttt{assignment_operator}”} +\label{option:assignment-operator} +\label{options-delimiter} + +The option \lua{assignment_operator} configures the delimiter that +assigns a value to a key. The default value of this option is +\texttt{"="}. + +The code example below demonstrates all six delimiter related options. + +\InputLua[firstline=4,lastline=13]{opts/delimiters.lua} + +\begin{tabular}{ll} +\textbf{Delimiter options} & \textbf{Section} \\ +assignment_operator & \ref{option:assignment-operator}\\ +group_begin & \ref{option:group-begin}\\ +group_end & \ref{option:group-end}\\ +list_separator & \ref{option:list-separator}\\ +quotation_begin & \ref{option:quotation-begin}\\ +quotation_end & \ref{option:quotation-end}\\ +\end{tabular} + +%% +% +%% + \subsubsection{Option “\texttt{convert_dimensions}”} % Wenn Sie die Option \lua{convert_dimensions} auf \lua{true} setzen, @@ -515,26 +541,76 @@ we can write ... \subsubsection{Option “\texttt{format_keys}”} +% Mit Hilfe der Option \lua{format_keys} können die Schlüssel formatiert +% werden. +With the help of the option \lua{format_keys} the keys can be formatted. +% Die Werte dieser Option müssen in einer Tabelle angegeben werden. +The values of this option must be specified in a table. + \begin{description} -\item[lower] \strut +\item[lower] + +% Um alle Schlüssel in \emph{Kleinbuchstaben} umzuwandeln, geben sie in +% der Optionentabelle \lua{lower} an. +To convert all keys to \emph{lowercase}, specify \lua{lower} in the +options table. \InputLua[firstline=4,lastline=5]{opts/format-keys.lua} -\item[snake] \strut +\item[snake] + +% Um alle Schlüssel in \emph{snake case} (Die Wörter sind durch +% Unterstriche getrennt) umzuwandeln, geben sie in der Optionentabelle +% \lua{snake} an. +To make all keys \emph{snake case} (The words are separated by +underscores), specify \lua{snake} in the options +table. \InputLua[firstline=11,lastline=12]{opts/format-keys.lua} -\item[upper] \strut +\item[upper] + +% Um alle Schlüssel in \emph{Grossbuchstaben} umzuwandeln, geben sie in der +% Optionentabelle \lua{upper} an. +To convert all keys to \emph{uppercase}, specify \lua{upper} in the +options table. \InputLua[firstline=18,lastline=19]{opts/format-keys.lua} \end{description} +% Sie können auch mehrere Formatierungsarten kombinieren. +You can also combine several types of formatting. + +\InputLua[firstline=25,lastline=26]{opts/format-keys.lua} + \DefaultOptDescription{format_keys} %% % %% +\subsubsection{Option “\texttt{group_begin}”} +\label{option:group-begin} + +The option \lua{group_begin} configures the delimiter that marks the +beginning of a group. The default value of this option is \texttt{"\{"}. +A code example can be found in section \ref{options-delimiter}. + +%% +% +%% + +\subsubsection{Option “\texttt{group_end}”} +\label{option:group-end} + +The option \lua{group_end} configures the delimiter that marks the end +of a group. The default value of this option is \texttt{"\}"}. A code +example can be found in section \ref{options-delimiter}. + +%% +% +%% + \subsubsection{Option “\texttt{hooks}”} % Die folgenden Hooks bzw. Callback-Funktionen ermöglichen es in den @@ -623,6 +699,18 @@ as a parameter. % %% +\subsubsection{Option “\texttt{list_separator}”} +\label{option:list-separator} + +The option \lua{list_separator} configures the delimiter that separates +list items from each other. The default value of this option is +\texttt{","}. A code example can be found in section +\ref{options-delimiter}. + +%% +% +%% + \subsubsection{Option “\texttt{naked_as_value}”} % Mit Hilfe der Option \lua{naked_as_value} werden nackte Schlüssel @@ -665,13 +753,37 @@ If we set the option \lua{no_error} to \lua{true}: % %% +\subsubsection{Option “\texttt{quotation_begin}”} +\label{option:quotation-begin} + +The option \lua{quotation_begin} configures the delimiter that marks the +beginning of a string. The default value of this option is +\texttt{'"'} (double quotes). A code example can be found in section +\ref{options-delimiter}. + +%% +% +%% + +\subsubsection{Option “\texttt{quotation_end}”} +\label{option:quotation-end} + +The option \lua{quotation_end} configures the delimiter that marks the +end of a string. The default value of this option is \texttt{'"'} +(double quotes). A code example can be found in section +\ref{options-delimiter}. + +%% +% +%% + \subsubsection{Option “\texttt{unpack}”} % Mit Hilfe der Option \lua{unpack} werden alle Tabellen, die nur aus % einem einzigen nackten Schlüssel bzw. einen einzigen alleinstehenden % Wert bestehen, aufgelöst. With the help of the option \lua{unpack}, all tables that consist of -only one a single naked key or a single standalone value are unpacked. +only a single naked key or a single standalone value are unpacked. \InputLua[firstline=4,lastline=5]{opts/unpack.lua} @@ -1816,6 +1928,12 @@ An example of how to use the command in \LaTeX: that means scan for tokens that are enclosed in square brackets * extend and improve documentation } +\changes{0.8.0}{2022/11/17}{ +* Add 6 new options to change the delimiters: “assignment_operator”, + “group_begin”, “group_end”, “list_separator”, “quotation_begin”, + “quotation_end”. +* Extend the documentation about the option “format_keys”. +} \pagebreak \PrintChanges \pagebreak diff --git a/macros/luatex/generic/luakeys/luakeys.lua b/macros/luatex/generic/luakeys/luakeys.lua index 3221fc3efd..8b065289de 100644 --- a/macros/luatex/generic/luakeys/luakeys.lua +++ b/macros/luatex/generic/luakeys/luakeys.lua @@ -172,15 +172,21 @@ local utils = { local namespace = { opts = { + assignment_operator = '=', convert_dimensions = false, debug = false, default = true, defaults = false, defs = false, format_keys = false, + group_begin = '{', + group_end = '}', hooks = {}, + list_separator = ',', naked_as_value = false, no_error = false, + quotation_begin = '"', + quotation_end = '"', unpack = true, }, @@ -224,6 +230,38 @@ local function throw_error(message) end end +--- Normalize the parse options. +--- +---@param opts? table # Options in a raw format. The table may be empty or some keys are not set. +--- +---@return table +local function normalize_opts(opts) + if type(opts) ~= 'table' then + opts = {} + end + for key, _ in pairs(opts) do + if namespace.opts[key] == nil then + throw_error('Unknown parse option: ' .. tostring(key) .. '!') + end + end + local old_opts = opts + opts = {} + for name, _ in pairs(namespace.opts) do + if old_opts[name] ~= nil then + opts[name] = old_opts[name] + else + opts[name] = default_options[name] + end + end + + for hook in pairs(opts.hooks) do + if namespace.hooks[hook] == nil then + throw_error('Unknown hook: ' .. tostring(hook) .. '!') + end + end + return opts +end + local l3_code_cctab = 10 --- Convert back to strings @@ -375,13 +413,12 @@ end --- * [TUGboat article: Parsing complex data formats in LuaTEX with LPEG](https://tug.or-g/TUGboat/tb40-2/tb125menke-Patterndf) --- ---@param initial_rule string # The name of the first rule of the grammar table passed to the `lpeg.P(attern)` function (e. g. `list`, `number`). ----@param convert_dimensions? boolean # Whether the dimensions should be converted to scaled points (by default `false`). +---@param opts? table # Whether the dimensions should be converted to scaled points (by default `false`). --- ---@return userdata # The parser. -local function generate_parser(initial_rule, - convert_dimensions) - if convert_dimensions == nil then - convert_dimensions = false +local function generate_parser(initial_rule, opts) + if type(opts) ~= 'table' then + opts = normalize_opts(opts) end local Variable = lpeg.V @@ -413,7 +450,7 @@ local function generate_parser(initial_rule, input = input:gsub('%s+', '') -- Convert the unit string into lowercase. input = input:lower() - if convert_dimensions then + if opts.convert_dimensions then return tex.sp(input) else return input @@ -458,7 +495,7 @@ local function generate_parser(initial_rule, -- '{' list '}' list_container = - ws('{') * Variable('list') * ws('}'), + ws(opts.group_begin) * Variable('list') * ws(opts.group_end), -- ( list_container / key_value_pair / value ) ','? list_item = @@ -466,11 +503,11 @@ local function generate_parser(initial_rule, Variable('list_container') + Variable('key_value_pair') + Variable('value') - ) * ws(',')^-1, + ) * ws(opts.list_separator)^-1, -- key '=' (list_container / value) key_value_pair = - (Variable('key') * ws('=')) * (Variable('list_container') + Variable('value')), + (Variable('key') * ws(opts.assignment_operator)) * (Variable('list_container') + Variable('value')), -- number / string_quoted / string_unquoted key = @@ -555,9 +592,9 @@ local function generate_parser(initial_rule, -- '"' ('\"' / !'"')* '"' string_quoted = - white_space^0 * Pattern('"') * - CaptureSimple((Pattern('\\"') + 1 - Pattern('"'))^0) * - Pattern('"') * white_space^0, + white_space^0 * Pattern(opts.quotation_begin) * + CaptureSimple((Pattern('\\' .. opts.quotation_end) + 1 - Pattern(opts.quotation_end))^0) * + Pattern(opts.quotation_end) * white_space^0, string_unquoted = white_space^0 * @@ -566,7 +603,11 @@ local function generate_parser(initial_rule, (Set(' \t')^1 * Variable('word_unquoted')^1)^0) * white_space^0, - word_unquoted = (1 - white_space - Set('{},='))^1 + word_unquoted = (1 - white_space - Set( + opts.group_begin .. + opts.group_end .. + opts.assignment_operator .. + opts.list_separator))^1 }) -- LuaFormatter on end @@ -614,7 +655,7 @@ local is = { if type(value) == 'boolean' then return true end - local parser = generate_parser('boolean_only', false) + local parser = generate_parser('boolean_only') local result = parser:match(tostring(value)) return result ~= nil end, @@ -623,7 +664,7 @@ local is = { if value == nil then return false end - local parser = generate_parser('dimension_only', false) + local parser = generate_parser('dimension_only') local result = parser:match(tostring(value)) return result ~= nil end, @@ -643,7 +684,7 @@ local is = { if type(value) == 'number' then return true end - local parser = generate_parser('number_only', false) + local parser = generate_parser('number_only') local result = parser:match(tostring(value)) return result ~= nil end, @@ -778,7 +819,10 @@ local function apply_definitions(defs, -- integer elseif def.data_type == 'integer' then if is.number(value) then - converted = math.floor(tonumber(value)) + local n = tonumber(value) + if type(n) == 'number' and n ~= nil then + converted = math.floor(n) + end end -- number elseif def.data_type == 'number' then @@ -1038,7 +1082,7 @@ end --- Parse a LaTeX/TeX style key-value string into a Lua table. --- ---@param kv_string string # A string in the TeX/LaTeX style key-value format as described above. ----@param opts table # A table containing the settings: +---@param opts? table # A table containing the settings: --- `convert_dimensions`, `unpack`, `naked_as_value`, `converter`, --- `debug`, `preprocess`, `postprocess`. -- @@ -1047,48 +1091,16 @@ end ---@return table raw # The unprocessed, raw result of the LPeg parser. local function parse(kv_string, opts) if kv_string == nil then - return {} + return {}, {}, {} end - --- Normalize the parse options. - --- - ---@param opts table # Options in a raw format. The table may be empty or some keys are not set. - --- - ---@return table - local function normalize_opts(opts) - if type(opts) ~= 'table' then - opts = {} - end - for key, _ in pairs(opts) do - if namespace.opts[key] == nil then - throw_error('Unknown parse option: ' .. tostring(key) .. '!') - end - end - local old_opts = opts - opts = {} - for name, _ in pairs(namespace.opts) do - if old_opts[name] ~= nil then - opts[name] = old_opts[name] - else - opts[name] = default_options[name] - end - end - - for hook in pairs(opts.hooks) do - if namespace.hooks[hook] == nil then - throw_error('Unknown hook: ' .. tostring(hook) .. '!') - end - end - return opts - end opts = normalize_opts(opts) if type(opts.hooks.kv_string) == 'function' then kv_string = opts.hooks.kv_string(kv_string) end - local result = generate_parser('list', opts.convert_dimensions):match( - kv_string) + local result = generate_parser('list', opts):match(kv_string) local raw = clone_table(result) local function apply_hook(name) @@ -1218,7 +1230,7 @@ local result_store = {} -- @section local export = { - version = { 0, 7, 0 }, + version = { 0, 8, 0 }, namespace = namespace, diff --git a/macros/luatex/generic/luakeys/luakeys.sty b/macros/luatex/generic/luakeys/luakeys.sty index d0917f1d9d..68c3892ee4 100644 --- a/macros/luatex/generic/luakeys/luakeys.sty +++ b/macros/luatex/generic/luakeys/luakeys.sty @@ -17,5 +17,5 @@ % luakeys-debug.sty and luakeys-debug.tex. \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{luakeys}[2022/07/06 0.7.0 Parsing key-value options using Lua.] +\ProvidesPackage{luakeys}[2022/11/17 0.8.0 Parsing key-value options using Lua.] \directlua{luakeys = require('luakeys')} diff --git a/macros/luatex/latex/luacas/README.md b/macros/luatex/latex/luacas/README.md index 8e757dfea9..0d04c2ba04 100644 --- a/macros/luatex/latex/luacas/README.md +++ b/macros/luatex/latex/luacas/README.md @@ -10,10 +10,21 @@ The Lua CAS itself can be downloaded or cloned from [https://github.com/cochraef The package manager for your local TeX distribution ought to work just fine. Alternatively, download luacas.tds.zip and unzip the file in the root of one of your TDS trees. You may need to update some filename database after this (this may vary depending on your TeX distribution). +To run the LuaCAS tests, navigate to the luacas directory in either repository, and run the command +`lua test\main.lua`. You will need Lua version 5.3 or later. + +# Documentation + +Documentation for any version is included with the release. + # Authors This package is authored and maintained by Evan Cochrane and Timothy All. +# Bug Reporting + +Bug reports with the documentation or bugs related to the LaTeX end should go in this repository, while bug reports related to the CAS should go in [https://github.com/cochraef/LuaCAS](https://github.com/cochraef/LuaCAS). There is no required format for bugs, but it should be clear how to replicate the bug and what you think the intended functionality should be. + # License Permission is granted to copy, distribute and/or modify this diff --git a/macros/luatex/latex/luacas/doc/appendix/luacas.dat b/macros/luatex/latex/luacas/doc/appendix/luacas.dat index 60866bae05..7f2efd0a10 100644 --- a/macros/luatex/latex/luacas/doc/appendix/luacas.dat +++ b/macros/luatex/latex/luacas/doc/appendix/luacas.dat @@ -11,7 +11,7 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{luacas} - [2022/05/07 v1.0 CAS written in Lua for LaTeX] + [2022/11/15 v1.0.1 CAS written in Lua for LaTeX] \RequirePackage{iftex} \ifluatex diff --git a/macros/luatex/latex/luacas/doc/appendix/versionhistory.tex b/macros/luatex/latex/luacas/doc/appendix/versionhistory.tex new file mode 100644 index 0000000000..26754b3c7d --- /dev/null +++ b/macros/luatex/latex/luacas/doc/appendix/versionhistory.tex @@ -0,0 +1,22 @@ +\documentclass{article} + +\usepackage[margin=1in]{geometry} +\usepackage[shortlabels]{enumitem} + +\begin{document} + +\section{Version History} + +\subsection*{v1.0.1} + +\begin{itemize} + \item Update CAS file names for \TeX{}Live +\end{itemize} + +\subsection*{v1.0.0} + +\begin{itemize} + \item Intial release +\end{itemize} + +\end{document}
\ No newline at end of file diff --git a/macros/luatex/latex/luacas/doc/luacas.pdf b/macros/luatex/latex/luacas/doc/luacas.pdf Binary files differindex d3ea07adf3..667791efb6 100644 --- a/macros/luatex/latex/luacas/doc/luacas.pdf +++ b/macros/luatex/latex/luacas/doc/luacas.pdf diff --git a/macros/luatex/latex/luacas/doc/luacas.tex b/macros/luatex/latex/luacas/doc/luacas.tex index b5aad9c9f9..3d0c51a343 100644 --- a/macros/luatex/latex/luacas/doc/luacas.tex +++ b/macros/luatex/latex/luacas/doc/luacas.tex @@ -160,9 +160,9 @@ style=numeric, \begin{document} \title{The {\ttfamily luacas} package} \author{Evan Cochrane\thanks{\href{mailto:cochraef@rose-hulman.edu}{\ttfamily cochraef@rose-hulman.edu}} , Timothy All\thanks{\href{mailto:timothy.all@rose-hulman.edu}{\ttfamily timothy.all@rose-hulman.edu}}} -\date{v1.0.0 \\ \today} +\date{v1.0.1 \\ \today} -\maketitle +\maketitle \begin{abstract} The {\ttfamily luacas} package is a portable Computer Algebra System capable of symbolic computation, written entirely in Lua, designed for use in Lua\LaTeX{}. @@ -186,9 +186,9 @@ style=numeric, \include{reference/ref_core/ref_core.tex} -\include{reference/ref_core/ref_core_classes/ref_core_classes.tex} +\include{reference/ref_core/ref_core_classes/ref_core_classes.tex} -\include{reference/ref_core/ref_core_methods/ref_core_methods.tex} +\include{reference/ref_core/ref_core_methods/ref_core_methods.tex} \include{reference/ref_algebra/ref_algebra.tex} @@ -206,6 +206,8 @@ style=numeric, \include{appendix/latexcode.tex} +\include{appendix/versionhistory.tex} + \newpage \printindex diff --git a/macros/luatex/latex/luacas/tex/_lib/inspect.lua b/macros/luatex/latex/luacas/tex/_lib/luacas-inspect.lua index dedd91f248..dedd91f248 100644 --- a/macros/luatex/latex/luacas/tex/_lib/inspect.lua +++ b/macros/luatex/latex/luacas/tex/_lib/luacas-inspect.lua diff --git a/macros/luatex/latex/luacas/tex/_lib/pepperfish.lua b/macros/luatex/latex/luacas/tex/_lib/luacas-pepperfish.lua index 4717543c4b..4717543c4b 100644 --- a/macros/luatex/latex/luacas/tex/_lib/pepperfish.lua +++ b/macros/luatex/latex/luacas/tex/_lib/luacas-pepperfish.lua diff --git a/macros/luatex/latex/luacas/tex/_lib/table.lua b/macros/luatex/latex/luacas/tex/_lib/luacas-table.lua index 70495d1479..70495d1479 100644 --- a/macros/luatex/latex/luacas/tex/_lib/table.lua +++ b/macros/luatex/latex/luacas/tex/_lib/luacas-table.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/_init.lua b/macros/luatex/latex/luacas/tex/algebra/_init.lua deleted file mode 100644 index 0a9b114cb9..0000000000 --- a/macros/luatex/latex/luacas/tex/algebra/_init.lua +++ /dev/null @@ -1,24 +0,0 @@ --- Loads algebra files in the correct order. -require("_lib.table") - -require("core._init") - -require("algebra.ring") -require("algebra.euclideandomain") -require("algebra.field") -require("algebra.polynomialring") -require("algebra.integer") -require("algebra.rational") -require("algebra.integerquotientring") -require("algebra.sqrtexpression") - -require("algebra.absexpression") -require("algebra.equation") -require("algebra.factorialexpression") -require("algebra.logarithm") -require("algebra.rootexpression") -require("algebra.trigexpression") - -require("algebra.polynomialring.berlekampfactoring") -require("algebra.polynomialring.zassenhausfactoring") -require("algebra.polynomialring.decomposition")
\ No newline at end of file diff --git a/macros/luatex/latex/luacas/tex/algebra/absexpression.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-absexpression.lua index 2bf0b6a7ef..2bf0b6a7ef 100644 --- a/macros/luatex/latex/luacas/tex/algebra/absexpression.lua +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-absexpression.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/luacas-algebra_init.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-algebra_init.lua new file mode 100644 index 0000000000..ac37c56a5b --- /dev/null +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-algebra_init.lua @@ -0,0 +1,24 @@ +-- Loads algebra files in the correct order. +require("_lib.luacas-table") + +require("core.luacas-core_init") + +require("algebra.luacas-ring") +require("algebra.luacas-euclideandomain") +require("algebra.luacas-field") +require("algebra.luacas-polynomialring") +require("algebra.luacas-integer") +require("algebra.luacas-rational") +require("algebra.luacas-integerquotientring") +require("algebra.luacas-sqrtexpression") + +require("algebra.luacas-absexpression") +require("algebra.luacas-equation") +require("algebra.luacas-factorialexpression") +require("algebra.luacas-logarithm") +require("algebra.luacas-rootexpression") +require("algebra.luacas-trigexpression") + +require("algebra.polynomialring.luacas-berlekampfactoring") +require("algebra.polynomialring.luacas-zassenhausfactoring") +require("algebra.polynomialring.luacas-decomposition")
\ No newline at end of file diff --git a/macros/luatex/latex/luacas/tex/algebra/equation.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-equation.lua index 4e81d5ca95..4e81d5ca95 100644 --- a/macros/luatex/latex/luacas/tex/algebra/equation.lua +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-equation.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/euclideandomain.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-euclideandomain.lua index fab2c5c7c2..fab2c5c7c2 100644 --- a/macros/luatex/latex/luacas/tex/algebra/euclideandomain.lua +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-euclideandomain.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/factorialexpression.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-factorialexpression.lua index 1c5b824ff7..1c5b824ff7 100644 --- a/macros/luatex/latex/luacas/tex/algebra/factorialexpression.lua +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-factorialexpression.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/field.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-field.lua index c845e94c55..c845e94c55 100644 --- a/macros/luatex/latex/luacas/tex/algebra/field.lua +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-field.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/integer.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-integer.lua index a3c54f498c..a3c54f498c 100644 --- a/macros/luatex/latex/luacas/tex/algebra/integer.lua +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-integer.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/integerquotientring.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-integerquotientring.lua index 4c2188c9e5..4c2188c9e5 100644 --- a/macros/luatex/latex/luacas/tex/algebra/integerquotientring.lua +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-integerquotientring.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/logarithm.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-logarithm.lua index 07a9db84d1..07a9db84d1 100644 --- a/macros/luatex/latex/luacas/tex/algebra/logarithm.lua +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-logarithm.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/polynomialring.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-polynomialring.lua index 568c21c921..568c21c921 100644 --- a/macros/luatex/latex/luacas/tex/algebra/polynomialring.lua +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-polynomialring.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/rational.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-rational.lua index 811909a948..811909a948 100644 --- a/macros/luatex/latex/luacas/tex/algebra/rational.lua +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-rational.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/ring.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-ring.lua index 4903b9c912..4903b9c912 100644 --- a/macros/luatex/latex/luacas/tex/algebra/ring.lua +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-ring.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/rootexpression.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-rootexpression.lua index a66182579a..a66182579a 100644 --- a/macros/luatex/latex/luacas/tex/algebra/rootexpression.lua +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-rootexpression.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/sqrtexpression.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-sqrtexpression.lua index bc96f4e1d8..bc96f4e1d8 100644 --- a/macros/luatex/latex/luacas/tex/algebra/sqrtexpression.lua +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-sqrtexpression.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/trigexpression.lua b/macros/luatex/latex/luacas/tex/algebra/luacas-trigexpression.lua index 307bfe1737..307bfe1737 100644 --- a/macros/luatex/latex/luacas/tex/algebra/trigexpression.lua +++ b/macros/luatex/latex/luacas/tex/algebra/luacas-trigexpression.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/polynomialring/berlekampfactoring.lua b/macros/luatex/latex/luacas/tex/algebra/polynomialring/luacas-berlekampfactoring.lua index feabb61a3f..feabb61a3f 100644 --- a/macros/luatex/latex/luacas/tex/algebra/polynomialring/berlekampfactoring.lua +++ b/macros/luatex/latex/luacas/tex/algebra/polynomialring/luacas-berlekampfactoring.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/polynomialring/decomposition.lua b/macros/luatex/latex/luacas/tex/algebra/polynomialring/luacas-decomposition.lua index 84f2af1efc..84f2af1efc 100644 --- a/macros/luatex/latex/luacas/tex/algebra/polynomialring/decomposition.lua +++ b/macros/luatex/latex/luacas/tex/algebra/polynomialring/luacas-decomposition.lua diff --git a/macros/luatex/latex/luacas/tex/algebra/polynomialring/zassenhausfactoring.lua b/macros/luatex/latex/luacas/tex/algebra/polynomialring/luacas-zassenhausfactoring.lua index be19298e64..be19298e64 100644 --- a/macros/luatex/latex/luacas/tex/algebra/polynomialring/zassenhausfactoring.lua +++ b/macros/luatex/latex/luacas/tex/algebra/polynomialring/luacas-zassenhausfactoring.lua diff --git a/macros/luatex/latex/luacas/tex/calculus/_init.lua b/macros/luatex/latex/luacas/tex/calculus/_init.lua deleted file mode 100644 index 59ba1bbcc8..0000000000 --- a/macros/luatex/latex/luacas/tex/calculus/_init.lua +++ /dev/null @@ -1,6 +0,0 @@ --- Loads calculus files in the correct order. -require("algebra._init") - -require("calculus.derivativeexpression") -require("calculus.integralexpression") -require("calculus.diffexpression") diff --git a/macros/luatex/latex/luacas/tex/calculus/luacas-calculus_init.lua b/macros/luatex/latex/luacas/tex/calculus/luacas-calculus_init.lua new file mode 100644 index 0000000000..89b38b650e --- /dev/null +++ b/macros/luatex/latex/luacas/tex/calculus/luacas-calculus_init.lua @@ -0,0 +1,6 @@ +-- Loads calculus files in the correct order. +require("algebra.luacas-algebra_init") + +require("calculus.luacas-derivativeexpression") +require("calculus.luacas-integralexpression") +require("calculus.luacas-diffexpression") diff --git a/macros/luatex/latex/luacas/tex/calculus/derivativeexpression.lua b/macros/luatex/latex/luacas/tex/calculus/luacas-derivativeexpression.lua index b757759c4c..b757759c4c 100644 --- a/macros/luatex/latex/luacas/tex/calculus/derivativeexpression.lua +++ b/macros/luatex/latex/luacas/tex/calculus/luacas-derivativeexpression.lua diff --git a/macros/luatex/latex/luacas/tex/calculus/diffexpression.lua b/macros/luatex/latex/luacas/tex/calculus/luacas-diffexpression.lua index df1dc90f33..df1dc90f33 100644 --- a/macros/luatex/latex/luacas/tex/calculus/diffexpression.lua +++ b/macros/luatex/latex/luacas/tex/calculus/luacas-diffexpression.lua diff --git a/macros/luatex/latex/luacas/tex/calculus/integralexpression.lua b/macros/luatex/latex/luacas/tex/calculus/luacas-integralexpression.lua index 5267127264..5267127264 100644 --- a/macros/luatex/latex/luacas/tex/calculus/integralexpression.lua +++ b/macros/luatex/latex/luacas/tex/calculus/luacas-integralexpression.lua diff --git a/macros/luatex/latex/luacas/tex/core/_init.lua b/macros/luatex/latex/luacas/tex/core/_init.lua deleted file mode 100644 index cfd640a214..0000000000 --- a/macros/luatex/latex/luacas/tex/core/_init.lua +++ /dev/null @@ -1,16 +0,0 @@ --- Loads core files in the correct order. - -require("core.expression") -require("core.atomicexpression") -require("core.compoundexpression") -require("core.constantexpression") -require("core.symbolexpression") -require("core.binaryoperation") -require("core.functionexpression") - - -require("core.binaryoperation.power") -require("core.binaryoperation.product") -require("core.binaryoperation.sum") -require("core.binaryoperation.quotient") -require("core.binaryoperation.difference")
\ No newline at end of file diff --git a/macros/luatex/latex/luacas/tex/core/binaryoperation/difference.lua b/macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-difference.lua index 2cc56b6600..2cc56b6600 100644 --- a/macros/luatex/latex/luacas/tex/core/binaryoperation/difference.lua +++ b/macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-difference.lua diff --git a/macros/luatex/latex/luacas/tex/core/binaryoperation/power.lua b/macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-power.lua index 35df72c440..35df72c440 100644 --- a/macros/luatex/latex/luacas/tex/core/binaryoperation/power.lua +++ b/macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-power.lua diff --git a/macros/luatex/latex/luacas/tex/core/binaryoperation/product.lua b/macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-product.lua index b104cb5e8a..b104cb5e8a 100644 --- a/macros/luatex/latex/luacas/tex/core/binaryoperation/product.lua +++ b/macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-product.lua diff --git a/macros/luatex/latex/luacas/tex/core/binaryoperation/quotient.lua b/macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-quotient.lua index 4dac489bf5..4dac489bf5 100644 --- a/macros/luatex/latex/luacas/tex/core/binaryoperation/quotient.lua +++ b/macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-quotient.lua diff --git a/macros/luatex/latex/luacas/tex/core/binaryoperation/sum.lua b/macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-sum.lua index 5bb204066f..5bb204066f 100644 --- a/macros/luatex/latex/luacas/tex/core/binaryoperation/sum.lua +++ b/macros/luatex/latex/luacas/tex/core/binaryoperation/luacas-sum.lua diff --git a/macros/luatex/latex/luacas/tex/core/atomicexpression.lua b/macros/luatex/latex/luacas/tex/core/luacas-atomicexpression.lua index 6cc6e4f58e..6cc6e4f58e 100644 --- a/macros/luatex/latex/luacas/tex/core/atomicexpression.lua +++ b/macros/luatex/latex/luacas/tex/core/luacas-atomicexpression.lua diff --git a/macros/luatex/latex/luacas/tex/core/binaryoperation.lua b/macros/luatex/latex/luacas/tex/core/luacas-binaryoperation.lua index 708a6c1540..708a6c1540 100644 --- a/macros/luatex/latex/luacas/tex/core/binaryoperation.lua +++ b/macros/luatex/latex/luacas/tex/core/luacas-binaryoperation.lua diff --git a/macros/luatex/latex/luacas/tex/core/compoundexpression.lua b/macros/luatex/latex/luacas/tex/core/luacas-compoundexpression.lua index 792c36cfc2..792c36cfc2 100644 --- a/macros/luatex/latex/luacas/tex/core/compoundexpression.lua +++ b/macros/luatex/latex/luacas/tex/core/luacas-compoundexpression.lua diff --git a/macros/luatex/latex/luacas/tex/core/constantexpression.lua b/macros/luatex/latex/luacas/tex/core/luacas-constantexpression.lua index 0f91a037a9..0f91a037a9 100644 --- a/macros/luatex/latex/luacas/tex/core/constantexpression.lua +++ b/macros/luatex/latex/luacas/tex/core/luacas-constantexpression.lua diff --git a/macros/luatex/latex/luacas/tex/core/luacas-core_init.lua b/macros/luatex/latex/luacas/tex/core/luacas-core_init.lua new file mode 100644 index 0000000000..c9c3b89126 --- /dev/null +++ b/macros/luatex/latex/luacas/tex/core/luacas-core_init.lua @@ -0,0 +1,16 @@ +-- Loads core files in the correct order. + +require("core.luacas-expression") +require("core.luacas-atomicexpression") +require("core.luacas-compoundexpression") +require("core.luacas-constantexpression") +require("core.luacas-symbolexpression") +require("core.luacas-binaryoperation") +require("core.luacas-functionexpression") + + +require("core.binaryoperation.luacas-power") +require("core.binaryoperation.luacas-product") +require("core.binaryoperation.luacas-sum") +require("core.binaryoperation.luacas-quotient") +require("core.binaryoperation.luacas-difference")
\ No newline at end of file diff --git a/macros/luatex/latex/luacas/tex/core/expression.lua b/macros/luatex/latex/luacas/tex/core/luacas-expression.lua index 8ff4659f79..8ff4659f79 100644 --- a/macros/luatex/latex/luacas/tex/core/expression.lua +++ b/macros/luatex/latex/luacas/tex/core/luacas-expression.lua diff --git a/macros/luatex/latex/luacas/tex/core/functionexpression.lua b/macros/luatex/latex/luacas/tex/core/luacas-functionexpression.lua index dc94790b81..dc94790b81 100644 --- a/macros/luatex/latex/luacas/tex/core/functionexpression.lua +++ b/macros/luatex/latex/luacas/tex/core/luacas-functionexpression.lua diff --git a/macros/luatex/latex/luacas/tex/core/symbolexpression.lua b/macros/luatex/latex/luacas/tex/core/luacas-symbolexpression.lua index 0d9192c084..0d9192c084 100644 --- a/macros/luatex/latex/luacas/tex/core/symbolexpression.lua +++ b/macros/luatex/latex/luacas/tex/core/luacas-symbolexpression.lua diff --git a/macros/luatex/latex/luacas/tex/luacas.sty b/macros/luatex/latex/luacas/tex/luacas.sty index 461fae6efa..d46ee847fc 100644 --- a/macros/luatex/latex/luacas/tex/luacas.sty +++ b/macros/luatex/latex/luacas/tex/luacas.sty @@ -9,7 +9,7 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{luacas} - [2022/05/07 v1.0 CAS written in Lua for LaTeX] + [2022/11/15 v1.0.1 CAS written in Lua for LaTeX] \RequirePackage{iftex} \ifluatex @@ -30,8 +30,8 @@ \RequirePackage{mathtools} %These files contain Lua code for parsing luacas output; they also initialize the CAS itself -\directlua{require('test.parser') - require('test.helper') +\directlua{require('test.luacas-parser') + require('test.luacas-helper') } \NewDocumentEnvironment{CAS}% diff --git a/macros/luatex/latex/luacas/tex/test/calculus/derivatives.lua b/macros/luatex/latex/luacas/tex/test/calculus/luacas-derivatives.lua index 5d5429f59b..5d5429f59b 100644 --- a/macros/luatex/latex/luacas/tex/test/calculus/derivatives.lua +++ b/macros/luatex/latex/luacas/tex/test/calculus/luacas-derivatives.lua diff --git a/macros/luatex/latex/luacas/tex/test/calculus/integrals.lua b/macros/luatex/latex/luacas/tex/test/calculus/luacas-integrals.lua index 0c12f7a787..0c12f7a787 100644 --- a/macros/luatex/latex/luacas/tex/test/calculus/integrals.lua +++ b/macros/luatex/latex/luacas/tex/test/calculus/luacas-integrals.lua diff --git a/macros/luatex/latex/luacas/tex/test/expressions/autosimplify.lua b/macros/luatex/latex/luacas/tex/test/expressions/luacas-autosimplify.lua index 09ad9874cd..09ad9874cd 100644 --- a/macros/luatex/latex/luacas/tex/test/expressions/autosimplify.lua +++ b/macros/luatex/latex/luacas/tex/test/expressions/luacas-autosimplify.lua diff --git a/macros/luatex/latex/luacas/tex/test/expressions/collect.lua b/macros/luatex/latex/luacas/tex/test/expressions/luacas-collect.lua index b40e8e3d09..b40e8e3d09 100644 --- a/macros/luatex/latex/luacas/tex/test/expressions/collect.lua +++ b/macros/luatex/latex/luacas/tex/test/expressions/luacas-collect.lua diff --git a/macros/luatex/latex/luacas/tex/test/expressions/equations.lua b/macros/luatex/latex/luacas/tex/test/expressions/luacas-equations.lua index 3d6aa131fc..3d6aa131fc 100644 --- a/macros/luatex/latex/luacas/tex/test/expressions/equations.lua +++ b/macros/luatex/latex/luacas/tex/test/expressions/luacas-equations.lua diff --git a/macros/luatex/latex/luacas/tex/test/expressions/functions.lua b/macros/luatex/latex/luacas/tex/test/expressions/luacas-functions.lua index e2c15096d6..e2c15096d6 100644 --- a/macros/luatex/latex/luacas/tex/test/expressions/functions.lua +++ b/macros/luatex/latex/luacas/tex/test/expressions/luacas-functions.lua diff --git a/macros/luatex/latex/luacas/tex/test/expressions/logarithms.lua b/macros/luatex/latex/luacas/tex/test/expressions/luacas-logarithms.lua index 2813a6b8f5..2813a6b8f5 100644 --- a/macros/luatex/latex/luacas/tex/test/expressions/logarithms.lua +++ b/macros/luatex/latex/luacas/tex/test/expressions/luacas-logarithms.lua diff --git a/macros/luatex/latex/luacas/tex/test/expressions/rationalexponent.lua b/macros/luatex/latex/luacas/tex/test/expressions/luacas-rationalexponent.lua index 85690f8c66..85690f8c66 100644 --- a/macros/luatex/latex/luacas/tex/test/expressions/rationalexponent.lua +++ b/macros/luatex/latex/luacas/tex/test/expressions/luacas-rationalexponent.lua diff --git a/macros/luatex/latex/luacas/tex/test/expressions/simplify.lua b/macros/luatex/latex/luacas/tex/test/expressions/luacas-simplify.lua index ac5582901d..ac5582901d 100644 --- a/macros/luatex/latex/luacas/tex/test/expressions/simplify.lua +++ b/macros/luatex/latex/luacas/tex/test/expressions/luacas-simplify.lua diff --git a/macros/luatex/latex/luacas/tex/test/expressions/substitute.lua b/macros/luatex/latex/luacas/tex/test/expressions/luacas-substitute.lua index 4d1f3496bf..4d1f3496bf 100644 --- a/macros/luatex/latex/luacas/tex/test/expressions/substitute.lua +++ b/macros/luatex/latex/luacas/tex/test/expressions/luacas-substitute.lua diff --git a/macros/luatex/latex/luacas/tex/test/helper.lua b/macros/luatex/latex/luacas/tex/test/luacas-helper.lua index b550967da9..b550967da9 100644 --- a/macros/luatex/latex/luacas/tex/test/helper.lua +++ b/macros/luatex/latex/luacas/tex/test/luacas-helper.lua diff --git a/macros/luatex/latex/luacas/tex/test/main.lua b/macros/luatex/latex/luacas/tex/test/luacas-main.lua index 638f7734b5..95f77885e4 100644 --- a/macros/luatex/latex/luacas/tex/test/main.lua +++ b/macros/luatex/latex/luacas/tex/test/luacas-main.lua @@ -1,8 +1,8 @@ ---@diagnostic disable: lowercase-global -- Runs test code from test files. -require("calculus._init") -require("_lib.pepperfish") +require("calculus.luacas-calculus_init") +require("_lib.luacas-pepperfish") -- Stuff required for the basic parser. local constants = {e="E", pi = "PI", ln = "LN", log = "LOG", Integer = "Integer", DD = "DD", int = "INT", abs = "ABS", fact="FACT"} @@ -124,26 +124,26 @@ end -- profiler = newProfiler() -- profiler:start() -require("test.calculus.derivatives") -require("test.calculus.integrals") - -require("test.expressions.autosimplify") -require("test.expressions.collect") -require("test.expressions.equations") -require("test.expressions.simplify") -require("test.expressions.functions") -require("test.expressions.logarithms") --- require("test.expressions.rationalexponent") -require("test.expressions.substitute") - -require("test.polynomials.polynomial") -require("test.polynomials.partialfractions") -require("test.polynomials.polynomialmod") -require("test.polynomials.roots") - -require("test.rings.conversion") -require("test.rings.modulararithmetic") -require("test.rings.number") +require("test.calculus.luacas-derivatives") +require("test.calculus.luacas-integrals") + +require("test.expressions.luacas-autosimplify") +require("test.expressions.luacas-collect") +require("test.expressions.luacas-equations") +require("test.expressions.luacas-simplify") +require("test.expressions.luacas-functions") +require("test.expressions.luacas-logarithms") +-- require("test.expressions.luacas-rationalexponent") +require("test.expressions.luacas-substitute") + +require("test.polynomials.luacas-polynomial") +require("test.polynomials.luacas-partialfractions") +require("test.polynomials.luacas-polynomialmod") +require("test.polynomials.luacas-roots") + +require("test.rings.luacas-conversion") +require("test.rings.luacas-modulararithmetic") +require("test.rings.luacas-number") endall() diff --git a/macros/luatex/latex/luacas/tex/test/parser.lua b/macros/luatex/latex/luacas/tex/test/luacas-parser.lua index 6cb22a1bdb..3380549620 100644 --- a/macros/luatex/latex/luacas/tex/test/parser.lua +++ b/macros/luatex/latex/luacas/tex/test/luacas-parser.lua @@ -2,7 +2,7 @@ -require("calculus._init") +require("calculus.luacas-calculus_init") -- Splits a string on a seperator. function split(str, sep) diff --git a/macros/luatex/latex/luacas/tex/test/polynomials/partialfractions.lua b/macros/luatex/latex/luacas/tex/test/polynomials/luacas-partialfractions.lua index 280d4d56f3..280d4d56f3 100644 --- a/macros/luatex/latex/luacas/tex/test/polynomials/partialfractions.lua +++ b/macros/luatex/latex/luacas/tex/test/polynomials/luacas-partialfractions.lua diff --git a/macros/luatex/latex/luacas/tex/test/polynomials/polynomial.lua b/macros/luatex/latex/luacas/tex/test/polynomials/luacas-polynomial.lua index 545538c764..545538c764 100644 --- a/macros/luatex/latex/luacas/tex/test/polynomials/polynomial.lua +++ b/macros/luatex/latex/luacas/tex/test/polynomials/luacas-polynomial.lua diff --git a/macros/luatex/latex/luacas/tex/test/polynomials/polynomialmod.lua b/macros/luatex/latex/luacas/tex/test/polynomials/luacas-polynomialmod.lua index 1906ad2d72..1906ad2d72 100644 --- a/macros/luatex/latex/luacas/tex/test/polynomials/polynomialmod.lua +++ b/macros/luatex/latex/luacas/tex/test/polynomials/luacas-polynomialmod.lua diff --git a/macros/luatex/latex/luacas/tex/test/polynomials/roots.lua b/macros/luatex/latex/luacas/tex/test/polynomials/luacas-roots.lua index 01975ab1ec..01975ab1ec 100644 --- a/macros/luatex/latex/luacas/tex/test/polynomials/roots.lua +++ b/macros/luatex/latex/luacas/tex/test/polynomials/luacas-roots.lua diff --git a/macros/luatex/latex/luacas/tex/test/rings/conversion.lua b/macros/luatex/latex/luacas/tex/test/rings/luacas-conversion.lua index b9eb523c7a..b9eb523c7a 100644 --- a/macros/luatex/latex/luacas/tex/test/rings/conversion.lua +++ b/macros/luatex/latex/luacas/tex/test/rings/luacas-conversion.lua diff --git a/macros/luatex/latex/luacas/tex/test/rings/modulararithmetic.lua b/macros/luatex/latex/luacas/tex/test/rings/luacas-modulararithmetic.lua index 1bd315595a..1bd315595a 100644 --- a/macros/luatex/latex/luacas/tex/test/rings/modulararithmetic.lua +++ b/macros/luatex/latex/luacas/tex/test/rings/luacas-modulararithmetic.lua diff --git a/macros/luatex/latex/luacas/tex/test/rings/number.lua b/macros/luatex/latex/luacas/tex/test/rings/luacas-number.lua index 9afea0d364..9afea0d364 100644 --- a/macros/luatex/latex/luacas/tex/test/rings/number.lua +++ b/macros/luatex/latex/luacas/tex/test/rings/luacas-number.lua |