move docs to docs/ folder, rewrite readme and contributing
This commit is contained in:
49
docs/postfix-syntax.md
Normal file
49
docs/postfix-syntax.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# Postfix Syntax
|
||||
|
||||
Some languages (like Tamil) are grammatically SOV — the condition comes before the keyword, not after. ForeignThon supports this with the `@@` operator.
|
||||
|
||||
## How it works
|
||||
|
||||
```python
|
||||
# Standard prefix (works in every language)
|
||||
si x > 0:
|
||||
imprimir(x)
|
||||
|
||||
# Postfix with @@
|
||||
x > 0 @@si:
|
||||
imprimir(x)
|
||||
```
|
||||
|
||||
Both produce identical Python: `if x > 0:`. The `@@` means "take whatever is to my left, put the keyword first".
|
||||
|
||||
## Rules
|
||||
|
||||
- `@@` only rewrites the line it appears on — nothing else changes
|
||||
- Indentation rules are identical to normal Python
|
||||
- Prefix and postfix can be mixed freely in the same file
|
||||
- Works for any keyword in any language pack
|
||||
|
||||
## Examples
|
||||
|
||||
```python
|
||||
# if / else
|
||||
x > 0 @@si:
|
||||
imprimir(x)
|
||||
sino:
|
||||
pasar
|
||||
|
||||
# while
|
||||
contador < 10 @@mientras:
|
||||
contador += 1
|
||||
|
||||
# inside a function — indentation unchanged
|
||||
definir comprobar(x):
|
||||
x > 0 @@si:
|
||||
imprimir("positivo")
|
||||
sino:
|
||||
imprimir("negativo")
|
||||
```
|
||||
|
||||
## Why @@
|
||||
|
||||
`@@` is not valid Python syntax so it never conflicts with existing code. Single `@` is used for decorators and matrix multiplication, so it was ruled out.
|
||||
Reference in New Issue
Block a user