Syntax
The Sentence
The base unit of Ragul is a sentence — multiple roots interacting, terminated by a full stop.
Because every root's role is encoded in its suffix chain, word order is free. These sentences are identical:
The Word
A Ragul word is a root followed by a suffix chain. The suffix stack follows a fixed hierarchy:
| Layer | Position | Role |
|---|---|---|
| Root | Base | The thing being described |
| Possession | Innermost suffix | Ownership / scope / lifetime |
| Aspect(s) | Middle (repeatable) | Transformations applied to the root |
| Action | After aspects | Executes the operation (-va / -doing) |
| Error | After action | Propagates failure upward (-e / -?) |
| Case | Outermost suffix | The role this word plays in the sentence |
Suffix Stacking
Aspect suffixes stack left to right, each operating on the result of the previous. This encodes a mini-pipeline inside a single word:
Multiple -val / -with arguments bind to aspects in left-to-right order:
Suffix Aliases
Each suffix has a canonical Hungarian form plus optional aliases. The parser treats all aliases as identical. Use whichever reads most naturally to you.
| Role | Canonical | English | Symbol |
|---|---|---|---|
| Source (from) | -ból / -ből |
-from |
-< |
| Target (into) | -ba / -be |
-into |
-> |
| Instrument (with) | -val / -vel |
-with |
-& |
| Context (at/scope) | -nál / -nél |
-at |
-@ |
| Role (acting as) | -ként |
-as |
-: |
| Object (acted on) | -t |
-it |
-* |
| Action (execute) | -va / -ve |
-doing |
-! |
| Error propagation | -e |
-else-fail |
-? |
Mixed alias usage within the same file is permitted — the parser does not enforce consistency.
Assignment
Assignment is not special syntax — it is an ordinary sentence. The target carries -be / -> (into) and the value carries -t / -it (accusative):
-be is the front-vowel harmonic variant of -ba. Both mean into — the choice follows vowel harmony with the root. No type annotation is required — the compiler infers types from the value.
There is no special assignment operator. Assignment is just a sentence where a value flows into a named target.
Comments
Comments begin with // and run to the end of the line:
Lists
List literals use square brackets with comma-separated elements:
Scopes and Indentation
Ragul uses indentation (tabs) to define scope boundaries. A new indent level opens a new scope; dedenting closes it.
See Functions & Scopes for the full scoping model.