mirror of
https://gitlab.com/rnger/amath
synced 2026-10-20 11:44:41 +00:00
Moved catalog generation files
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
Make catalogs for a new language:
|
||||
flexcat text/help.cd NEWCTFILE catalog/language/amath-help.ct
|
||||
flexcat text/text.cd NEWCTFILE catalog/language/amath-text.ct
|
||||
flexcat text/ident.cd NEWCTFILE catalog/language/amath-ident.ct
|
||||
|
||||
Some catalog files are distrubuted under Creative Common License.
|
||||
See individual files and license file for details. Also visit:
|
||||
http://creativecommons.org/licenses/by-sa/3.0/
|
||||
+133
@@ -0,0 +1,133 @@
|
||||
#language english
|
||||
#version 0
|
||||
; ###################################################################################
|
||||
; ## Help texts for statement in amath
|
||||
; ## ----------------------------------
|
||||
; ##
|
||||
; ## Generate code with:
|
||||
; ## flexcat help.cd ../app/localize/help.h=help.sd
|
||||
; ##
|
||||
; ###################################################################################
|
||||
; ## Copyright (c) 2015, Carsten Larsen
|
||||
; ## All rights reserved.
|
||||
; ##
|
||||
; ## Redistribution and use in source and binary forms, with or without
|
||||
; ## modification, are permitted provided that the following conditions are met:
|
||||
; ##
|
||||
; ## * Redistributions of source code must retain the above copyright notice, this
|
||||
; ## list of conditions and the following disclaimer.
|
||||
; ##
|
||||
; ## * Redistributions in binary form must reproduce the above copyright notice,
|
||||
; ## this list of conditions and the following disclaimer in the documentation
|
||||
; ## and/or other materials provided with the distribution.
|
||||
; ##
|
||||
; ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
; ## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
; ## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
; ## DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
; ## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
; ## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
; ## SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
; ## CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
; ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
; ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
; ###################################################################################
|
||||
; Introduction table - Symbol(0)
|
||||
symzero (/500/)
|
||||
Enter command or expression to evaluate.#NEWLINE##SYNTAXHIGHLIGHT#Example: 2+3-cos(3)#NORMALTEXT##NEWLINE# #NEWLINE#More help is available for designated topics.#NEWLINE#-------------------------------------------------#NEWLINE#functions Base functions.#NEWLINE#trigon Trigonometric functions.#NEWLINE#hyper Hyperbolic functions.#NEWLINE#complex Syntax for complex numbers.#NEWLINE#statements Available statements.#NEWLINE#operators Supported operators.#NEWLINE#-------------------------------------------------#NEWLINE##SYNTAXHIGHLIGHT#Example: help trigon#NEWLINE#
|
||||
; Table of operators
|
||||
symoperator (/400/)
|
||||
-------------------------------------------------#NEWLINE# + Mathematical addition.#NEWLINE# - Mathematical subtraction.#NEWLINE# * Mathematical multiplication.#NEWLINE# / Mathematical division.#NEWLINE# ^ Mathematical exponentiation.#NEWLINE# = Assignment of variable values.#NEWLINE# | Absolute value of number. #NEWLINE#-------------------------------------------------#NEWLINE#
|
||||
; Table of functions
|
||||
symfunction (/500/)
|
||||
-------------------------------------------------#NEWLINE#abs Absolute value of number.#NEWLINE#sgn Mathematical signum function.#NEWLINE#round Round to nearest integer number.#NEWLINE#trunc Discard fraction part of number.#NEWLINE#floor Mathematical floor function.#NEWLINE#ceil Mathematical ceiling function.#NEWLINE#sqrt Square root function (exp 1/2).#NEWLINE#cbrt Cube root function (exp 1/3).#NEWLINE#lb Binary logarithm function (base 2).#NEWLINE#ln Natural logarithm function (base e).#NEWLINE#lg Common logarithm function (base 10).#NEWLINE#-------------------------------------------------#NEWLINE##SYNTAXHIGHLIGHT#Example: round(1.55)#NORMALTEXT##NEWLINE#
|
||||
; Table of trigonometric functions
|
||||
symtrigon (/500/)
|
||||
-------------------------------------------------#NEWLINE#sin Trigonometric sine function.#NEWLINE#cos Trigonometric cosine function.#NEWLINE#tan Trigonometric tangent function.#NEWLINE#cot Trigonometric cotangent function.#NEWLINE#sec Trigonometric secant function.#NEWLINE#csc Trigonometric cosecant function.#NEWLINE#asin Inverse trigonometric sine function.#NEWLINE#acos Inverse trigonometric cosine function.#NEWLINE#atan Inverse trigonometric tangent function.#NEWLINE#acot Inverse trigonometric cotangent function.#NEWLINE#asec Inverse trigonometric secant function.#NEWLINE#acsc Inverse trigonometric cosecant function.#NEWLINE#-------------------------------------------------#NEWLINE#Inverse functions can be prefixed with ar or arc #NEWLINE#instead of a.#NEWLINE#
|
||||
; Table of hyperbolic functions
|
||||
symhyper (/500/)
|
||||
-------------------------------------------------#NEWLINE#sinh Hyperbolic sine function.#NEWLINE#cosh Hyperbolic cosine function.#NEWLINE#tanh Hyperbolic tangent function.#NEWLINE#coth Hyperbolic cotangent function.#NEWLINE#sech Hyperbolic secant function.#NEWLINE#csch Hyperbolic cosecant function. #NEWLINE#asinh Inverse hyperbolic sine function.#NEWLINE#acosh Inverse hyperbolic cosine function.#NEWLINE#atanh Inverse hyperbolic tangent function.#NEWLINE#acoth Inverse hyperbolic cotangent function.#NEWLINE#asech Inverse hyperbolic secant function.#NEWLINE#acsch Inverse hyperbolic cosecant function.#NEWLINE#-------------------------------------------------#NEWLINE#Inverse functions can be prefixed with ar or arc #NEWLINE#instead of a.#NEWLINE#
|
||||
; Table of statements
|
||||
symstatement (/1000/)
|
||||
---------------------------------------------------------#NEWLINE#clear Clear console window.#NEWLINE#def Define function.#NEWLINE#delete Delete variable or function.#NEWLINE#digits Set number of significant digits.#NEWLINE#eval Evaluate arithmetic expression.#NEWLINE#execute Execute statements in a file.#NEWLINE#functions Show list of user defined functions.#NEWLINE#input Change numeral input system (experimental).#NEWLINE#help Show basic help text.#NEWLINE#output Change numeral output system (experimental).#NEWLINE#list Show content of a directory.#NEWLINE#show Show content of a file.#NEWLINE#load Load variable and functions from file.#NEWLINE#save Save variable and functions to file.#NEWLINE#variables Show list of variables.#NEWLINE#version Show version string.#NEWLINE#memory Show internal memory usage.#NEWLINE#exit Exit program.#NEWLINE#---------------------------------------------------------#NEWLINE#The def and eval statements are optional. Functions and#NEWLINE#variables statements can be shorten to funcs and vars.#NEWLINE#
|
||||
; Help for complex numbers
|
||||
symcomplex (/200/)
|
||||
Expressions with complex numbers are written using an i to denote#NEWLINE#the imaginary value. Complex numbers can seamlessly be mixed with#NEWLINE#real numbers.#NEWLINE##SYNTAXHIGHLIGHT#Syntax: 2+3i#NEWLINE#Example: 2+3.2i*cos(-1i)+5/7#NEWLINE#
|
||||
; Help for clear statement
|
||||
symclear (/40/)
|
||||
The clear statement erases all text in the console window.#NEWLINE##SYNTAXHIGHLIGHT#Syntax: clear#NEWLINE#
|
||||
; Help for def statement
|
||||
symdef (/200/)
|
||||
The def statement is used to define functions. When defining a function#NEWLINE#it is possible to omit the def keyword. Defined functions can be shown#NEWLINE#using the functions statement.#NEWLINE##SYNTAXHIGHLIGHT#Syntax: def f(x)=2*x+3#NEWLINE#Optional syntax: f(x)=2*x+3#NEWLINE#
|
||||
; Help for delete statement
|
||||
symdelete (/250/)
|
||||
The delete statement can delete variable and functions. To delete a#NEWLINE#single variable or functions use the name of the function or variable.#NEWLINE#To delete all functions or variables specify either the variable or#NEWLINE#function keyword.#NEWLINE##SYNTAXHIGHLIGHT#Syntax: delete f(x)#NEWLINE#Syntax: delete variables#NEWLINE#
|
||||
; Help for digits statement
|
||||
symdigits (/150/)
|
||||
The digits statement defines the displayed number of significant digits.#NEWLINE#To show current configuration use the digits statement without specifying#NEWLINE#the number.#NEWLINE# #SYNTAXHIGHLIGHT#Syntax: digits 7#NEWLINE#
|
||||
; Help for eval statement
|
||||
symeval (/80/)
|
||||
The eval statement evaluates an expression. When evaluating an expression#NEWLINE#it is possible to omit the eval keyword.#NEWLINE##SYNTAXHIGHLIGHT#Syntax: eval 2.4*x+3.2#NEWLINE#Optional syntax: 2.4*x+3.2#NEWLINE#
|
||||
; Help for execute statement
|
||||
symexecute (/40/)
|
||||
The execute statement reads the content of a file and execute all statements.#NEWLINE##SYNTAXHIGHLIGHT#Syntax: execute "savedfile"#NEWLINE#
|
||||
; Help for input statement
|
||||
syminput (/120/)
|
||||
The input statement either changes or shows the how numeral input is interpreted.#NEWLINE#Possible input systems are: binary, octal, decimal and hexadecimal. Default is#NEWLINE#decimal. To use positional systems with other bases specify the base number.#NEWLINE#Numeral output system can be modified using the output statement.#NEWLINE##SYNTAXHIGHLIGHT#Syntax: input hexadecimal#NEWLINE#Syntax: input 4#NEWLINE#
|
||||
; Help for help statement
|
||||
symhelp (/50/)
|
||||
The help statement can be used to display help about topics and statements.#NEWLINE##SYNTAXHIGHLIGHT#Syntax: help variables#NEWLINE#
|
||||
; Help for output statement
|
||||
symoutput (/120/)
|
||||
The output statement either changes or shows the how numeral output is shown.#NEWLINE#Possible output systems are: binary, octal, decimal and hexadecimal. Default#NEWLINE#is decimal. To use positional systems with other bases specify the base number.#NEWLINE#Numeral input system can be modified using the input statement.#NEWLINE##SYNTAXHIGHLIGHT#Syntax: output octal#NEWLINE#
|
||||
; Help for list statement
|
||||
symlist (/40/)
|
||||
No description is available for the list statement.#NEWLINE#
|
||||
; Help for show statement
|
||||
symshow (/40/)
|
||||
The show statement displays the content of a file.#NEWLINE##SYNTAXHIGHLIGHT#Syntax: show "filetosee"#NEWLINE#
|
||||
; Help for load statement
|
||||
symload (/80/)
|
||||
The load statement retrieves a set of defined variables and functions from#NEWLINE#a file. Variables and functions can be saved using the save statement.#NEWLINE##SYNTAXHIGHLIGHT#Syntax: load "savedwork"#NEWLINE#
|
||||
; Help for save statement
|
||||
symsave (/80/)
|
||||
The save statement saves defined variables and functions to a file in a#NEWLINE#plain text format. Saved variables and functions can be retrieved using#NEWLINE#the load statement.#NEWLINE# #SYNTAXHIGHLIGHT#Syntax: save "worktokeep"#NEWLINE#
|
||||
; Help for version statement
|
||||
symversion (/40/)
|
||||
Show which version of amath is running.#NEWLINE#
|
||||
; Help for memory statement
|
||||
symmem (/40/)
|
||||
Show internal memory usage together with maximum usage.#NEWLINE#
|
||||
; Help for prefs statement
|
||||
symprefs (/40/)
|
||||
There is no help for prefs statement now.#NEWLINE#
|
||||
; Help for variable statement
|
||||
symvariable (/40/)
|
||||
The variable statement shows a list of variables in memory.#NEWLINE##SYNTAXHIGHLIGHT#Syntax: variables#NEWLINE##NORMALTEXT#optional syntax: vars#NEWLINE#
|
||||
; Help for exit statement
|
||||
symexit (/40/)
|
||||
The exit statement shuts down amath.#NEWLINE##SYNTAXHIGHLIGHT#Syntax: exit#NEWLINE#
|
||||
; Help for constant epsilon
|
||||
syme (/40/)
|
||||
Euler's number is base of the exponential function which equals its own#NEWLINE#derivative. It is approximately equal to 2.71828.#NEWLINE##SYNTAXHIGHLIGHT#Example: ln(e)#NEWLINE#
|
||||
; Help for constant pi
|
||||
sympi (/40/)
|
||||
Pi is the ratio of the circumference of a circle to its diameter. Being an#NEWLINE#irrational number, pi cannot be expressed exactly as a common fraction.#NEWLINE#The value of pi is commonly approximated as #SYNTAXHIGHLIGHT#3.14159#NORMALTEXT#.#NEWLINE#
|
||||
; Help for imaginary unit
|
||||
symi (/40/)
|
||||
The imaginary unit is denoted and commonly referred to as i.#NEWLINE#The imaginary unit is a number, which when multiplied#NEWLINE#by itself gives -1.#NEWLINE#
|
||||
; Help for ins variable
|
||||
symins (/40/)
|
||||
No help is available for the ins variable#NEWLINE#
|
||||
; Help for binary keyword
|
||||
symbin (/40/)
|
||||
No help is available for the binary keyword#NEWLINE
|
||||
; Help for octal keyword
|
||||
symoct (/40/)
|
||||
No help is available for the octal keyword#NEWLINE
|
||||
; Help for decimal keyword
|
||||
symdec (/40/)
|
||||
No help is available for the decimal keyword#NEWLINE
|
||||
; Help for hexadecimal keyword
|
||||
symhex (/40/)
|
||||
No help is available for the hexadecimal keyword#NEWLINE
|
||||
@@ -0,0 +1,56 @@
|
||||
##stringtype C
|
||||
/*
|
||||
* Copyright (c) 2015 Carsten Larsen
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* Generated with FlexCat. For more information, see:
|
||||
* http://sourceforge.net/projects/flexcat/
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AMATH_LOCALIZE_HELP_H
|
||||
#define AMATH_LOCALIZE_HELP_H
|
||||
|
||||
/**
|
||||
* @file help.h
|
||||
* @brief Help texts for statement.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "clib.h"
|
||||
#include "localize/lex.h"
|
||||
|
||||
#define symzero Symbol(0)
|
||||
|
||||
struct helptextdef {
|
||||
int id;
|
||||
Symbol symbol;
|
||||
const char *text;
|
||||
};
|
||||
|
||||
static const helptextdef helptexts[] = {
|
||||
{ %d, %i, %s },
|
||||
{ -1, symzero, EMPTYSTRING }
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,104 @@
|
||||
#language english
|
||||
#version 0
|
||||
; ###################################################################################
|
||||
; ## Help texts for built-in functions in amath
|
||||
; ## ------------------------------------------
|
||||
; ##
|
||||
; ## Generate code with:
|
||||
; ## flexcat ident-clean.cd ../app/localize/ident.h=ident.sd
|
||||
; ##
|
||||
; ###################################################################################
|
||||
; ## Copyright (c) 2015, Carsten Larsen
|
||||
; ## All rights reserved.
|
||||
; ##
|
||||
; ## Redistribution and use in source and binary forms, with or without
|
||||
; ## modification, are permitted provided that the following conditions are met:
|
||||
; ##
|
||||
; ## * Redistributions of source code must retain the above copyright notice, this
|
||||
; ## list of conditions and the following disclaimer.
|
||||
; ##
|
||||
; ## * Redistributions in binary form must reproduce the above copyright notice,
|
||||
; ## this list of conditions and the following disclaimer in the documentation
|
||||
; ## and/or other materials provided with the distribution.
|
||||
; ##
|
||||
; ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
; ## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
; ## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
; ## DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
; ## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
; ## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
; ## SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
; ## CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
; ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
; ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
; ###################################################################################
|
||||
abs (/40/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
sgn (/40/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
round (/40/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
trunc (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
floor (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
ceil (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
sqr (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
cbr (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
lb (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
ln (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
lg (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
sin (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
cos (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
tan (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
cot (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
sec (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
csc (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
asin (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
acos (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
atan (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
acot (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
asec (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
acsc (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
sinh (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
cosh (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
tanh (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
coth (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
sech (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
csch (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
asinh (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
acosh (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
atanh (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
acoth (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
asech (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
acsch (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
@@ -0,0 +1,80 @@
|
||||
#language english
|
||||
#version 0
|
||||
; #############################################################################
|
||||
; ## Help texts for built-in functions in amath
|
||||
; ## ------------------------------------------
|
||||
; ##
|
||||
; ## This file is published under Creative Common License. See:
|
||||
; ## http://creativecommons.org/licenses/by-sa/3.0/
|
||||
; ## Parts of the content came from wikipedia.org
|
||||
; #############################################################################
|
||||
abs (/40/)
|
||||
The absolute value (or modulus) |x| of a real number x is the#NEWLINE#non-negative value of x without regard to its sign.#NEWLINE##SYNTAXHIGHLIGHT#Example: abs(-237.25)#NORMALTEXT##NEWLINE#
|
||||
sgn (/40/)
|
||||
The sign function or signum function is used to extract the sign of a number.#NEWLINE#Thus sgn(x) is 1 when x is positive, and sgn(x) is -1 when x is negative.#NEWLINE##SYNTAXHIGHLIGHT#Example: sgn(-23.94)#NORMALTEXT##NEWLINE#
|
||||
round (/40/)
|
||||
Rounding a numerical value means replacing it by another value that is#NEWLINE#approximately equal but has a shorter, simpler, or more explicit#NEWLINE#representation. Amath rounds a number to the nearest integer.#NEWLINE#
|
||||
trunc (/10/)
|
||||
Truncation is limiting the number of digits right of the decimal point,#NEWLINE#by discarding the least significant ones. Amath truncates a number to#NEWLINE#the nearest integer.#NEWLINE##SYNTAXHIGHLIGHT#Example: trunc(-23.94#NEWLINE#
|
||||
floor (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
ceil (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
sqr (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
cbr (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
lb (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
ln (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
lg (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
sin (/10/)
|
||||
Sine is the trigonometric function that for an acute angle is the#NEWLINE#ratio between the leg opposite the angle when it is considered#NEWLINE#part of a right triangle and the hypotenuse.#NEWLINE#
|
||||
cos (/10/)
|
||||
Cosine is the trigonometric function that for an acute angle is the#NEWLINE#ratio between the leg adjacent to the angle when it is considered#NEWLINE#part of a right triangle and the hypotenuse#NEWLINE#
|
||||
tan (/10/)
|
||||
Tangent is one of the trigonometry functions. In a right triangle,#NEWLINE#the tangent of an angle is the opposite side over the adjacent side.#NEWLINE#
|
||||
cot (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
sec (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
csc (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
asin (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
acos (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
atan (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
acot (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
asec (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
acsc (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
sinh (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
cosh (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
tanh (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
coth (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
sech (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
csch (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
asinh (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
acosh (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
atanh (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
acoth (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
asech (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
acsch (/10/)
|
||||
No help is available for this function.#NEWLINE#
|
||||
@@ -0,0 +1,53 @@
|
||||
##stringtype C
|
||||
/*
|
||||
* Copyright (c) 2015 Carsten Larsen
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* Generated with FlexCat. For more information, see:
|
||||
* http://sourceforge.net/projects/flexcat/
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AMATH_LOCALIZE_IDENT_H
|
||||
#define AMATH_LOCALIZE_IDENT_H
|
||||
|
||||
/**
|
||||
* @file ident.h
|
||||
* @brief Help texts for built-in functions.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "clib.h"
|
||||
|
||||
struct identhelpdef {
|
||||
int id;
|
||||
const char *ident;
|
||||
const char *text;
|
||||
};
|
||||
|
||||
static const identhelpdef identtexts[] = {
|
||||
{ %d, "%i", %s },
|
||||
{ -1, EMPTYSTRING, EMPTYSTRING }
|
||||
};
|
||||
|
||||
#endif
|
||||
+156
@@ -0,0 +1,156 @@
|
||||
#language english
|
||||
#version 0
|
||||
;###################################################################################
|
||||
;## Copyright (c) 2015, Carsten Larsen
|
||||
;## All rights reserved.
|
||||
;##
|
||||
;## Redistribution and use in source and binary forms, with or without
|
||||
;## modification, are permitted provided that the following conditions are met:
|
||||
;##
|
||||
;## * Redistributions of source code must retain the above copyright notice, this
|
||||
;## list of conditions and the following disclaimer.
|
||||
;##
|
||||
;## * Redistributions in binary form must reproduce the above copyright notice,
|
||||
;## this list of conditions and the following disclaimer in the documentation
|
||||
;## and/or other materials provided with the distribution.
|
||||
;##
|
||||
;## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
;## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
;## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
;## DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
;## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
;## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
;## SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
;## CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
;## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
;## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
;###################################################################################
|
||||
;## Keywords and statement in amath
|
||||
;###################################################################################
|
||||
;######### ClearStatement
|
||||
clear (/8/8)
|
||||
symclear
|
||||
;######### FunctionDefinition statement
|
||||
def (/6/6)
|
||||
symdef
|
||||
;######### DeleteStatement and keyword
|
||||
delete (//)
|
||||
symdelete
|
||||
;######### Eulers Number keyword
|
||||
e (//)
|
||||
syme
|
||||
;######### Complex i keyword
|
||||
i (//)
|
||||
symi
|
||||
;######### pi keyword
|
||||
pi (//)
|
||||
sympi
|
||||
;######### ins variable keyword
|
||||
ins (//)
|
||||
symins
|
||||
;######### EvalStatement
|
||||
eval (//)
|
||||
symeval
|
||||
;######### DrawStatement
|
||||
draw (//)
|
||||
symdraw
|
||||
;######### PlotStatement
|
||||
plot (//)
|
||||
symplot
|
||||
;######### ExecuteStatement
|
||||
execute (//)
|
||||
symexecute
|
||||
;######### ExitStatement
|
||||
exit (//)
|
||||
symexit
|
||||
quit (//)
|
||||
symexit
|
||||
;######### Statements keyword
|
||||
statements (//)
|
||||
symstatement
|
||||
;######### Operators keyword
|
||||
operators (//)
|
||||
symoperator
|
||||
;######### Complex keyword
|
||||
complex (//)
|
||||
symcomplex
|
||||
;######### Function keyword
|
||||
funcs (//)
|
||||
symfunction
|
||||
functions (//)
|
||||
symfunction
|
||||
;######### Trigonometric keyword
|
||||
trigon (//)
|
||||
symtrigon
|
||||
trigonometric (//)
|
||||
symtrigon
|
||||
;######### Hyperbolic keyword
|
||||
hyper (//)
|
||||
symhyper
|
||||
hyperbolic (//)
|
||||
symhyper
|
||||
;######### HelpStatement
|
||||
help (//)
|
||||
symhelp
|
||||
;######### PromptStatement
|
||||
prompt (//)
|
||||
symprompt
|
||||
;######### VersionStatement
|
||||
version (//)
|
||||
symversion
|
||||
;######### MemoryStatement
|
||||
mem (//)
|
||||
symmem
|
||||
memory (//)
|
||||
symmem
|
||||
;######### PrefsStatement
|
||||
prefs (//)
|
||||
symprefs
|
||||
preferences (//)
|
||||
symprefs
|
||||
;######### ListStatement and keyword
|
||||
list (//)
|
||||
symlist
|
||||
;######### LoadStatement and keyword
|
||||
load (//)
|
||||
symload
|
||||
;######### SaveStatement and keyword
|
||||
save (//)
|
||||
symsave
|
||||
;######### ShowStatement and keyword
|
||||
show (//)
|
||||
symshow
|
||||
;######### ListVariablesStatement and keyword
|
||||
vars (//)
|
||||
symvariable
|
||||
variables (//)
|
||||
symvariable
|
||||
;######### DigitsStatement
|
||||
digits (//)
|
||||
symdigits
|
||||
;######### InputStatement
|
||||
input (//)
|
||||
syminput
|
||||
;######### OutputStatement
|
||||
output (//)
|
||||
symoutput
|
||||
;######### Binary keyword
|
||||
bin (//)
|
||||
symbin
|
||||
binary (//)
|
||||
symbin
|
||||
;######### Octal keyword
|
||||
oct (//)
|
||||
symoct
|
||||
octal (//)
|
||||
symoct
|
||||
;######### Decimal keyword
|
||||
dec (//)
|
||||
symdec
|
||||
decimal (//)
|
||||
symdec
|
||||
;######### Hexadecimal keyword
|
||||
hex (//)
|
||||
symhex
|
||||
hexadecimal (//)
|
||||
symhex
|
||||
@@ -0,0 +1,57 @@
|
||||
##stringtype none
|
||||
/*
|
||||
* Copyright (c) 2015 Carsten Larsen
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* Generated with FlexCat. For more information, see:
|
||||
* http://sourceforge.net/projects/flexcat/
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AMATH_LOCALIZE_KEYWORD_H
|
||||
#define AMATH_LOCALIZE_KEYWORD_H
|
||||
|
||||
/**
|
||||
* @file kword.h
|
||||
* @brief Keywords used by lexer.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "clib.h"
|
||||
#include "localize/lex.h"
|
||||
|
||||
/**
|
||||
* @brief Character representation of keyword tied with its symbol.
|
||||
*
|
||||
*/
|
||||
struct keyworddef {
|
||||
const char *name;
|
||||
Symbol symbol;
|
||||
};
|
||||
|
||||
static const keyworddef keywords[] = {
|
||||
{ "%i", %s },
|
||||
{ EMPTYSTRING, Symbol(0) }
|
||||
};
|
||||
|
||||
#endif
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
#language english
|
||||
#version 0
|
||||
; ###################################################################################
|
||||
; ## Static texts in amath
|
||||
; ## ---------------------
|
||||
; ##
|
||||
; ## Generate code with:
|
||||
; ## flexcat text.cd ../app/localize/text.h=text.sd
|
||||
; ##
|
||||
; ###################################################################################
|
||||
; ## Copyright (c) 2015, Carsten Larsen
|
||||
; ## All rights reserved.
|
||||
; ##
|
||||
; ## Redistribution and use in source and binary forms, with or without
|
||||
; ## modification, are permitted provided that the following conditions are met:
|
||||
; ##
|
||||
; ## * Redistributions of source code must retain the above copyright notice, this
|
||||
; ## list of conditions and the following disclaimer.
|
||||
; ##
|
||||
; ## * Redistributions in binary form must reproduce the above copyright notice,
|
||||
; ## this list of conditions and the following disclaimer in the documentation
|
||||
; ## and/or other materials provided with the distribution.
|
||||
; ##
|
||||
; ## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
; ## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
; ## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
; ## DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
; ## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
; ## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
; ## SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
; ## CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
; ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
; ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
; ###################################################################################
|
||||
INTROMSG (/4/)
|
||||
#NORMALTEXT##BOLD##STARTMSG##NEWLINE##NORMALTEXT##COLOR02##ITALICS#Type help to show info.#NEWLINE#
|
||||
TXTLISTDIRHEADER (/4/)
|
||||
Type Name#NEWLINE#-----------------------------------------------#NEWLINE#
|
||||
TXTLISTDIRTFILE (/4/)
|
||||
[file]
|
||||
TXTLISTDIRTDIR (/4/)
|
||||
[dir]
|
||||
TXTLISTDIRTUNKNOWN (/4/)
|
||||
[unknown]
|
||||
TXTMEMBLOCKS (/4/)
|
||||
Allocated blocks:#SPACE#
|
||||
TXTMEMSIZE (/4/)
|
||||
Memory usage: #SPACE#
|
||||
TXTMEMMAXSIZE (/4/)
|
||||
Maximum usage: #SPACE#
|
||||
HELPNOHELP (/4/)
|
||||
No help is available for this topic.#NEWLINE#
|
||||
HELPSYNTAX (/4/)
|
||||
Syntax error:#SPACE#
|
||||
HELPUERROR (/4/)
|
||||
Unexpected error:#SPACE#
|
||||
HELPVARNDEF (/4/)
|
||||
Variable is not defined:#SPACE#
|
||||
HELPFUNNDEF (/4/)
|
||||
Function is not defined:#SPACE#
|
||||
HELPFUNRDEF (/4/)
|
||||
Function cannot be redefined:#SPACE#
|
||||
HELPPNUMERA (/4/)
|
||||
Base value must be between 2 and 32:#SPACE#
|
||||
HELPPDIGITS (/4/)
|
||||
Number of digist must be between 0 and 15:#SPACE#
|
||||
HELPINPUSHOW (/4/)
|
||||
Numeral input system is#SPACE#
|
||||
HELPOUTPSHOW (/4/)
|
||||
Numeral output system is#SPACE#
|
||||
HELPINPUSETT (/4/)
|
||||
Input changed to#SPACE#
|
||||
HELPOUTPSETT (/4/)
|
||||
Output changed to#SPACE#
|
||||
HELPDIGISETT (/4/)
|
||||
Number of digits changed to#SPACE#
|
||||
HELPDIGISHOW (/4/)
|
||||
Number of digits shown are#SPACE#
|
||||
HELPVARSNDEF (/4/)
|
||||
No variables are defined.#NEWLINE#
|
||||
HELPFUNCNDEF (/4/)
|
||||
No functions are defined.#NEWLINE#
|
||||
HELPLOADSUCC (/4/)
|
||||
Variable and functions loaded from file.#NEWLINE#
|
||||
HELPSAVESUCC (/4/)
|
||||
Variable and functions saved to file.#NEWLINE#
|
||||
HELPSAVEFAIL (/4/)
|
||||
Cannot save to file.#NEWLINE#
|
||||
HELPSAVENOTH (/4/)
|
||||
Nothing to save.#NEWLINE#
|
||||
HELPPREFLOAD (/4/)
|
||||
Preferences loaded.#NEWLINE#
|
||||
HELPPREFNOLO (/4/)
|
||||
Preferences could not be loaded.#NEWLINE#
|
||||
HELPPREFSAVE (/4/)
|
||||
Preferences saved to disk.#NEWLINE#
|
||||
HELPPREFNOSA (/4/)
|
||||
Preferences could not be saved.#NEWLINE#
|
||||
MSGNODIR (/4/)
|
||||
Could not open directory:#SPACE#
|
||||
MSGNOFILE (/4/)
|
||||
Cannot open file.#NEWLINE#
|
||||
@@ -0,0 +1,54 @@
|
||||
##stringtype C
|
||||
/*
|
||||
* Copyright (c) 2015 Carsten Larsen
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* Generated with FlexCat. For more information, see:
|
||||
* http://sourceforge.net/projects/flexcat/
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AMATH_LOCALIZE_TEXT_H
|
||||
#define AMATH_LOCALIZE_TEXT_H
|
||||
|
||||
/**
|
||||
* @file text.h
|
||||
* @brief Static texts in amath.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "clib.h"
|
||||
|
||||
#define %i Program->Language->GetText(%d)
|
||||
|
||||
struct textdef {
|
||||
int id;
|
||||
const char *text;
|
||||
};
|
||||
|
||||
static const textdef textdefs[] = {
|
||||
{ %d, %s }, /* %i */
|
||||
{ -1, EMPTYSTRING }
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user