You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
beautiful-racket/beautiful-racket-demo/precalc-demo/grammar.rkt

11 lines
295 B
Racket

#lang brag
top : (func-def | expr)*
func-def : /"fun" var /"(" vars /")" /"=" expr
/vars : [var [/"," var]*]
@expr : sum
sum : [sum ("+" | "-")] product
product : [product ("*" | "/")] value
@value : var | INT | func-app | /"(" expr /")"
func-app : var /"(" [value [/"," value]*] /")"
@var : ID