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).
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.