MPC(1) MPC(1) NAME mpc - extended precision arithmetic code generator SYNOPSIS mpc [ file ... ] DESCRIPTION Mpc generates C functions from a simple language that oper- ates on extended precision integers using the mp(2) library. LANGUAGE The language consists of a series of function definitions of the form: name ( parameter list ) { statements } All variables and parameters are extended precision integers and are passed by reference. Statements are separated by semicolon and the following statements are defined: name = expression if ( condition ) { statements } else if ( condition ) { statements } else { statements } while ( condition ) { statements } break name ( parameter list ) mod ( modulus ) { statements } There is no distinction between input and output parameters, but conventionally, the outputs are put at the end of the parameter list and the language allows one to write F ( X, Y, Z ) as Y, Z = F ( X ) Expressions are composed out of the following arithmetic operations: + addition. - subtraction. * multiplication. / division, or multiplicative inverse when enclosed in mod block. % division remainder. ^ exponentiation. >>constant right shift by a constant. MPC(1) MPC(1) <<constant left shift by a constant. condition?a:b pick a when condition is true, otherwise b when false. Conditions can use the following operations: == equality. != inequality. > bigger than. < smaller than. !condition negation. SOURCE /sys/src/cmd/mpc.y SEE ALSO mp(2)