#lang brag top : @statement* statement : func-def | expr | return | if func-def : /"def" var /"(" ids /")" /":" @block /ids : [var (/"," var)*] block : /INDENT @statement* /DEDENT @expr : comparison comparison : [comparison "<"] value @value : var | INTEGER | func-app | STRING func-app : var /"(" @exprs /")" exprs : [expr (/"," expr)*] return : /"return" expr if : /"if" expr /":" block [/"else" /":" block] @var : ID