Reference

Keywords

Every word the language reserves, and the one page that explains each.

Anyone who wants the whole vocabulary on one screen.

Pole reserves 24 words. The list below is the lexer's own keyword table (tools/pole/src/Lexer.cpp), plus the two words that are recognised by position rather than reserved.

Declarations#

wordwhat it doesmore
processordeclares a processor — the unit that makes soundProgram structure
graphdeclares a graph, which wires processors togetherGraphs
nodenames an instance of a processor inside a graphGraphs
connectionthe block that holds a graph's wiresGraphs
input / outputdeclares an endpointEndpoints
streaman endpoint carrying a number every sampleEndpoints
eventan endpoint carrying a record at a frameEvents
paraman input with a name, default and rangeParameters
smootha time constant on a parameterParameters
externala buffer the host ownsState

Types#

wordwhat it doesmore
float32-bit float; float<2> is a vector of twoTypes
int32-bit integerTypes
voidthe return type of main and of a procedureFunctions

Values#

wordwhat it doesmore
letan immutable localVariables
vara mutable localVariables

Control flow#

wordwhat it doesmore
loopthe frame loop; ends each pass with advance()Program structure
fora bounded loop with a constant trip countControl flow
whilea loop capped by the safety passControl flow
if / elsea branchControl flow
breakleaves the nearest bounded loopControl flow
returnreturns from a function — never from mainFunctions
everyruns a body once every N framesControl flow
wrapthe index type of a bounded forControl flow

Recognised by position, not reserved#

init, on, advance, and the event payload names note, cc and bend are matched where they appear rather than reserved as words. That is why let on = gate > 0.5f; and let note = 60.0f; keep working — both already appear in shipped code.

wordwhat it doesmore
initstate built once, before the first frameState and init
onan event handlerHandlers
advance()ends the frameProgram structure
note cc bendevent payload typesEvents

Not in the language#

No struct, no class, no string, no switch, no goto, no %, no pointers, no new. Recursion is rejected (POLE0603) and every loop is bounded — which is what makes a patch from a stranger safe to compile and run.