forgedb 0.3.0

ForgeDB — an application database generator. Compiles a declarative .forge schema into tailored Rust database code, a TypeScript SDK, and a REST API.
Documentation
---
title: "Comments & whitespace"
description: "How comments and whitespace work in .forge — line comments only, significant newlines, and no block comments."
purpose: "reference"
---
## Comments

`.forge` has **line comments** only, introduced by `//`. Everything from `//` to the end
of the line is ignored. A comment may stand on its own line or trail a field.

```forge
// A standalone comment describing the model.
User {
  id: +uuid
  email: &string  // inline comment after a field
}
```

<Callout type="warning" title="Block comments are not supported">
`/* ... */` block comments do **not** parse — the lexer has no handling for them. Some
older example files use them; those files fail in the CLI. Use `//` lines instead.
</Callout>

## Whitespace

- **Newlines are significant.** They delimit logical tokens — fields are separated by
  newlines, not semicolons.
- **Horizontal whitespace** (spaces and tabs) is skipped, so you may indent and align
  freely.
- **Carriage returns** (`\r`) are skipped, so CRLF files parse fine.
- Model, struct, and enum definitions may span multiple lines; blank lines between
  declarations are fine.

## Terminators

- There are **no semicolons**. The only structural delimiters are the `{` and `}` block
  braces.
- A field's `@` directives must appear after its type, before the next newline or the next
  directive on the same field.

```forge
// Valid: newline-delimited fields, no semicolons, aligned for readability.
Post {
  id:          +uuid
  title:       string  @length(1, 200)
  published:   bool    @default(false)
  author:      *User
  created_at:  +timestamp
}
```