/* libcalculator.vapi generated by valac 0.40.6, do not modify. */
namespace MPFR {
[CCode (cheader_filename = "mpfr.h")]
[Compact]
public class RealRef {
public MPFR.Real val;
public RealRef ();
}
}
[CCode (cheader_filename = "libcalculator.h")]
public enum ErrorCode {
NONE,
INVALID,
OVERFLOW,
UNKNOWN_VARIABLE,
UNKNOWN_FUNCTION,
UNKNOWN_CONVERSION,
MP
}
[CCode (cheader_filename = "libcalculator.h")]
public enum LexerTokenType {
UNKNOWN,
PL_DECIMAL,
PL_DIGIT,
PL_HEX,
PL_SUPER_DIGIT,
PL_SUPER_MINUS,
PL_SUB_DIGIT,
PL_FRACTION,
PL_DEGREE,
PL_MINUTE,
PL_SECOND,
PL_LETTER,
PL_EOS,
PL_SKIP,
ADD,
SUBTRACT,
MULTIPLY,
DIVIDE,
MOD,
L_FLOOR,
R_FLOOR,
L_CEILING,
R_CEILING,
ROOT,
ROOT_3,
ROOT_4,
NOT,
AND,
OR,
XOR,
IN,
NUMBER,
SUP_NUMBER,
NSUP_NUMBER,
SUB_NUMBER,
FUNCTION,
UNIT,
VARIABLE,
ASSIGN,
L_R_BRACKET,
R_R_BRACKET,
L_S_BRACKET,
R_S_BRACKET,
L_C_BRACKET,
R_C_BRACKET,
ABS,
POWER,
FACTORIAL,
PERCENTAGE,
ARGUMENT_SEPARATOR
}
[CCode (cheader_filename = "libcalculator.h")]
public enum Associativity {
LEFT,
RIGHT
}
[CCode (cheader_filename = "libcalculator.h")]
public enum FinancialDialog {
CTRM_DIALOG,
DDB_DIALOG,
FV_DIALOG,
GPM_DIALOG,
PMT_DIALOG,
PV_DIALOG,
RATE_DIALOG,
SLN_DIALOG,
SYD_DIALOG,
TERM_DIALOG
}
[CCode (cheader_filename = "libcalculator.h")]
public enum NumberMode {
NORMAL,
SUPERSCRIPT,
SUBSCRIPT
}
[CCode (cheader_filename = "libcalculator.h")]
public enum AngleUnit {
RADIANS,
DEGREES,
GRADIANS
}
[CCode (cheader_filename = "libcalculator.h")]
public enum DisplayFormat {
AUTOMATIC,
FIXED,
SCIENTIFIC,
ENGINEERING
}
[CCode (cheader_filename = "libcalculator.h")]
public class CurrencyManager : GLib.Object {
public CurrencyManager ();
public GLib.List<Currency> get_currencies ();
public Currency? get_currency (string name);
public static CurrencyManager get_default ();
public Number? get_value (string currency);
public signal void updated ();
}
[CCode (cheader_filename = "libcalculator.h")]
public class Currency : GLib.Object {
public Currency (string name, string display_name, string symbol);
public Number? get_value ();
public void set_value (Number value);
public string display_name { owned get; }
public string name { owned get; }
public string source { owned get; owned set; }
public string symbol { owned get; }
}
[CCode (cheader_filename = "libcalculator.h")]
public class Equation : GLib.Object {
public AngleUnit angle_units;
public int @base;
public int wordlen;
public Equation (string expression);
public virtual Number? convert (Number x, string x_units, string z_units);
public virtual bool function_is_defined (string name);
public virtual Number? get_variable (string name);
public new Number? parse (out uint representation_base = null, out ErrorCode error_code = null, out string? error_token = null, out uint? error_start = null, out uint? error_end = null);
public virtual void set_variable (string name, Number x);
public virtual bool unit_is_defined (string name);
public virtual bool variable_is_defined (string name);
}
[CCode (cheader_filename = "libcalculator.h")]
public class PreLexer : GLib.Object {
public int index;
public int mark_index;
public string stream;
public PreLexer (string input);
public string get_marked_substring ();
public LexerTokenType get_next_token ();
public void roll_back ();
public void set_marker ();
}
[CCode (cheader_filename = "libcalculator.h")]
public class LexerToken : GLib.Object {
public uint end_index;
public uint start_index;
public string text;
public LexerTokenType type;
public LexerToken ();
}
[CCode (cheader_filename = "libcalculator.h")]
public class Lexer : GLib.Object {
public GLib.List<LexerToken> tokens;
public Lexer (string input, Parser parser, int number_base = 10);
public LexerToken get_next_token ();
public void roll_back ();
public void scan ();
}
[CCode (cheader_filename = "libcalculator.h")]
public class ParseNode : GLib.Object {
public Associativity associativity;
public ParseNode? left;
public ParseNode? parent;
public Parser parser;
public uint precedence;
public ParseNode? right;
public GLib.List<LexerToken> token_list;
public string? value;
public ParseNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity, string? value = null);
public ParseNode.WithList (Parser parser, GLib.List<LexerToken> token_list, uint precedence, Associativity associativity, string? value = null);
public LexerToken first_token ();
public LexerToken last_token ();
public virtual Number? solve ();
public LexerToken token ();
}
[CCode (cheader_filename = "libcalculator.h")]
public abstract class RNode : ParseNode {
public RNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve ();
public abstract Number? solve_r (Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public abstract class LRNode : ParseNode {
public LRNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve ();
public abstract Number solve_lr (Number left, Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class ConstantNode : ParseNode {
public ConstantNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve ();
}
[CCode (cheader_filename = "libcalculator.h")]
public class AssignNode : RNode {
public AssignNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve_r (Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class AssignFunctionNode : ParseNode {
public AssignFunctionNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve ();
}
[CCode (cheader_filename = "libcalculator.h")]
public class NameNode : ParseNode {
public NameNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity, string? text = null);
}
[CCode (cheader_filename = "libcalculator.h")]
public class VariableNode : ParseNode {
public VariableNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve ();
}
[CCode (cheader_filename = "libcalculator.h")]
public class VariableWithPowerNode : ParseNode {
public VariableWithPowerNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity, string text);
public override Number? solve ();
}
[CCode (cheader_filename = "libcalculator.h")]
public class FunctionNameNode : NameNode {
public FunctionNameNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity, string name);
}
[CCode (cheader_filename = "libcalculator.h")]
public class FunctionArgumentsNode : NameNode {
public FunctionArgumentsNode (Parser parser, GLib.List<LexerToken> token_list, uint precedence, Associativity associativity, string arguments);
}
[CCode (cheader_filename = "libcalculator.h")]
public class FunctionDescriptionNode : NameNode {
public FunctionDescriptionNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity, string description);
}
[CCode (cheader_filename = "libcalculator.h")]
public class FunctionNode : ParseNode {
public FunctionNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity, string? text);
public override Number? solve ();
}
[CCode (cheader_filename = "libcalculator.h")]
public class UnaryMinusNode : RNode {
public UnaryMinusNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve_r (Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class AbsoluteValueNode : RNode {
public AbsoluteValueNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve_r (Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class FloorNode : RNode {
public FloorNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve_r (Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class CeilingNode : RNode {
public CeilingNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve_r (Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class FractionalComponentNode : RNode {
public FractionalComponentNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve_r (Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class RoundNode : RNode {
public RoundNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve_r (Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class PercentNode : RNode {
public PercentNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve_r (Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class FactorialNode : RNode {
public FactorialNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve_r (Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class AddNode : LRNode {
public bool do_percentage;
public AddNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number solve_lr (Number l, Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class SubtractNode : LRNode {
public bool do_percentage;
public SubtractNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number solve_lr (Number l, Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class MultiplyNode : LRNode {
public MultiplyNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number solve_lr (Number l, Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class DivideNode : LRNode {
public DivideNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number solve_lr (Number l, Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class ModulusDivideNode : LRNode {
public ModulusDivideNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve ();
public override Number solve_lr (Number l, Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class RootNode : RNode {
public RootNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity, int n);
public RootNode.WithToken (Parser parser, LexerToken? token, uint precedence, Associativity associativity, LexerToken token_n);
public override Number? solve_r (Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class XPowYNode : LRNode {
public XPowYNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number solve_lr (Number l, Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class XPowYIntegerNode : ParseNode {
public XPowYIntegerNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve ();
}
[CCode (cheader_filename = "libcalculator.h")]
public class NotNode : RNode {
public NotNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve_r (Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class AndNode : LRNode {
public AndNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number solve_lr (Number l, Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class OrNode : LRNode {
public OrNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number solve_lr (Number l, Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class XorNode : LRNode {
public XorNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number solve_lr (Number l, Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class ConvertNode : LRNode {
public ConvertNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number solve_lr (Number l, Number r);
}
[CCode (cheader_filename = "libcalculator.h")]
public class ConvertBaseNode : ParseNode {
public ConvertBaseNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity, string? value = null);
public override Number? solve ();
}
[CCode (cheader_filename = "libcalculator.h")]
public class ConvertNumberNode : ParseNode {
public ConvertNumberNode (Parser parser, LexerToken? token, uint precedence, Associativity associativity);
public override Number? solve ();
}
[CCode (cheader_filename = "libcalculator.h")]
public class Parser {
public AngleUnit angle_units;
public int number_base;
public int wordlen;
public Parser (string input, int number_base, int wordlen, AngleUnit angle_units);
public virtual Number? convert (Number x, string x_units, string z_units);
public bool create_parse_tree (out uint representation_base, out ErrorCode error_code, out string? error_token, out uint error_start, out uint error_end);
public virtual bool function_is_defined (string name);
public virtual Number? get_variable (string name);
public Number? parse (out uint representation_base, out ErrorCode error_code, out string? error_token, out uint error_start, out uint error_end);
public void set_error (ErrorCode errorno, string? token = null, uint token_start = 0, uint token_end = 0);
public void set_representation_base (uint new_base);
public virtual void set_variable (string name, Number x);
public virtual bool unit_is_defined (string name);
public virtual bool variable_is_defined (string name);
}
[CCode (cheader_filename = "libcalculator.h")]
public class FunctionManager : GLib.Object {
public FunctionManager ();
public bool add_function_with_properties (string name, string arguments, string description, Parser? root_parser = null);
public void @delete (string name);
public Number? evaluate_function (string name, Number[] arguments, Parser parser);
public MathFunction[] functions_eligible_for_autocompletion_for_text (string display_text);
public new MathFunction? @get (string name);
public static FunctionManager get_default_function_manager ();
public string[] get_names ();
public bool is_function_defined (string name);
public signal void function_added (MathFunction function);
public signal void function_deleted (MathFunction function);
public signal void function_edited (MathFunction new_function);
}
[CCode (cheader_filename = "libcalculator.h")]
public class MathEquation : Gtk.SourceBuffer {
public MathEquation ();
public new void backspace ();
public void clear ();
public void copy ();
public void delete_next ();
protected override void delete_range (Gtk.TextIter start, Gtk.TextIter end);
public void display_selected (string selected);
public void factorize ();
public unichar get_digit_text (uint digit);
public new void insert (string text);
public void insert_digit (uint digit);
public void insert_exponent ();
public void insert_number (Number x);
public void insert_numeric_point ();
public void insert_selected (string answer);
public new void insert_square ();
public void insert_subtract ();
protected override void insert_text (ref Gtk.TextIter location, string text, int len);
public void paste ();
public void recall (string name);
public override void redo ();
public void remove_trailing_spaces ();
public new void @set (string text);
public void set_number (Number x, uint representation_base = 0);
public void shift (int count);
public void solve ();
public void store (string name);
public void toggle_bit (uint bit);
public override void undo ();
public int accuracy { get; set; }
public AngleUnit angle_units { get; set; }
public Number answer { get; }
public string display { owned get; }
public string equation { owned get; }
public uint error_token_end { get; }
public uint error_token_start { get; }
public bool in_solve { get; }
public bool is_empty { get; }
public bool is_result { get; }
public Number? number { owned get; }
public int number_base { get; set; }
public DisplayFormat number_format { get; set; }
public NumberMode number_mode { get; set; }
public Serializer serializer { get; }
public bool show_thousands_separators { get; set; }
public bool show_trailing_zeroes { get; set; }
public string source_currency { owned get; set; }
public string source_units { owned get; set; }
public string status { owned get; set; }
public string target_currency { owned get; set; }
public string target_units { owned get; set; }
public MathVariables variables { get; }
public int word_size { get; set; }
public signal void history_signal (string answer, Number number, int number_base, uint representation_base);
}
[CCode (cheader_filename = "libcalculator.h")]
public class MathFunction : GLib.Object {
public MathFunction (string function_name, string[] arguments, string? expression, string? description);
public virtual Number? evaluate (Number[] args, Parser? root_parser = null);
public virtual bool is_custom_function ();
public bool validate (Parser? root_parser = null);
public string[] arguments { get; }
public string? description { get; }
public string? expression { get; }
public string name { get; }
}
[CCode (cheader_filename = "libcalculator.h")]
public class ExpressionParser : Parser {
public ExpressionParser (string expression, Parser? root_parser = null);
protected override bool function_is_defined (string name);
protected override Number? get_variable (string name);
protected override bool variable_is_defined (string name);
}
[CCode (cheader_filename = "libcalculator.h")]
public class BuiltInMathFunction : MathFunction {
public BuiltInMathFunction (string function_name, string? description);
public override Number? evaluate (Number[] args, Parser? root_parser = null);
public override bool is_custom_function ();
}
[CCode (cheader_filename = "libcalculator.h")]
public class MathVariables : GLib.Object {
public MathVariables ();
public void @delete (string name);
public new Number? @get (string name);
public string[] get_names ();
public new void @set (string name, Number value);
public string[] variables_eligible_for_autocompletion (string text);
public signal void variable_added (string name, Number value);
public signal void variable_deleted (string name);
public signal void variable_edited (string name, Number new_value);
}
[CCode (cheader_filename = "libcalculator.h")]
public class Number : GLib.Object {
public Number ();
public Number abs ();
public Number acos (AngleUnit unit = AngleUnit.RADIANS);
public Number acosh ();
public Number add (Number y);
public Number and (Number y);
public Number arg (AngleUnit unit = AngleUnit.RADIANS);
public Number asin (AngleUnit unit = AngleUnit.RADIANS);
public Number asinh ();
public Number atan (AngleUnit unit = AngleUnit.RADIANS);
public Number atanh ();
public Number ceiling ();
public static void check_flags ();
public int compare (Number y);
public Number.complex (Number r, Number i);
public Number conjugate ();
public Number cos (AngleUnit unit = AngleUnit.RADIANS);
public Number cosh ();
public Number divide (Number y);
public Number divide_integer (int64 y);
public Number.double (global::double real, global::double imag = 0);
public Number epowy ();
public bool equals (Number y);
public Number.eulers ();
public Number factorial ();
public GLib.List<Number?> factorize ();
public GLib.List<Number?> factorize_uint64 (uint64 n);
public Number floor ();
public Number.fraction (int64 numerator, int64 denominator);
public Number fractional_component ();
public Number fractional_part ();
public Number.i ();
public Number imaginary_component ();
public Number.integer (int64 real, int64 imag = 0);
public Number integer_component ();
public Number invert_sign ();
public bool is_complex ();
public bool is_integer ();
public bool is_natural ();
public bool is_negative ();
public bool is_positive_integer ();
public bool is_zero ();
public Number ln ();
public Number logarithm (int64 n);
public Number mask (Number x, int wordlen);
public Number modular_exponentiation (Number exp, Number mod);
public Number modulus_divide (Number y);
public Number.mpreal (MPFR.Real real, MPFR.Real? imag = null);
public Number multiply (Number y);
public Number multiply_integer (int64 y);
public Number not (int wordlen);
public Number ones_complement (int wordlen);
public Number or (Number y);
public Number.pi ();
public Number.polar (Number r, Number theta, AngleUnit unit = AngleUnit.RADIANS);
public Number.random ();
public Number real_component ();
public Number reciprocal ();
public Number root (int64 n);
public Number round ();
public Number sgn ();
public Number shift (int count);
public Number sin (AngleUnit unit = AngleUnit.RADIANS);
public Number sinh ();
public Number sqrt ();
public Number subtract (Number y);
public Number tan (AngleUnit unit = AngleUnit.RADIANS);
public Number tanh ();
public global::double to_double ();
public float to_float ();
public int64 to_integer ();
public uint64 to_unsigned_integer ();
public Number twos_complement (int wordlen);
public Number.unsigned_integer (uint64 real, uint64 imag = 0);
public Number xor (Number y);
public Number xpowy (Number y);
public Number xpowy_integer (int64 n);
public static string? error { get; set; }
public static MPFR.Precision precision { get; set; }
}
[CCode (cheader_filename = "libcalculator.h")]
public class Serializer : GLib.Object {
public Serializer (DisplayFormat format, int number_base, int trailing_digits);
public Number? from_string (string str);
public int get_base ();
public int get_leading_digits ();
public DisplayFormat get_number_format ();
public unichar get_radix ();
public uint get_representation_base ();
public bool get_show_thousands_separators ();
public bool get_show_trailing_zeroes ();
public unichar get_thousands_separator ();
public int get_thousands_separator_count ();
public int get_trailing_digits ();
public void set_base (int number_base);
public void set_leading_digits (int leading_digits);
public void set_number_format (DisplayFormat format);
public void set_radix (unichar radix);
public void set_representation_base (uint representation_base);
public void set_show_thousands_separators (bool visible);
public void set_show_trailing_zeroes (bool visible);
public void set_thousands_separator (unichar separator);
public void set_thousands_separator_count (int count);
public void set_trailing_digits (int trailing_digits);
public string to_string (Number x);
public string? error { get; set; }
}
[CCode (cheader_filename = "libcalculator.h")]
public class UnitManager : GLib.Object {
public UnitManager ();
public UnitCategory add_category (string name, string display_name);
public Number? convert_by_symbol (Number x, string x_symbol, string z_symbol);
public GLib.List<UnitCategory> get_categories ();
public UnitCategory? get_category (string category);
public static UnitManager get_default ();
public Unit? get_unit_by_name (string name);
public Unit? get_unit_by_symbol (string symbol);
public bool unit_is_defined (string name);
}
[CCode (cheader_filename = "libcalculator.h")]
public class UnitCategory : GLib.Object {
public UnitCategory (string name, string display_name);
public void add_unit (Unit unit);
public Number? convert (Number x, Unit x_units, Unit z_units);
public Unit? get_unit_by_name (string name, bool case_sensitive = true);
public Unit? get_unit_by_symbol (string symbol, bool case_sensitive = true);
public unowned GLib.List<Unit> get_units ();
public string display_name { owned get; }
public string name { owned get; }
}
[CCode (cheader_filename = "libcalculator.h")]
public class Unit : GLib.Object {
public Unit (string name, string display_name, string format, string? from_function, string? to_function, string symbols);
public Number? convert_from (Number x);
public Number? convert_to (Number x);
public string format (Number x);
public unowned GLib.List<string> get_symbols ();
public bool matches_symbol (string symbol, bool case_sensitive = true);
public string display_name { owned get; }
public string name { owned get; }
}
[CCode (cheader_filename = "libcalculator.h")]
public static int sub_atoi (string data);
[CCode (cheader_filename = "libcalculator.h")]
public static int super_atoi (string data);
[CCode (cheader_filename = "libcalculator.h")]
public static string mp_error_code_to_string (ErrorCode error_code);
[CCode (cheader_filename = "libcalculator.h")]
public static void do_finc_expression (MathEquation equation, FinancialDialog function, Number arg1, Number arg2, Number arg3, Number arg4);
[CCode (cheader_filename = "libcalculator.h")]
public static Number? mp_set_from_string (string str, int default_base = 10);
[CCode (cheader_filename = "libcalculator.h")]
public static bool mp_is_overflow (Number x, int wordlen);