isl-lang.org / spec / grammar

ISL Grammar

Status: Draft — v0.1 Source: isl-lang/spec/grammar.md


ISL intent blocks are embedded annotations that appear immediately before the declaration they govern. A block opens with @isl:begin and closes with @isl:end. Between those markers, zero or more constraint expressions declare the intent that the annotated unit must satisfy. Each expression resolves to a boolean assertion evaluated by a conforming ISL runtime; a false result is a conformance violation and produces a structured diagnostic. The grammar below is normative for ISL-Core and is expressed in ISO EBNF; all terminal symbols are case-sensitive ASCII unless marked with ~i (case-insensitive).

ISL v0.1 — core grammar (stub)
intent-block    = begin-marker , { constraint } , end-marker ;
begin-marker    = "@isl:begin" ;
end-marker      = "@isl:end" ;
constraint      = ident , ":" , expr , ";" ;
expr            = literal | ident | call | group ;
call            = ident , "(" , [ arg-list ] , ")" ;
arg-list        = expr , { "," , expr } ;
group           = "(" , expr , ")" ;
ident           = letter , { letter | digit | "_" } ;
literal         = string-lit | number-lit | bool-lit ;
bool-lit        = "true" | "false" ;
(* … full grammar in isl-lang/spec/grammar.md *)

The full grammar, including the lexical rules, escape sequences, and Unicode normalization requirements, is maintained in the spec repository. This page is a generated mirror; submit corrections via the RFC process.