# Tokens

Tokens in BoxLang include the following:

1. [**Identifiers**](https://boxlang.ortusbooks.com/boxlang-language/reference/lexical-elements/identifiers): These are names used for variables, functions, and other user-defined items. They must start with a letter and can contain letters, numbers, and underscores. Dashes are not allowed within root-level variable names.

   Example: `myVariable`, `calculated_sum`
2. [**Keywords**](https://boxlang.ortusbooks.com/boxlang-language/reference/lexical-elements/keywords): These are reserved words that have special meaning in BoxLang. They include control flow keywords like `if`, `else`, `for`, `while`, and many others.

   Example: `if`, `component`, `function`
3. [**Operators**](https://github.com/ortus-boxlang/boxlang-docs/blob/v1.x/boxlang-language/reference/lexical-elements/broken-reference/README.md): These are symbols that perform operations on one or more operands. They include arithmetic operators (`+`, `-`, `*`, `/`), comparison operators (`==`, `!=`, `<`, `>`), logical operators (`&&`, `||`), and others.

   Example: `+`, `==`, `&&`
4. [**Literals**](https://boxlang.ortusbooks.com/boxlang-language/reference/lexical-elements/literals): These are fixed values that can be numbers, strings, booleans, or null.

   Example: `123`, `"Hello, World!"`, `true`, `null`
5. **Punctuation**: These are symbols that separate different parts of the code. They include parentheses (`(`, `)`), brackets (`[`, `]`), braces (`{`, `}`), semicolons (`;`), commas (`,`), and others. Some symbols may also function as literal indicators.

   Example: `;`, `{`, `}`
6. [**Comments**](https://boxlang.ortusbooks.com/boxlang-language/reference/lexical-elements/comments): These are notes in the code that are ignored by the BoxLang interpreter. Single-line comments start with `//`, and multi-line comments are enclosed between `/*` and `*/`.

   Example: `// This is a comment`, `/* This is a multi-line comment */`
