# 4. Language¶

The syntax of Crowbar is designed to be similar to the syntax of C.

A Crowbar source file is UTF-8. Unless otherwise specified, a character in this specification refers to a Unicode scalar value. Crowbar source files can come in two varieties:

A Crowbar source file is read into memory in two phases: scanning (which converts text into an unstructured sequence of tokens) and parsing (which converts an unstructured sequence of tokens into a parse tree).

Syntax elements in this document are given in the form of parsing expression grammar rules.