# mawk-code - dumping 's byte-code - man(7) - [phpMan]

[_MAWK-CODE_(7)](https://www.chedong.com/phpMan.php/man/MAWK-CODE/7/markdown)                                Miscellaneous                               [_MAWK-CODE_(7)](https://www.chedong.com/phpMan.php/man/MAWK-CODE/7/markdown)

## NAME
       mawk-code - dumping mawk's byte-code

## SYNOPSIS
       At  startup, **mawk **compiles the script into byte-code.  After that, it interprets the compiled
       byte-code.  Use the **-Wdump **option to show the byte-code.

## PROGRAM CODES
       As **mawk **executes the program, it maintains a reference to the command to execute in **cdp**.  Af‐
       ter that there may be data and/or references in **cdp**[0], **cdp**[1], etc.

       When an operation requires operands, **mawk **pushes the values (or array/string references) onto
       the stack, which updates the stack pointer **sp**.  When the operation completes,  **mawk  **consumes
       those entries on the stack, pushing the result (if any) onto the stack.

       While  executing  user-defined  functions,  **mawk  **maintains a _frame_ _pointer_ **fp **to address the
       function's local variables.

### a_cat
       _Concatenate_ _array-indices_.

       Usage:
            Forms a multiple array index by concatenating the elements of  **sp**[1-_cnt_..0],  with  each
            element separated by _SUBSEP_.

       Parameters:

            cdp[0]
                 _cnt_, the number of elements to concatenate follows the command.

            sp[0]..sp[1-_cnt_]
                 hold reference to the elements to concatenate.
       Returns the index in sp[0].

### a_del
       _Delete_ _an_ _array_ _item_.

       Usage:
            delete array[expr]

       Parameters:

            sp[0]
                 points to _array_

            sp[-1]
                 is an _expr_

### a_length
       _Find_ _the_ _length_ _of_ _an_ _array_.

       Usage:
            length(array)

       Parameters:

            sp[0]
                 points to _array_.

       Returns the length of the array in sp[0].

### a_pusha
       _Push_ _array_ _address_ _onto_ _stack_.

       Usage:
            This is used to set up a calling argument for a function.

       Parameters:

            cdp[0]
                 array reference follows the command.

       Returns the array in sp[0].

### a_test
       _Test_ _if_ _an_ _expression_ _is_ _present_ _in_ _an_ _array_.

       Usage:
            (expression in array)

       Parameters:

            sp[0]
                 points to _an_ _array_.

            sp[-1]
                 is an _expression_.

       Returns 1 in sp[0] if the expression is found, 0 otherwise.

### add
       _Add_ _two_ _numbers_.

       Usage:
            _first_ + _second_

       Parameters:

            sp[0]
                 holds the _second_ value.

            sp[-1]
                 holds the _first_ value.

       Returns the sum in sp[0].

### add_asg
       _Combined_ _addition/assignment_.

       Usage:
            _target_ += _source_

       Parameters:

            sp[0]
                 is the _source_ expression

            sp[-1]
                 points to the _target_

       Stores the sum in the _target_, leaving sp[0] pointing to the _target_.

### ae_pusha
       _Push_ _reference_ _to_ _array_ _cell,_ _given_ _expression_ _for_ _its_ _index_.

       Usage:
            _arrayname_[_expression_]

       Parameters:

            cdp[0]
                 an array reference follows the command.

            sp[0]
                 has an expression, used for the index of a cell in the array.

       Returns a reference to the addressed cell in sp[0].

### ae_pushi
       _Push_ _contents_ _of_ _array_ _cell,_ _given_ _expression_ _for_ _its_ _index_.

       Usage:
            _arrayname_[_expression_]

       Parameters:

            sp[0]
                 has an expression, used for the index of a cell in the array.

       Returns contents of the addressed cell in sp[0].

### aloop
       _Update_ _reference_ _to_ _next_ _cell_ _for_ _array_ _loop_.

       Usage:
            for ( _i_ in _arrayname_ )  _statement_

       Parameters:

            none

       **Mawk **maintains a stack of array-loop state.  It updates the array/cell references in the cur‐
       rent loop's state.

### assign
       _Assigns_ _a_ _value_.

       Usage:
            _target_ = _source_

       Parameters:

            sp[0]
                 is the _source_ expression

            sp[-1]
                 points to the _target_

            Stores the sum in the _target_, leaving sp[0] pointing to the _target_.

### atan2
       _Compute_ _arc-tangent_ _of_ _two_ _values_.

       Usage:
            atan2( _first_, _second_ )

       Parameters:

            sp[0]
                 holds the _second_ value

            sp[-1]
                 holds the _first_ value

       Returns the result in sp[0].

### call
       _Call_ _a_ _function_.

       Usage:
            _function_()

       Parameters:

            cdp[0]
                 is a reference to the function block

            cdp[1]
                 holds number of input arguments

       Returns function value in sp[0].

### cat
       _Concatenate_ _two_ _strings_.

       Usage:
            _first_ _second_

       Parameters:

            sp[0]
                 is the _second_ string.

            sp[-1]
                 is the _first_ string.

       Returns the result in sp[0].

### close
       _Close_ _the_ _file_ _or_ _pipe_ _associated_ _with_ _an_ _expression_.

       Usage:
            close( _expression_ )

       Parameters:

            sp[0]
                 holds the _expression_ identifying the file to close

       Returns the status from closing the file, 0 on success or -1 on failure.

### cos
       _Compute_ _the_ _cosine_ _of_ _a_ _value_ _in_ _radians_.

       Usage:
            cos( _value_ )

       Parameters:

            sp[0]
                 is the _value_.

       Returns the result in sp[0].

### del_a
       _Delete_ _an_ _array_.

       Usage:
            delete(array)

       Parameters:

            sp[0]
                 is the _array_ to delete.

### div
       _Divide_ _one_ _number_ _by_ _another_.

       Usage:
            _first_ / _second_

       Parameters:

            sp[0]
                 is the _second_ value.

            sp[-1]
                 is the _first_ value.

       Returns the quotient in sp[0].

### div_asg
       _Combined_ _division/assignment_.

       Usage:
            _target_ /= _source_

       Parameters:

            sp[0]
                 is the _source_

            sp[-1]
                 points to the _target_

       Stores the quotient in the _target_, leaving sp[0] pointing to the target.

   **eq**
       _Compare_ _two_ _values_.

       Usage:
            _first_ == _second_

       Parameters:

            sp[0]
                 is the _second_ value

            sp[-1]
                 is the _first_ value

       Returns 1 in sp[0] if the values are equal, otherwise 0.

### exit
       _Exits_ _mawk_ _with_ _a_ _specific_ _exit-code_.

       Usage:
            exit(_exit_code_)

       Parameters:

            sp[0]
                 is the _exit_code_

### exit0
       _Exits_ _mawk_ _with_ _success_

       Usage:
            exit

       Parameters:
            none

### exp
       _Compute_ _base-e_ _exponential_ _function_ _of_ _a_ _value_.

       Usage:
            exp( _value_ )

       Parameters:

            sp[0]
                 is the _value_

       Returns the result in sp[0].

### f_add_asg
       _Combination_ _addition/assignment_ _to_ _NF_.

       Usage:
            NF += _expression_

       Parameters:

            sp[0]
                 is the _expression_ to add

### f_assign
       _Assign_ _an_ _expression_ _to_ _NF_.

       Usage:
            NF = _expression_

       Parameters:

            sp[0]
                 is the _expression_

### f_div_asg
       _Combination_ _division/assignment_ _to_ _NF_.

       Usage:
            NF /= _expression_

       Parameters:

            sp[0]
                 is the _expression_

### f_mod_asg
       _Combination_ _modulus/assignment_ _to_ _NF_.

       Usage:
            NF %= _expression_

       Parameters:

            sp[0]
                 is the _expression_

### f_mul_asg
       _Combination_ _multiplication/assignment_ _to_ _NF_.

       Usage:
            NF *= _expression_

       Parameters:

            sp[0]
                 is the _expression_

### f_post_dec
       _Post-decrement_ _using_ _NF_.

       Usage:
            NF--

       Parameters:
            holds a reference to the field to use

### f_post_inc
       _Post-increment_ _using_ _NF_.

       Usage:
            NF++

       Parameters:
            holds a reference to the field to use

### f_pow_asg
       _Exponentiation_ _using_ _NF_.

       Usage:
            NF ^= _expression_

       Parameters:

            sp[0]
                 is the expression to use

### f_pre_dec
       _Predecrement_ _using_ _NF_.

       Usage:
            --NF

       Parameters:

            sp[0]
                 holds a reference to the field to use

### f_pre_inc
       _Preincrement_ _using_ _NF_.

       Usage:
            ++NF

       Parameters:

            sp[0]
                 holds a reference to the field to use

### f_pusha
       _Push_ _array_ _reference_ _to_ _data_ _split-up_ _as_ _fields._.

       Usage:
            $0 = _expression_
            getline

       Parameters:

            cdp[0]
                 is a reference to the data to be split/assigned.

       Returns the resulting array reference in sp[0].

### f_pushi
       _Push_ _contents_ _of_ _numbered_ _field_.

       Usage:
            $_expression_

       Parameters:

            cdp[0]
                 holds a reference to $_expression_

            cdp[1]
                 holds _expression_

       Returns the field's value in sp[0].

### f_sub_asg
       _Combination_ _subtraction/assignment_ _to_ _NF_.

       Usage:
            NF -= _expression_

       Parameters:

            sp[0]
                 holds a reference to the field to use

### fe_pusha
       _Push_ _reference_ _to_ _numbered_ _field_.

       Usage:
            $_number_

       Parameters:

            sp[0]
                 holds the field _number_

       Returns a reference to the field in sp[0].

### fe_pushi
       _Push_ _content_ _of_ _numbered_ _field_.

       Usage:
            $_number_

       Parameters:

            sp[0]
                 holds the field _number_

       Returns the field's content in sp[0].

### fflush
       _Flush_ _the_ _output_ _file_ _or_ _pipe_ _associated_ _with_ _an_ _expression_.

       Usage:
            fflush( _expression_ )

       Parameters:

            sp[0]
                 is the _expression_ value

       Returns the result in sp[0].

   **gt**
       _Test_ _if_ _first_ _value_ _is_ _greater_ _than_ _the_ _second_.

       Usage:
            _first_ > _second_

       Parameters:

            sp[0]
                 holds the _second_ value.

            sp[-1]
                 holds the _first_ value.

       Returns 1 in sp[0] if the _first_ value is greater than, otherwise 0.

### gte
       _Test_ _if_ _first_ _value_ _is_ _greater_ _than_ _or_ _equal_ _to_ _the_ _second_.

       Usage:
            _first_ >= _second_

       Parameters:

            sp[0]
                 holds the _second_ value.

            sp[-1]
                 holds the _first_ value.

       Returns 1 in sp[0] if the _first_ value is greater than or equal, otherwise 0.

### index
       _Find_ _the_ _position_ _of_ _the_ _second_ _string_ _in_ _the_ _first_.

       Usage:
            index( _first_, _second_ )

       Parameters:

            sp[0]
                 is the _second_ string

            sp[0]
                 is the _first_ string

       Returns the position in sp[0] starting at 1 if found, 0 if not found.

### int
       _Returns_ _a_ _value_ _truncated_ _towards_ _zero._.

       Usage:
            int( _value_ )

       Parameters:

            sp[0]
                 is the value

       Returns the result in sp[0].

### jmain
       _Go_ _from_ _BEGIN_ _code_ _to_ _MAIN_ _code_.

       Usage:
            (internal state)

       Parameters:

            none

### jmp
       _Jump_ _to_ _a_ _new_ _byte-code_ _position,_ _by_ _a_ _given_ _number_ _of_ _bytes_.

       Usage:
            (internal state)

       Parameters:

            cdp[0]
                 holds the (signed) number of bytes by which to jump.

### jnz
       _Jump_ _to_ _a_ _new_ _byte-code_ _position_ _if_ _sp[0]_ _is_ _nonzero,_ _by_ _a_ _given_ _number_ _of_ _bytes_.

       Usage:
            (internal state)

       Parameters:

            cdp[0]
                   holds the (signed) number of bytes by which to jump.

            sp[0]
                 holds a value to compare against 0.

   **jz**
       _Jump_ _to_ _a_ _new_ _byte-code_ _position_ _if_ _sp[0]_ _is_ _zero,_ _by_ _a_ _given_ _number_ _of_ _bytes_.

       Usage:
            (internal state)

       Parameters:

            cdp[0]
                   holds the (signed) number of bytes by which to jump.

            sp[0]
                 holds a value to compare against 0.

### l_pusha
       _Push_ _a_ _local_ _address_ _onto_ _the_ _evaluation_ _stack_.

       Usage:
            (internal state)

       Parameters:

            cdp[0]
                 holds the offset from the _frame_ _pointer_ **fp**.

       Returns the address in sp[0].

### l_pushi
       _Push_ _contents_ _of_ _a_ _local_ _variable_ _onto_ _the_ _evaluation_ _stack_.

       Usage:
            (internal state)

       Parameters:

            cdp[0]
                 holds the offset from the _frame_ _pointer_ **fp**.

       Returns the contents of the local variable in sp[0].

### la_pusha
       _Pushes_ _a_ _reference_ _to_ _an_ _array_ _onto_ _the_ _evaluation_ _stack_.

       Usage:
            _arrayname_

       Parameters:

            cdp[0]
                 holds the offset from the _frame_ _pointer_ **fp **of a reference to an array.

       Returns a reference to the array in sp[0].

### lae_pusha
       _Pushes_ _a_ _reference_ _to_ _a_ _given_ _array_ _cell_ _onto_ _the_ _evaluation_ _stack_.

       Usage:
            _arrayname_[_expression_]

       Parameters:

            cdp[0]
                 holds the offset from the _frame_ _pointer_ **fp **of a reference to an array.

            sp[0]
                 holds an _expression_

       Returns a reference to the specified array cell in sp[0].

### lae_pushi
       _Pushes_ _the_ _contents_ _of_ _a_ _given_ _array_ _cell_ _onto_ _the_ _evaluation_ _stack_.

       Usage:
            _arrayname_[_expression_]

       Parameters:

            cdp[0]
                 holds the offset from the _frame_ _pointer_ **fp **of a reference to an array.

            sp[0]
                 holds an _expression_

       Returns the contents of the specified array cell in sp[0].

### length
       _Returns_ _the_ _length_ _of_ _a_ _string_ _or_ _array_ _value_.

       Usage:
            length( _value_ )

       Parameters:

            sp[0]
                 is the string or array reference

       Returns the length in sp[0].

### ljnz
       _Special_ _jump_ _for_ _logical-OR,_ _always_ _preceded_ _by_ **test_**._

       Usage:
            (internal state)

       Parameters:

            cdp[0]
                 holds the (signed) number of bytes by which to jump if the value is nonzero.

            sp[0]
                 holds a value to compare against 0.

### ljz
       _Special_ _jump_ _for_ _logical-OR,_ _always_ _preceded_ _by_ **test_**._

       Usage:
            (internal state)

       Parameters:

            cdp[0]
                 holds the (signed) number of bytes by which to jump if the value is zero.

            sp[0]
                 holds a value to compare against 0.

### log
       _Compute_ _the_ _natural_ _logarithm_ _of_ _a_ _value_.

       Usage:
            log( _value_ )

       Parameters:

            sp[0]
                 is the value

       Returns the result in sp[0].

   **lt**
       _Test_ _if_ _first_ _value_ _is_ _less_ _than_ _the_ _second_.

       Usage:
            _first_ < _second_

       Parameters:

            sp[0]
                 holds the _second_ value.

            sp[-1]
                 holds the _first_ value.

       Returns 1 in sp[0] if the _first_ value is less than, otherwise 0.

### lte
       _Test_ _if_ _first_ _value_ _is_ _less_ _than_ _or_ _equal_ _to_ _the_ _second_.

       Usage:
            _first_ <= _second_

       Parameters:

            sp[0]
                 holds the _second_ value.

            sp[-1]
                 holds the _first_ value.

       Returns 1 in sp[0] if the _first_ value is less than or equal, otherwise 0.

### match0
       _Test_ _if_ _$0_ _matches_ _a_ _given_ _regular_ _expression_.

       Usage:
            $0 ~ _regex_

       Parameters:

            cdp[0]
                 holds a reference to a regular expression.

       Returns 1 in sp[0] if **$0 **matches the regular expression, 0 otherwise.

### match1
       _Test_ _if_ _a_ _given_ _expression_ _matches_ _a_ _given_ _regular_ _expression_.

       Usage:
            _expression_ ~ _regex_

       Parameters:

            cdp[0]
                 holds a reference to a regular expression.

            sp[0]
                 holds an expression to test.

       Returns 1 in sp[0] if the expression matches the regular expression, 0 otherwise.

### match2
       _Test_ _if_ _an_ _expression_ _in_ _sp[-1]_ _matches_ _the_ _regular_ _expression_ _in_ _sp[0]_.

       Usage:
            _expression_ ~ _regex_

       Parameters:

            sp[0]
                 holds a reference to a regular expression.

            sp[-1]
                 holds an expression to test.

       Returns 1 in sp[0] if the expression matches the regular expression, 0 otherwise.

### mktime
       _Converts_  _a_ _date_ _specification_ _in_ _systime_ _format_ _to_ _a_ _timestamp_.

       Usage:
            mktime( _string_ )

       Parameters:

            sp[0]
                 holds the date-specification string

       Returns the result in sp[0].

### mod
       _Compute_ _modulus/remainder_ _with_ _two_ _operands_.

       Usage:
            _first_ % _second_

       Parameters:

            sp[0]
                 holds the _second_ operand

            sp[-1]
                 holds the _first_ operand

       Returns the remainder in sp[0].

### mod_asg
       _Assign_ _modulus/remainder_ _with_ _two_ _operands_.

       Usage:
            _first_ %= _second_

       Parameters:

            sp[0]
                 holds the _second_ operand

            cdp[0]
                 holds the _first_ operand

       Returns the remainder in sp[0] as well as replacing the _first_ value.

### mul
       _Compute_ _product_ _with_ _two_ _operands_.

       Usage:
            _first_ * _second_

       Parameters:

            sp[0]
                 holds the _second_ value

            sp[-1]
                 holds the _first_ value

       Returns the product in sp[0].

### mul_asg
       _Assign_ _product_ _with_ _two_ _operands_.

       Usage:
            _first_ *= _second_

       Parameters:

            sp[0]
                 holds the _second_ value

            sp[-1]
                 holds the _first_ value

       Returns the product in sp[0] as well as replacing the _first_ value.

### neq
       _Compare_ _two_ _values_.

       Usage:
            _first_ != _second_

       Parameters:

            sp[0]
                 is the _second_ value

            sp[-1]
                 is the _first_ value

       Returns 1 in sp[0] if the values are not equal, otherwise 0.

### next
       _Read_ _the_ _next_ _record,_ _restart_ _pattern_ _testing_.

       Usage:
            next

       Parameters:

            none

### nextfile
       _Begin_ _processing_ _the_ _next_ _file_ _listed_ _on_ _the_ _command_ _line_.

       Usage:
            nextfile

       Parameters:

            none

### nf_pushi
       _Push_ _the_ _number_ _of_ _fields_ _(NF)_ _onto_ _the_ _evaluation_ _stack_.

       Usage:
            (internal state)

       Parameters:

            none

### not
       _Compute_ _a_ _logical_ _negation_.

       Usage:
            ! _value_

       Parameters:

            sp[0]
                 holds a value to negate.

       Returns the result on the evaluation stack, i.e., 0 if the value is nonzero and 1 otherwise.

### ol_gl
       _Read_ _into_ _$0_ _using_ _getline_.

       Usage:
            getline

       Parameters:

            none

### ol_gl_nr
       _Read_ _into_ _$0_ _using_ _getline,_ _updating_ _NR_ _and_ _FNR_.

       Usage:
            getline < _file_

       Parameters:

            none

### omain
       _Start_ _executing_ _the_ _main_ _section_ _of_ _the_ _script_ _(between_ _BEGIN_ _and_ _END)_.

       Usage:
            (internal state)

       Parameters:

            none

### pop
       _Pop_ _the_ _evaluation_ _stack,_ _discarding_ _the_ _value_.

       Usage:
            (internal state)

       Parameters:

            none

### pop_al
       _Finish_ _an_ _array_ _“in”_ _loop,_ _deallocating_ _the_ _state_ _information_.

       Usage:
            (internal state)

       Parameters:

            none

### post_dec
       _Post-decrement_ _a_ _value_.

       Usage:
            _value_ --

       Parameters:

            sp[0]
                 holds the value to decrement

       Returns the updated value in sp[0].

### post_inc
       _Post-increment_ _a_ _value_.

       Usage:
            _value_ ++

       Parameters:

            sp[0]
                 holds the value to increment

       Returns the updated value in sp[0].

### pow
       _Compute_ _the_ _first_ _value_ _raised_ _to_ _the_ _power_ _of_ _the_ _second_ _value_.

       Usage:
            _first_ ^ _second_

       Parameters:

            sp[0]
                 holds the _second_ value

            sp[-1]
                 holds the _first_ value

       Returns the result in sp[0].

### pow_asg
       _Assign_ _the_ _first_ _value_ _raised_ _to_ _the_ _power_ _of_ _the_ _second_ _value_.

       Usage:
            _variable_ = _first_ ^ _second_

       Parameters:

            cdp[0]
                 is a reference to the variable which will be assigned the result

            sp[0]
                 holds the _second_ value

            sp[-1]
                 holds the _first_ value

### pre_dec
       _Pre-decrement_ _a_ _value_.

       Usage:
            -- _value_

       Parameters:

            sp[0]
                 holds the _value_ to decrement.

       Returns the updated value in sp[0];.

### pre_inc
       _Pre-increment_ _a_ _value_.

       Usage:
            ++ _value_

       Parameters:

            sp[0]
                 holds the _value_ to decrement.

       Returns the updated value in sp[0];.

### pusha
       _Push_ _array_ _address_ _onto_ _stack_.

       Usage:
            (internal state)

       Parameters:

            cdp[0]
                 array reference follows the command.

       Returns the array in sp[0].

### pushc
       _Push_ _a_ _data_ _cell_ _onto_ _the_ _evaluation_ _stack_.

       Usage:
            (internal state)

       Parameters:

            cdp[0]
                 is a reference to the data to push

       Returns a reference to the result in sp[0].

### pushd
       _Push_ _a_ _double_ _floating_ _value_ _onto_ _the_ _evaluation_ _stack_.

       Usage:
            (internal state)

       Parameters:

            cdp[0]
                 is a reference to the data to push

       Returns a reference to the result in sp[0].

### pushi
       _Push_ _contents_ _of_ _next_ _referenced_ _variable_ _onto_ _the_ _evaluation_ _stack_.

       Usage:
            (internal state)

       Parameters:

            cdp[0]
                 is a reference to the data cell to copy.

       Returns a reference to the result in sp[0].

### pushint
       _Reserve_ _the_ _next_ _slot_ _on_ _the_ _evaluation_ _stack,_ _setting_ _its_ _type_.

       Usage:
            (internal state)

       Parameters:

            cdp[0]
                 holds the type to set in the new slot, e.g., for data via I/O redirection

       Returns a reference to the result in sp[0].

### pushs
       _Push_ _a_ _reference_ _to_ _a_ _string_ _value_ _onto_ _the_ _evaluation_ _stack_.

       Usage:
            (internal state)

       Parameters:

            cdp[0]
                 holds a reference to the string value

       Returns a reference to the result in sp[0].

### rand
       _Returns_ _a_ _random_ _number_ _between_ _zero_ _and_ _one._.

       Usage:
            rand()

       Parameters:

            none

       Returns the result in sp[0].

### range
       _Test_ _a_ _range_ _pattern:_  _pat1,_ _pat2_ _{_ _action_ _}_.

       Usage:
            (internal state)

       Parameters:

            cdp[0].op
                 a flag, test _pat1_ if on else _pat2_

            cdp[1].op
                 offset of _pat2_ code from cdp

            cdp[2].op
                 offset of action code from cdp

            cdp[3].op
                 offset of code after the action from cdp

            cdp[4]
                 start of _pat1_ code

            sp[0]
                 holds arguments for the action.

### ret
       _Return_ _a_ _function_ _value_.

       Usage:
            return _value_

       Parameters:

            sp[0]
                 holds the return value

       When  calling  a function, **mawk **saves the current stack, creating a new one.  On return, **mawk**
       restores the previous stack and returns the function value in sp[0].

### ret0
       _Return_ _from_ _a_ _function_ _without_ _providing_ _a_ _return-value_.

       Usage:
            return

       Parameters:

            sp[0]
                 is modified to make the value uninitialized.

       As in the **ret **operation, **mawk **restores the previous stack.  After the  return,  sp[0]  is  an
       uninitialized value.

### set_al
       _Begin_ _an_ _array_ _“in”_ _loop_.

       Usage:
            for ( _iterator_ in _arrayname_ )  _statement_

       Parameters:

            sp[0]
                 holds a reference to the array

            sp[-1]
                 holds a reference to the iteration variable

       **Mawk  **pushes a new entry onto the array loop stack, and updates cdp to point to the statement
       to execute.

### sin
       _Compute_ _the_ _sine_ _of_ _a_ _value_ _in_ _radians_.

       Usage:
            sin( _value_ )

       Parameters:

            sp[0]
                 holds the value

       Returns the result in sp[0].

### sprintf
       _Returns_ _a_ _string_ _constructed_ _from_ _expression-list_ _according_ _to_ _format_.

       Usage:
            sprintf( _format_ [, value1 [,... ] ] )

       Parameters:

            sp[0]
                 is the last parameter value; there can be up to 255.
       Returns the resulting string in sp[0].

### sqrt
       _Returns_ _the_ _square_ _root_ _of_ _a_ _value_.

       Usage:
            sqrt( _value_ 0

       Parameters:

            sp[0]
                 is the value

       Returns the result in sp[0].

### srand
       _Seeds_ _the_ _random_ _number_ _generator_.

       Usage:
            srand( _value_ )
            srand( )

       Parameters:

            sp[0]
                 is the seed value, which may be uninitialized

       Returns the previous seed value in sp[0].

### stop
       _Finish_ _a_ _range_ _pattern_.

       Usage:
            (internal state)

       Parameters:

            none

### strftime
       _Formats_ _the_ _given_ _timestamp_ _using_ _the_ _given_ _format_.

       Usage:
            strftime( _format_ , _timestamp_ , _utc_ )
            strftime( _format_ , _timestamp_ )
            strftime( _format_ )
            strftime( )

       Parameters:

            Zero to three parameters may be on the stack.  If all three are used, they are  as  fol‐
            lows:

            sp[0]
                 is the _utc_ flag

            sp[-1]
                 is the _timestamp_ value

            sp[-2]
                 is the _format_

       Returns the result in sp[0].

### sub
       _Subtract_ _the_ _second_ _value_ _from_ _the_ _first_.

       Usage:
            _first_ - _second_

       Parameters:

            sp[0]
                 holds the _second_ value

            sp[-1]
                 holds the _first_ value

            Returns the result in sp[0].

### sub_asg
       _Assign_ _the_ _difference_ _of_ _two_ _values_ _to_ _a_ _variable_.

       Usage:
            _target_ = _first_ - _second_

       Parameters:

            cdp[0]
                 holds a reference to the variable to which to assign the result

            sp[0]
                 holds the _second_ value

            sp[-1]
                 holds the _first_ value

       Stores the difference in the _target_, leaving sp[0] pointing to the _target_.

### substr
       _eturns_ _the_ _substring_ _of_ _string_ _s,_ _starting_ _at_ _index_ _i,_ _of_ _length_ _n_.

       Usage:
            substr(s,i,n)
            substr(s,i)

       Parameters:

            Two  or  three  parameters may be on the stack.  If all three are used, they are as fol‐
            lows:

            sp[0]
                 holds the length _n_.

            sp[0]
                 holds the index _i_.

            sp[0]
                 holds the string _s_.

### system
       _Executes_ _a_ _command,_ _returning_ _the_ _wait-status_.

       Usage:
            status = system( _command_ )

       Parameters:

            sp[0]
                 is the command to execute

       Returns the wait-status in sp[0].

### systime
       _Returns_ _the_ _current_ _time_ _of_ _day_ _as_ _the_ _number_ _of_ _seconds_ _since_ _the_ _Epoch_.

       Usage:
            systime( )

       Parameters:

            none

       Returns the result in sp[0].

### test
       _Test_ _a_ _logical_ _expression_.

       Usage:
            _value_

       Parameters:

            sp[0]
                 holds a value to test.

       Returns the result on the evaluation stack, i.e., 1 if the value is nonzero and 0 otherwise.

### tolower
       _Copy_ _a_ _string,_ _converting_ _to_ _lowercase_.

       Usage:
            tolower( _value_ )

       Parameters:

            sp[0]
                 is the value to convert

       Returns the result in sp[0].

### toupper
       _Copy_ _a_ _string,_ _converting_ _to_ _uppercase_.

       Usage:
            toupper( _value_ )

       Parameters:

            sp[0]
                 is the value to convert

       Returns the result in sp[0].

### uminus
       _Unitary_ _minus_.

       Usage:
            - _value_

       Parameters:

            sp[0]
                 contains a value to negate.  As a side-effect, if the value is a string, it is cast
                 to double floating point.

       Returns the result in sp[0].

### uplus
       _Unitary_ _plus_.

       Usage:
            + _value_

       Parameters:

            sp[0]
                 contains a value to use.  As a side-effect, if the value is a string, it is cast to
                 double floating point.

            Returns the result in sp[0].

## REGULAR EXPRESSIONS
   **M_1J**
       mandatory jump

   **M_2JA**
       optional (undesirable) jump

   **M_2JB**
       optional (desirable) jump

   **M_2JC**
       pop pos'n, optional jump if advanced

   **M_ACCEPT**
       end of match

   **M_ANY**
       arbitrary character (.)

   **M_CLASS**
       character class

   **M_END**
       end of string ($)

   **M_SAVE_POS**
       push position onto stack

   **M_START**
       start of string (^)

   **M_STR**
       matching a literal string

   **M_U**
       arbitrary string (.*)

Version 1.3.4                                2024-01-23                                 [_MAWK-CODE_(7)](https://www.chedong.com/phpMan.php/man/MAWK-CODE/7/markdown)
