# Lua Programming/Index

This is an alphabetical index of the book.

## A

* Allocation
* Arithmetic operations
* Arguments
* Arrays
* Assertion
* Assignment
* Associative arrays
* Augmented assignment
* Automatic memory management

## B

* Binary operators
* Bit shifts
* Bitwise AND
* Bitwise NOT
* Bitwise operations
* Bitwise OR
* Bitwise XOR
* Blocks
* Booleans
* break statement
* busted
* Bytecode

## C

* Captures
* Chained assignment
* Character classes
* Character ranges
* Character sets
* Chunks
* Code annotations
* Coercion
* Collaborative multithreading
* Comments
* Compound assignment
* Concatenation
* Conditional statement
* Condition-controlled loops
* Coroutines
* Count-controlled loops

## D

* Debugging
* Decimal precision errors
* Deprecation
* Dictionaries
* do statement
* Dynamic testing

## E

* else block
* elseif block
* Empty captures
* Empty statements
* Errors
* Expressions
* Extended Backus–Naur form

## F

* Fields
* Float division
* Floats
* Floor division
* Foreach loop
* Frontier patterns
* Functions

## G

* Garbage collection
* Generic for loop

## H

* Hash maps
* Hash tables
* Hello, world!

## I

* Incrementation
* Identifiers
* if statement
* Index
* Infinite loops
* Integers
* Integration testing
* Iterators

## K

* Kepler Project
* Key

## L

* Left shift
* Literals
* Local variables
* Logical errors
* Long brackets
* Long comments
* Loops
* Loop variables
* luac
* LuaJIT
* Luaunit

## M

* Main thread
* Maps
* Metalanguage
* Metamethods
* Metatables
* Methods
* Modulo operation
* MoonScript
* Multiple assignment

## N

* Names
* Nil
* Numbers
* Numeric for loops

## O

* Operator precedence
* Operators

## P

* Parallel assignment
* Patterns
* Pattern items
* Parameters
* Precedence
* Protected calls

## R

* Registers
* Regular expressions
* Relational operators
* Replacement strings
* Return statement
* Right shift

## S

* Scope
* self parameter
* Semantic errors
* Shake
* Short comments
* Simultaneous assignment
* Software testing
* Sorting tables
* Stack
* Stack overflow
* Statements
* State values
* Static testing
* Strings
* String concatenation
* String manipulation
* String matching
* String patterns
* Symbol tables
* Syntactic errors
* Syntax
* System testing

## T

* Type constraints
* Table constructors
* Tables
* Terra
* Test cases
* Transformation function
* Tuples
* Type checking
* Types
* Type safety
* Type system

## U

* Unary operators
* Unit testing
* Unpacking tables

## V

* Vararg functions
* Variadic functions

## W

* Weak references
* Weak tables
* White-box testing

## Lua API

There is a separate index for the functions and variables that are part of the Lua API. This index points to parts of the book where functions or variables in the API are mentioned.

### Basic functions

* assert
* collectgarbage
* dofile
* error
* getmetatable
* ipairs
* load
* loadfile
* next
* pairs
* pcall
* print
* rawequal
* rawget
* rawlen
* rawset
* select
* setmetatable
* tonumber
* tostring
* type
* xpcall

### Coroutine manipulation

* coroutine.create
* coroutine.resume
* coroutine.running
* coroutine.status
* coroutine.wrap
* coroutine.yield

### String manipulation

* string.dump
* string.find
* string.gmatch
* string.gsub
* string.len
* string.lower
* string.reverse
* string.sub
* string.upper

### Table manipulation

* table.foreach
* table.foreachi
* table.sort
* table.unpack