ALPHA: breaking changes expected. What that means
NanoC

Control flow and compact declarations

NanoC
f sum(a: *i32, n: i32) i32
  total := 0
  for i := 0; i < n; i++
    if a[i] < 0
      ^
    elif a[i] == 0
      !
    else
      total += a[i]
  while total > 10
    total--
  < total
C
int sum(int *a, int n) {
    int total = 0;
    for (int i = 0; i < n; i++) {
        if (a[i] < 0) {
            continue;
        } else if (a[i] == 0) {
            break;
        } else {
            total += a[i];
        }
    }
    while (total > 10) {
        total--;
    }
    return total;
}
SyntaxC translation
f name T / f name(args) TFunction with optional return type
int x,y,zShared C parameter type
final value expressionImplicit return in non-void functions
s Name / u Name / e NameStruct / union / enum with a typedef
name := literalDeclaration with literal-derived C type
name: CType = expressionExplicit C declaration
< expression / <Early value return / void return
if condition / elif condition / elseif / else if / else
while conditionwhile
for init; condition; stepfor
! / ^break / continue
+stdio,stdlib / +<header.h>,"local.h"Multiple C includes; bare names add .h

Indentation uses spaces. A body must be deeper than its header, siblings align, and dedents must match an enclosing level. Canonical formatting uses two spaces. Missing, empty or inconsistently indented bodies are rejected. Runtime branches match an if at the same indentation. Block colons and inline then spellings are not part of v1. C expressions retain C operator spelling, precedence and evaluation rules: !x, !!x, ~x, a^b, a?b:c and x=y are expressions. Only a standalone ! or ^ is a loop-control statement; !x and a^b remain C expressions. Outer parentheses around control headers are rejected.