# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-06-01 05:42+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "bc" msgstr "" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "2006-06-11" msgstr "" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "GNU Project" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "bc - An arbitrary precision calculator language" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SYNTAX" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B [ B<-hlwsqv> ] [long-options] [ I< file ...> ]" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B is a language that supports arbitrary precision numbers with " "interactive execution of statements. There are some similarities in the " "syntax to the C programming language. A standard math library is available " "by command line option. If requested, the math library is defined before " "processing any files. B starts by processing code from all the files " "listed on the command line in the order listed. After all files have been " "processed, B reads from the standard input. All code is executed as it " "is read. (If a file contains a command to halt the processor, B will " "never read from the standard input.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This version of B contains several extensions beyond traditional B " "implementations and the POSIX draft standard. Command line options can " "cause these extensions to print a warning or to be rejected. This document " "describes the language accepted by this processor. Extensions will be " "identified as such." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "OPTIONS" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "-h, --help" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Print the usage and exit." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "-i, --interactive" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Force interactive mode." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "-l, --mathlib" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Define the standard math library." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "-w, --warn" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Give warnings for extensions to POSIX B." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "-s, --standard" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Process exactly the POSIX B language." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "-q, --quiet" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Do not print the normal GNU bc welcome." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "-v, --version" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Print the version number and copyright and quit." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NUMBERS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The most basic element in B is the number. Numbers are arbitrary " "precision numbers. This precision is both in the integer part and the " "fractional part. All numbers are represented internally in decimal and all " "computation is done in decimal. (This version truncates results from divide " "and multiply operations.) There are two attributes of numbers, the length " "and the scale. The length is the total number of decimal digits used by " "B to represent a number and the scale is the total number of decimal " "digits after the decimal point. For example:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" " .000001 has a length of 6 and scale of 6.\n" " 1935.000 has a length of 7 and a scale of 3.\n" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "VARIABLES" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "Numbers are stored in two types of variables, simple variables and arrays. " "Both simple variables and array variables are named. Names begin with a " "letter followed by any number of letters, digits and underscores. All " "letters must be lower case. (Full alpha-numeric names are an extension. In " "POSIX B all names are a single lower case letter.) The type of variable " "is clear by the context because all array variable names will be followed by " "brackets ([])." msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "There are four special variables, B and B. " "B defines how some operations use digits after the decimal point. " "The default value of B is 0. B and B define the " "conversion base for input and output numbers. The default for both input " "and output is base 10. B (an extension) is a variable that has the " "value of the last printed number. These will be discussed in further detail " "where appropriate. All of these variables may have values assigned to them " "as well as used in expressions." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "COMMENTS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Comments in B start with the characters B and end with the " "characters B<*/>. Comments may start anywhere and appear as a single space " "in the input. (This causes comments to delimit other input items. For " "example, a comment can not be found in the middle of a variable name.) " "Comments include any newlines (end of line) between the start and the end of " "the comment." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "To support the use of scripts for B, a single line comment has been " "added as an extension. A single line comment starts at a B<#> character and " "continues to the next end of the line. The end of line character is not " "part of the comment and is processed normally." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXPRESSIONS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The numbers are manipulated by expressions and statements. Since the " "language was designed to be interactive, statements and expressions are " "executed as soon as possible. There is no \"main\" program. Instead, code " "is executed as it is encountered. (Functions, discussed in detail later, " "are defined when encountered.)" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "A simple expression is just a constant. B converts constants into " "internal decimal numbers using the current input base, specified by the " "variable B. (There is an exception in functions.) The legal values " "of B are 2 through 36. (Bases greater than 16 are an extension.) " "Assigning a value outside this range to B will result in a value of 2 " "or 36. Input numbers may contain the characters 0-9 and A-Z. (Note: They " "must be capitals. Lower case letters are variable names.) Single digit " "numbers always have the value of the digit regardless of the value of " "B. (i.e. A = 10.) For multi-digit numbers, B changes all input " "digits greater or equal to ibase to the value of B-1. This makes the " "number B always be the largest 3 digit number of the input base." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Full expressions are similar to many other high level languages. Since " "there is only one kind of number, there are no rules for mixing types. " "Instead, there are rules on the scale of expressions. Every expression has " "a scale. This is derived from the scale of original numbers, the operation " "performed and in many cases, the value of the variable B. Legal " "values of the variable B are 0 to the maximum number representable by " "a C integer." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In the following descriptions of legal expressions, \"expr\" refers to a " "complete expression and \"var\" refers to a simple or an array variable. A " "simple variable is just a" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "I" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "and an array variable is specified as" msgstr "" #. #-#-#-#-# archlinux: bc.1.pot (PACKAGE VERSION) #-#-#-#-# #. type: Plain text #. #-#-#-#-# debian-bookworm: bc.1.pot (PACKAGE VERSION) #-#-#-#-# #. \fIname\fR[\fIexpr\fR] #. type: Plain text #. #-#-#-#-# debian-unstable: bc.1.pot (PACKAGE VERSION) #-#-#-#-# #. \fIname\fR[\fIexpr\fR] #. type: Plain text #. #-#-#-#-# fedora-40: bc.1.pot (PACKAGE VERSION) #-#-#-#-# #. type: Plain text #. #-#-#-#-# fedora-rawhide: bc.1.pot (PACKAGE VERSION) #-#-#-#-# #. type: Plain text #. #-#-#-#-# mageia-cauldron: bc.1.pot (PACKAGE VERSION) #-#-#-#-# #. type: Plain text #. #-#-#-#-# opensuse-leap-15-6: bc.1.pot (PACKAGE VERSION) #-#-#-#-# #. type: Plain text #. #-#-#-#-# opensuse-tumbleweed: bc.1.pot (PACKAGE VERSION) #-#-#-#-# #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "I[I]" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Unless specifically mentioned the scale of the result is the maximum scale " "of the expressions involved." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "- expr" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The result is the negation of the expression." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "++ var" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The variable is incremented by one and the new value is the result of the " "expression." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "-- var" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The variable is decremented by one and the new value is the result of the " "expression." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "var ++" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" " The result of the expression is the value of\n" "the variable and then the variable is incremented by one.\n" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "var --" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The result of the expression is the value of the variable and then the " "variable is decremented by one." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expr + expr" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The result of the expression is the sum of the two expressions." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expr - expr" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The result of the expression is the difference of the two expressions." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expr * expr" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "The result of the expression is the product of the two expressions." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expr / expr" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The result of the expression is the quotient of the two expressions. The " "scale of the result is the value of the variable B." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expr % expr" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The result of the expression is the \"remainder\" and it is computed in the " "following way. To compute a%b, first a/b is computed to B digits. " "That result is used to compute a-(a/b)*b to the scale of the maximum of " "B+scale(b) and scale(a). If B is set to zero and both " "expressions are integers this expression is the integer remainder function." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expr ^ expr" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "The result of the expression is the value of the first raised to the second. " "The second expression must be an integer. (If the second expression is not " "an integer, a warning is generated and the expression is truncated to get an " "integer value.) The scale of the result is B if the exponent is " "negative. If the exponent is positive the scale of the result is the " "minimum of the scale of the first expression times the value of the exponent " "and the maximum of B and the scale of the first expression. (e.g. " "scale(a^b) = min(scale(a)*b, max( B scale(a))).) It should be " "noted that expr^0 will always return the value of 1." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "( expr )" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This alters the standard precedence to force the evaluation of the " "expression." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "var = expr" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The variable is assigned the value of the expression." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "var EopE= expr" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is equivalent to \"var = var EopE expr\" with the exception " "that the \"var\" part is evaluated only once. This can make a difference if " "\"var\" is an array." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Relational expressions are a special kind of expression that always evaluate " "to 0 or 1, 0 if the relation is false and 1 if the relation is true. These " "may appear in any legal expression. (POSIX bc requires that relational " "expressions are used only in if, while, and for statements and that only one " "relational test may be done in them.) The relational operators are" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expr1 E expr2" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The result is 1 if expr1 is strictly less than expr2." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expr1 E= expr2" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The result is 1 if expr1 is less than or equal to expr2." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expr1 E expr2" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The result is 1 if expr1 is strictly greater than expr2." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expr1 E= expr2" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The result is 1 if expr1 is greater than or equal to expr2." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expr1 == expr2" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The result is 1 if expr1 is equal to expr2." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expr1 != expr2" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The result is 1 if expr1 is not equal to expr2." msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "Boolean operations are also legal. (POSIX B does NOT have boolean " "operations). The result of all boolean operations are 0 and 1 (for false and " "true) as in relational expressions. The boolean operators are:" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "!expr" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The result is 1 if expr is 0." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expr && expr" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The result is 1 if both expressions are non-zero." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expr || expr" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The result is 1 if either expression is non-zero." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The expression precedence is as follows: (lowest to highest)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "|| operator, left associative\n" "&& operator, left associative\n" "! operator, nonassociative\n" "Relational operators, left associative\n" "Assignment operator, right associative\n" "+ and - operators, left associative\n" "*, / and % operators, left associative\n" "^ operator, right associative\n" "unary - operator, nonassociative\n" "++ and -- operators, nonassociative\n" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "This precedence was chosen so that POSIX compliant B programs will run " "correctly. This will cause the use of the relational and logical operators " "to have some unusual behavior when used with assignment expressions. " "Consider the expression:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "a = 3 E 5" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Most C programmers would assume this would assign the result of \"3 E " "5\" (the value 1) to the variable \"a\". What this does in B is assign " "the value 3 to the variable \"a\" and then compare 3 to 5. It is best to " "use parenthesis when using relational and logical operators with the " "assignment operators." msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "There are a few more special expressions that are provided in B. These " "have to do with user defined functions and standard functions. They all " "appear as \"IB<(>IB<)>\". See the section on functions " "for user defined functions. The standard functions are:" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "length ( expression )" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The value of the length function is the number of significant digits in the " "expression." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "read ( )" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The read function (an extension) will read a number from the standard input, " "regardless of where the function occurs. Beware, this can cause problems " "with the mixing of data and program in the standard input. The best use for " "this function is in a previously written program that needs input from the " "user, but never allows program code to be input from the user. The value of " "the read function is the number read from the standard input using the " "current value of the variable B for the conversion base." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "scale ( expression )" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The value of the scale function is the number of digits after the decimal " "point in the expression." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "sqrt ( expression )" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The value of the sqrt function is the square root of the expression. If the " "expression is negative, a run time error is generated." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "STATEMENTS" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "Statements (as in most algebraic languages) provide the sequencing of " "expression evaluation. In B statements are executed \"as soon as " "possible.\" Execution happens when a newline in encountered and there is one " "or more complete statements. Due to this immediate execution, newlines are " "very important in B. In fact, both a semicolon and a newline are used as " "statement separators. An improperly placed newline will cause a syntax " "error. Because newlines are statement separators, it is possible to hide a " "newline by using the backslash character. The sequence \"\\eEnlE\", " "where EnlE is the newline appears to B as whitespace instead of " "a newline. A statement list is a series of statements separated by " "semicolons and newlines. The following is a list of B statements and " "what they do: (Things enclosed in brackets ([]) are optional parts of the " "statement.)" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "expression" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "This statement does one of two things. If the expression starts with " "\"EvariableE EassignmentE ...\", it is considered to be an " "assignment statement. If the expression is not an assignment statement, the " "expression is evaluated and printed to the output. After the number is " "printed, a newline is printed. For example, \"a=1\" is an assignment " "statement and \"(a=1)\" is an expression that has an embedded assignment. " "All numbers that are printed are printed in the base specified by the " "variable B. The legal values for B< obase> are 2 through " "BC_BASE_MAX. (See the section LIMITS.) For bases 2 through 16, the usual " "method of writing numbers is used. For bases greater than 16, B uses a " "multi-character digit method of printing the numbers where each higher base " "digit is printed as a base 10 number. The multi-character digits are " "separated by spaces. Each digit contains the number of characters required " "to represent the base ten value of \"obase-1\". Since numbers are of " "arbitrary precision, some numbers may not be printable on a single output " "line. These long numbers will be split across lines using the \"\\e\" as " "the last character on a line. The maximum number of characters printed per " "line is 70. Due to the interactive nature of B, printing a number " "causes the side effect of assigning the printed value to the special " "variable B. This allows the user to recover the last value printed " "without having to retype the expression that printed the number. Assigning " "to B is legal and will overwrite the last printed value with the " "assigned value. The newly assigned value will remain until the next number " "is printed or another value is assigned to B. (Some installations may " "allow the use of a single period (.) which is not part of a number as a " "short hand notation for for B.)" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "string" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The string is printed to the output. Strings start with a double quote " "character and contain all characters until the next double quote character. " "All characters are take literally, including any newline. No newline " "character is printed after the string." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B list" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "The print statement (an extension) provides another method of output. The " "\"list\" is a list of strings and expressions separated by commas. Each " "string or expression is printed in the order of the list. No terminating " "newline is printed. Expressions are evaluated and their value is printed " "and assigned to the variable B. Strings in the print statement are " "printed to the output and may contain special characters. Special " "characters start with the backslash character (\\e). The special characters " "recognized by B are \"a\" (alert or bell), \"b\" (backspace), \"f\" " "(form feed), \"n\" (newline), \"r\" (carriage return), \"q\" (double quote), " "\"t\" (tab), and \"\\e\" (backslash). Any other character following the " "backslash will be ignored." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "{ statement_list }" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is the compound statement. It allows multiple statements to be grouped " "together for execution." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B ( expression ) statement1 [B statement2]" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The if statement evaluates the expression and executes statement1 or " "statement2 depending on the value of the expression. If the expression is " "non-zero, statement1 is executed. If statement2 is present and the value of " "the expression is 0, then statement2 is executed. (The else clause is an " "extension.)" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B ( expression ) statement" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The while statement will execute the statement while the expression is non-" "zero. It evaluates the expression before each execution of the statement. " "Termination of the loop is caused by a zero expression value or the " "execution of a break statement." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B ( [expression1] ; [expression2] ; [expression3] ) statement" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "The for statement controls repeated execution of the statement. Expression1 " "is evaluated before the loop. Expression2 is evaluated before each " "execution of the statement. If it is non-zero, the statement is evaluated. " "If it is zero, the loop is terminated. After each execution of the " "statement, expression3 is evaluated before the reevaluation of expression2. " "If expression1 or expression3 are missing, nothing is evaluated at the point " "they would be evaluated. If expression2 is missing, it is the same as " "substituting the value 1 for expression2. (The optional expressions are an " "extension. POSIX B requires all three expressions.) The following is " "equivalent code for the for statement:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "expression1;\n" "while (expression2) {\n" " statement;\n" " expression3;\n" "}\n" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This statement causes a forced exit of the most recent enclosing while " "statement or for statement." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "The continue statement (an extension) causes the most recent enclosing for " "statement to start the next iteration." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The halt statement (an extension) is an executed statement that causes the " "B processor to quit only when it is executed. For example, \"if (0 == " "1) halt\" will not cause B to terminate because the halt is not executed." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Return the value 0 from a function. (See the section on functions.)" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B ( expression )" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Return the value of the expression from a function. (See the section on " "functions.) As an extension, the parenthesis are not required." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "PSEUDO STATEMENTS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "These statements are not statements in the traditional sense. They are not " "executed statements. Their function is performed at \"compile\" time." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Print the local limits enforced by the local version of B. This is an " "extension." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "When the quit statement is read, the B processor is terminated, " "regardless of where the quit statement is found. For example, \"if (0 == 1) " "quit\" will cause B to terminate." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Print a longer warranty notice. This is an extension." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "FUNCTIONS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Functions provide a method of defining a computation that can be executed " "later. Functions in B always compute a value and return it to the " "caller. Function definitions are \"dynamic\" in the sense that a function " "is undefined until a definition is encountered in the input. That " "definition is then used until another definition function for the same name " "is encountered. The new definition then replaces the older definition. A " "function is defined as follows:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<( >IB<) { >IB<}>\n" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "A function call is just an expression of the form " "\"IB<(>IB<)>\"." msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "Parameters are numbers or arrays (an extension). In the function " "definition, zero or more parameters are defined by listing their names " "separated by commas. All parameters are call by value parameters. Arrays " "are specified in the parameter definition by the notation \"IB<[]>\". " "In the function call, actual parameters are full expressions for number " "parameters. The same notation is used for passing arrays as for defining " "array parameters. The named array is passed by value to the function. " "Since function definitions are dynamic, parameter numbers and types are " "checked when a function is called. Any mismatch in number or types of " "parameters will cause a runtime error. A runtime error will also occur for " "the call to an undefined function." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I is an optional list of variables that are for \"local\" " "use. The syntax of the auto list (if present) is \"BI, ... ;" "\". (The semicolon is optional.) Each I is the name of an auto " "variable. Arrays may be specified by using the same notation as used in " "parameters. These variables have their values pushed onto a stack at the " "start of the function. The variables are then initialized to zero and used " "throughout the execution of the function. At function exit, these variables " "are popped so that the original value (at the time of the function call) of " "these variables are restored. The parameters are really auto variables that " "are initialized to a value provided in the function call. Auto variables " "are different than traditional local variables because if function A calls " "function B, B may access function A's auto variables by just using the same " "name, unless function B has called them auto variables. Due to the fact " "that auto variables and parameters are pushed onto a stack, B supports " "recursive functions." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The function body is a list of B statements. Again, statements are " "separated by semicolons or newlines. Return statements cause the " "termination of a function and the return of a value. There are two versions " "of the return statement. The first form, \"B\", returns the value 0 " "to the calling expression. The second form, \"BIB<)>\", computes the value of the expression and returns that value to the " "calling expression. There is an implied \"B\" at the end of " "every function. This allows a function to terminate and return 0 without an " "explicit return statement." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Functions also change the usage of the variable B. All constants in " "the function body will be converted using the value of B at the time " "of the function call. Changes of B will be ignored during the " "execution of the function except for the standard function B, which " "will always use the current value of B for conversion of numbers." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Several extensions have been added to functions. First, the format of the " "definition has been slightly relaxed. The standard requires the opening " "brace be on the same line as the B keyword and all other parts must " "be on following lines. This version of B will allow any number of " "newlines before and after the opening brace of the function. For example, " "the following definitions are legal." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "CW<\n" "define d (n) { return (2*n); }\n" "define d (n)\n" " { return (2*n); }>\n" "\n" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "Functions may be defined as B. A void funtion returns no value and " "thus may not be used in any place that needs a value. A void function does " "not produce any output when called by itself on an input line. The key word " "B is placed between the key word B and the function name. For " "example, consider the following session." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "CW<\n" "define py (y) { print \"---E\", y, \"E---\", \"\\en\"; }\n" "define void px (x) { print \"---E\", x, \"E---\", \"\\en\"; }\n" "py(1)\n" "---E1E---\n" "0\n" "px(1)\n" "---E1E--->\n" "\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Since B is not a void function, the call of B prints the desired " "output and then prints a second line that is the value of the function. " "Since the value of a function that is not given an explicit return statement " "is zero, the zero is printed. For B, no zero is printed because the " "function is a void function." msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "Also, call by variable for arrays was added. To declare a call by variable " "array, the declaration of the array parameter in the function definition " "looks like \"I<*name>B<[]>\". The call to the function remains the same as " "call by value arrays." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "MATH LIBRARY" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If B is invoked with the B<-l> option, a math library is preloaded and " "the default scale is set to 20. The math functions will calculate their " "results to the scale set at the time of their call. The math library " "defines the following functions:" msgstr "" #. type: IP #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed #, no-wrap msgid "s (I)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The sine of x, x is in radians." msgstr "" #. type: IP #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed #, no-wrap msgid "c (I)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The cosine of x, x is in radians." msgstr "" #. type: IP #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed #, no-wrap msgid "a (I)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The arctangent of x, arctangent returns radians." msgstr "" #. type: IP #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed #, no-wrap msgid "l (I)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The natural logarithm of x." msgstr "" #. type: IP #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed #, no-wrap msgid "e (I)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The exponential function of raising e to the value x." msgstr "" #. type: IP #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed #, no-wrap msgid "j (I)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The Bessel function of integer order n of x." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXAMPLES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "In /bin/sh, the following will assign the value of \"pi\" to the shell " "variable B." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "CW< pi=$(echo \"scale=10; 4*a(1)\" | bc -l)>" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following is the definition of the exponential function used in the math " "library. This function is written in POSIX B." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "CW<\n" "scale = 20>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "CW\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "CW\n" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed #, no-wrap msgid "" "CW< /* Check the sign of x. */\n" " if (xE0) {\n" " m = 1\n" " x = -x\n" " } >\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "CW< /* Precondition x. */\n" " z = scale;\n" " scale = 4 + z + .44*x;\n" " while (x E 1) {\n" " f += 1;\n" " x /= 2;\n" " }>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "CW< /* Initialize the variables. */\n" " v = 1+x\n" " a = x\n" " d = 1>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "CW< for (i=2; 1; i++) {\n" " e = (a *= x) / (d *= i)\n" " if (e == 0) {\n" " if (fE0) while (f--) v = v*v;\n" " scale = z\n" " if (m) return (1/v);\n" " return (v/1);\n" " }\n" " v += e\n" " }\n" "}>\n" "\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following is code that uses the extended features of B to implement " "a simple program for calculating checkbook balances. This program is best " "kept in a file so that it can be used many times without having to retype it " "at every use." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "CW<\n" "scale=2\n" "print \"\\enCheck book program!\\en\"\n" "print \" Remember, deposits are negative transactions.\\en\"\n" "print \" Exit by a 0 transaction.\\en\\en\">\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "CW\n" "\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The following is the definition of the recursive factorial function." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "CW<\n" "define f (x) {\n" " if (x E= 1) return (1);\n" " return (f(x-1) * x);\n" "}>\n" "\n" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "READLINE AND LIBEDIT OPTIONS" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "GNU B can be compiled (via a configure option) to use the GNU " "B input editor library or the BSD B library. This allows " "the user to do editing of lines before sending them to B. It also " "allows for a history of previous lines typed. When this option is selected, " "B has one more special variable. This special variable, B is " "the number of lines of history retained. For B, a value of -1 " "means that an unlimited number of history lines are retained. Setting the " "value of B to a positive number restricts the number of history " "lines to the number given. The value of 0 disables the history feature. " "The default value is 100. For more information, read the user manuals for " "the GNU B, B and BSD B libraries. One can not " "enable both B and B at the same time." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DIFFERENCES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This version of B was implemented from the POSIX P1003.2/D11 draft and " "contains several differences and extensions relative to the draft and " "traditional implementations. It is not implemented in the traditional way " "using I This version is a single process which parses and runs a " "byte code translation of the program. There is an \"undocumented\" option (-" "c) that causes the program to output the byte code to the standard output " "instead of running it. It was mainly used for debugging the parser and " "preparing the math library." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A major source of differences is extensions, where a feature is extended to " "add more functionality and additions, where new features are added. The " "following is the list of differences and extensions." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "LANG environment" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This version does not conform to the POSIX standard in the processing of the " "LANG environment variable and all environment variables starting with LC_." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "names" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Traditional and POSIX B have single letter names for functions, " "variables and arrays. They have been extended to be multi-character names " "that start with a letter and may contain letters, numbers and the underscore " "character." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Strings" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Strings are not allowed to contain NUL characters. POSIX says all " "characters must be included in strings." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "last" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "POSIX B does not have a B variable. Some implementations of B " "use the period (.) in a similar way." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "comparisons" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "POSIX B allows comparisons only in the if statement, the while " "statement, and the second expression of the for statement. Also, only one " "relational operation is allowed in each of those statements." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "if statement, else clause" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "POSIX B does not have an else clause." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "for statement" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "POSIX B requires all expressions to be present in the for statement." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "&&, ||, !" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "POSIX B does not have the logical operators." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "read function" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "POSIX B does not have a read function." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "print statement" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "POSIX B does not have a print statement ." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "continue statement" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "POSIX B does not have a continue statement." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "return statement" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "POSIX B requires parentheses around the return expression." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "array parameters" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "POSIX B does not (currently) support array parameters in full. The " "POSIX grammar allows for arrays in function definitions, but does not " "provide a method to specify an array as an actual parameter. (This is most " "likely an oversight in the grammar.) Traditional implementations of B " "have only call by value array parameters." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "function format" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "POSIX B requires the opening brace on the same line as the B key " "word and the B statement on the next line." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "=+, =-, =*, =/, =%, =^" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "POSIX B does not require these \"old style\" assignment operators to be " "defined. This version may allow these \"old style\" assignments. Use the " "limits statement to see if the installed version supports them. If it does " "support the \"old style\" assignment operators, the statement \"a =- 1\" " "will decrement B by 1 instead of setting B to the value -1." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "spaces in numbers" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Other implementations of B allow spaces in numbers. For example, \"x=1 " "3\" would assign the value 13 to the variable x. The same statement would " "cause a syntax error in this version of B." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "errors and execution" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This implementation varies from other implementations in terms of what code " "will be executed when syntax and other errors are found in the program. If " "a syntax error is found in a function definition, error recovery tries to " "find the beginning of a statement and continue to parse the function. Once " "a syntax error is found in the function, the function will not be callable " "and becomes undefined. Syntax errors in the interactive execution code will " "invalidate the current execution block. The execution block is terminated " "by an end of line that appears after a complete sequence of statements. For " "example," msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "a = 1\n" "b = 2\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "has two execution blocks and" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "{ a = 1\n" " b = 2 }\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "has one execution block. Any runtime error will terminate the execution of " "the current execution block. A runtime warning will not terminate the " "current execution block." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Interrupts" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "During an interactive session, the SIGINT signal (usually generated by the " "control-C character from the terminal) will cause execution of the current " "execution block to be interrupted. It will display a \"runtime\" error " "indicating which function was interrupted. After all runtime structures " "have been cleaned up, a message will be printed to notify the user that " "B is ready for more input. All previously defined functions remain " "defined and the value of all non-auto variables are the value at the point " "of interruption. All auto variables and function parameters are removed " "during the clean up process. During a non-interactive session, the SIGINT " "signal will terminate the entire run of B." msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "LIMITS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following are the limits currently in place for this B processor. " "Some of them may have been changed by an installation. Use the limits " "statement to see the actual values." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BC_BASE_MAX" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The maximum output base is currently set at 999. The maximum input base is " "16." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BC_DIM_MAX" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is currently an arbitrary limit of 65535 as distributed. Your " "installation may be different." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BC_SCALE_MAX" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The number of digits after the decimal point is limited to INT_MAX digits. " "Also, the number of digits before the decimal point is limited to INT_MAX " "digits." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BC_STRING_MAX" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The limit on the number of characters in a string is INT_MAX characters." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "exponent" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The value of the exponent in the raise operation (^) is limited to LONG_MAX." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "variable names" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The current limit on the number of unique names is 32767 for each of simple " "variables, arrays and functions." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "ENVIRONMENT VARIABLES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The following environment variables are processed by B:" msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "POSIXLY_CORRECT" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "This is the same as the B<-s> option." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BC_ENV_ARGS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "This is another mechanism to get arguments to B. The format is the same " "as the command line arguments. These arguments are processed first, so any " "files listed in the environment arguments are processed before any command " "line argument files. This allows the user to set up \"standard\" options " "and files to be processed at every invocation of B. The files in the " "environment variables would typically contain function definitions for " "functions the user wants defined every time B is run." msgstr "" #. type: IP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BC_LINE_LENGTH" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed msgid "" "This should be an integer specifying the number of characters in an output " "line for numbers. This includes the backslash and newline characters for " "long numbers. As an extension, the value of zero disables the multi-line " "feature. Any other value of this variable that is less than 3 sets the line " "length to 70." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DIAGNOSTICS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If any file on the command line can not be opened, B will report that " "the file is unavailable and terminate. Also, there are compile and run time " "diagnostics that should be self-explanatory." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BUGS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Error recovery is not very good yet." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Email bug reports to B. Be sure to include the word ``bc'' " "somewhere in the ``Subject:'' field." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "AUTHOR" msgstr "" #. type: Plain text #: archlinux fedora-40 fedora-rawhide mageia-cauldron opensuse-leap-15-6 #: opensuse-tumbleweed #, no-wrap msgid "" "Philip A. Nelson\n" "philnelson@acm.org\n" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "ACKNOWLEDGEMENTS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The author would like to thank Steve Sommars (Steve.Sommars@att.com) for his " "extensive help in testing the implementation. Many great suggestions were " "given. This is a much better product due to his involvement." msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "Numbers are stored in two types of variables, simple variables and arrays. " "Both simple variables and array variables are named. Names begin with a " "letter followed by any number of letters, digits and underscores. All " "letters must be lower case. (Full alpha-numeric names are an extension. In " "POSIX B all names are a single lower case letter.) The type of variable " "is clear by the context because all array variable names will be followed by " "brackets ([])." msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "There are four special variables, B and B. " "B defines how some operations use digits after the decimal point. " "The default value of B is 0. B and B define the " "conversion base for input and output numbers. The default for both input " "and output is base 10. B (an extension) is a variable that has the " "value of the last printed number. These will be discussed in further detail " "where appropriate. All of these variables may have values assigned to them " "as well as used in expressions." msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "A simple expression is just a constant. B converts constants into " "internal decimal numbers using the current input base, specified by the " "variable B. (There is an exception in functions.) The legal values " "of B are 2 through 36. (Bases greater than 16 are an extension.) " "Assigning a value outside this range to B will result in a value of 2 " "or 36. Input numbers may contain the characters 0\\(en9 and A\\(enZ. (Note: " "They must be capitals. Lower case letters are variable names.) Single " "digit numbers always have the value of the digit regardless of the value of " "B. (i.e. A = 10.) For multi-digit numbers, B changes all input " "digits greater or equal to ibase to the value of B-1. This makes the " "number B always be the largest 3 digit number of the input base." msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "The result of the expression is the value of the first raised to the " "second. The second expression must be an integer. (If the second " "expression is not an integer, a warning is generated and the expression is " "truncated to get an integer value.) The scale of the result is B if " "the exponent is negative. If the exponent is positive the scale of the " "result is the minimum of the scale of the first expression times the value " "of the exponent and the maximum of B and the scale of the first " "expression. (e.g.\\& scale(a^b) = min(scale(a)*b, max( B " "scale(a))).) It should be noted that expr^0 will always return the value of " "1." msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "Boolean operations are also legal. (POSIX B does NOT have boolean " "operations). The result of all boolean operations are 0 and 1 (for false " "and true) as in relational expressions. The boolean operators are:" msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "This precedence was chosen so that POSIX compliant B programs will run " "correctly. This will cause the use of the relational and logical operators " "to have some unusual behavior when used with assignment expressions. " "Consider the expression:" msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "There are a few more special expressions that are provided in B. These " "have to do with user defined functions and standard functions. They all " "appear as \"\\,IB<(\\,>IB<)>\". See the section on " "functions for user defined functions. The standard functions are:" msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "Statements (as in most algebraic languages) provide the sequencing of " "expression evaluation. In B statements are executed \"as soon as " "possible.\" Execution happens when a newline in encountered and there is one " "or more complete statements. Due to this immediate execution, newlines are " "very important in B. In fact, both a semicolon and a newline are used " "as statement separators. An improperly placed newline will cause a syntax " "error. Because newlines are statement separators, it is possible to hide a " "newline by using the backslash character. The sequence \"\\eEnlE\", " "where EnlE is the newline appears to B as whitespace instead of " "a newline. A statement list is a series of statements separated by " "semicolons and newlines. The following is a list of B statements and " "what they do: (Things enclosed in brackets ([]) are optional parts of the " "statement.)" msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "This statement does one of two things. If the expression starts with " "\"EvariableE EassignmentE ...\", it is considered to be an " "assignment statement. If the expression is not an assignment statement, the " "expression is evaluated and printed to the output. After the number is " "printed, a newline is printed. For example, \"a=1\" is an assignment " "statement and \"(a=1)\" is an expression that has an embedded assignment. " "All numbers that are printed are printed in the base specified by the " "variable B. The legal values for B< obase> are 2 through " "BC_BASE_MAX. (See the section LIMITS.) For bases 2 through 16, the usual " "method of writing numbers is used. For bases greater than 16, B uses a " "multi-character digit method of printing the numbers where each higher base " "digit is printed as a base 10 number. The multi-character digits are " "separated by spaces. Each digit contains the number of characters required " "to represent the base ten value of \"obase-1\". Since numbers are of " "arbitrary precision, some numbers may not be printable on a single output " "line. These long numbers will be split across lines using the \"\\e\" as " "the last character on a line. The maximum number of characters printed per " "line is 70. Due to the interactive nature of B, printing a number " "causes the side effect of assigning the printed value to the special " "variable B. This allows the user to recover the last value printed " "without having to retype the expression that printed the number. Assigning " "to B is legal and will overwrite the last printed value with the " "assigned value. The newly assigned value will remain until the next number " "is printed or another value is assigned to B. (Some installations may " "allow the use of a single period (.\\&) which is not part of a number as a " "short hand notation for for B.)" msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "The print statement (an extension) provides another method of output. The " "\"list\" is a list of strings and expressions separated by commas. Each " "string or expression is printed in the order of the list. No terminating " "newline is printed. Expressions are evaluated and their value is printed " "and assigned to the variable B. Strings in the print statement are " "printed to the output and may contain special characters. Special " "characters start with the backslash character (\\e). The special characters " "recognized by B are \"a\" (alert or bell), \"b\" (backspace), \"f\" " "(form feed), \"n\" (newline), \"r\" (carriage return), \"q\" (double quote), " "\"t\" (tab), and \"\\e\" (backslash). Any other character following the " "backslash will be ignored." msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "The for statement controls repeated execution of the statement. Expression1 " "is evaluated before the loop. Expression2 is evaluated before each " "execution of the statement. If it is non-zero, the statement is evaluated. " "If it is zero, the loop is terminated. After each execution of the " "statement, expression3 is evaluated before the reevaluation of expression2. " "If expression1 or expression3 are missing, nothing is evaluated at the point " "they would be evaluated. If expression2 is missing, it is the same as " "substituting the value 1 for expression2. (The optional expressions are an " "extension. POSIX B requires all three expressions.) The following is " "equivalent code for the for statement:" msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "The continue statement (an extension) causes the most recent enclosing for " "statement to start the next iteration." msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "A function call is just an expression of the form \"\\,IB<(\\," ">IB<)>\"." msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "Parameters are numbers or arrays (an extension). In the function " "definition, zero or more parameters are defined by listing their names " "separated by commas. All parameters are call by value parameters. Arrays " "are specified in the parameter definition by the notation \"\\,IB<[]>\". In the function call, actual parameters are full expressions for " "number parameters. The same notation is used for passing arrays as for " "defining array parameters. The named array is passed by value to the " "function. Since function definitions are dynamic, parameter numbers and " "types are checked when a function is called. Any mismatch in number or " "types of parameters will cause a runtime error. A runtime error will also " "occur for the call to an undefined function." msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "Functions may be defined as B. A void function returns no value and " "thus may not be used in any place that needs a value. A void function does " "not produce any output when called by itself on an input line. The key word " "B is placed between the key word B and the function name. For " "example, consider the following session." msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "Also, call by variable for arrays was added. To declare a call by variable " "array, the declaration of the array parameter in the function definition " "looks like \"\\,I<*name\\/>B<[]>\". The call to the function remains the " "same as call by value arrays." msgstr "" #. type: IP #: debian-bookworm debian-unstable #, no-wrap msgid "s (\\,I)" msgstr "" #. type: IP #: debian-bookworm debian-unstable #, no-wrap msgid "c (\\,I)" msgstr "" #. type: IP #: debian-bookworm debian-unstable #, no-wrap msgid "a (\\,I)" msgstr "" #. type: IP #: debian-bookworm debian-unstable #, no-wrap msgid "l (\\,I)" msgstr "" #. type: IP #: debian-bookworm debian-unstable #, no-wrap msgid "e (\\,I)" msgstr "" #. type: IP #: debian-bookworm debian-unstable #, no-wrap msgid "j (\\,I)" msgstr "" #. type: Plain text #: debian-bookworm debian-unstable #, no-wrap msgid "" "CW< /* Check the sign of x. */\n" " if (xE0) {\n" " m = 1\n" " x = -x\n" " }>\n" msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "GNU B can be compiled (via a configure option) to use the GNU " "B input editor library or the BSD B library. This allows " "the user to do editing of lines before sending them to B. It also " "allows for a history of previous lines typed. When this option is selected, " "B has one more special variable. This special variable, B is " "the number of lines of history retained. For B, a value of -1 " "means that an unlimited number of history lines are retained. Setting the " "value of B to a positive number restricts the number of history " "lines to the number given. The value of 0 disables the history feature. " "The default value is 100. For more information, read the user manuals for " "the GNU B, B and BSD B libraries. One can not " "enable both B and B at the same time." msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "POSIX B does not have a B variable. Some implementations of B " "use the period (.\\&) in a similar way." msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "POSIX B does not have a print statement." msgstr "" #. type: Plain text #: debian-bookworm debian-unstable msgid "" "This should be an integer specifying the number of characters in an output " "line for numbers. This includes the backslash and newline characters for " "long numbers. As an extension, the value of zero disables the multi-line " "feature. Any other value of this variable that is less than 3 sets the line " "length to 70." msgstr "" #. type: Plain text #: debian-bookworm debian-unstable #, no-wrap msgid "" "Philip A.\\& Nelson\n" "philnelson@acm.org\n" msgstr "" #. type: Plain text #: fedora-40 fedora-rawhide msgid "" "The result of the expression is the product of the two expressions. If a " "and b are the scales of the two expressions, then the scale of the result " "is: min(a+b,max(scale,a,b))" msgstr ""