module languages/cpp/syntax/If imports languages/cpp/syntax/Expr languages/cpp/syntax/Text exports context-free syntax if:If then:Text elif-parts:ElifParts? else-part:ElsePart? Endif -> Line {cons("if-group")} "#" "if" expr:Expr NewLine -> If {cons("if")} "#" "ifdef" id:Id NewLine -> If {cons("ifdef")} "#" "ifndef" id:Id NewLine -> If {cons("ifndef")} "#" "elif" expr:Expr NewLine -> Elif Elif text:Text -> ElifPart ElifPart+ -> ElifParts "#" "else" NewLine text:Text -> ElsePart "#" "endif" NewLine -> Endif