module languages/box/syntax/Fonts imports languages/box/syntax/Basic imports basic/Comments exports sorts FontId lexical syntax [A-Za-z]+ -> FontId {cons("default")} exports sorts FontParam FontOption FontValue FontOperator context-free syntax NatCon -> FontValue {cons("natural")} FontId -> FontValue {cons("font-id")} FontParam "=" FontValue -> FontOption "F" FontOption* -> BoxOperator {cons("font")} "fn" -> FontParam {cons("name")} "fm" -> FontParam {cons("family")} "se" -> FontParam {cons("series")} "sh" -> FontParam {cons("shape")} "sz" -> FontParam {cons("size")} "cl" -> FontParam {cons("color")} "KW" -> FontOperator {cons("keyword")} "VAR" -> FontOperator {cons("variable")} "NUM" -> FontOperator {cons("number")} "MATH" -> FontOperator {cons("math")} "ESC" -> FontOperator {cons("escape")} "COMM" -> FontOperator {cons("comment")} "STRING" -> FontOperator {cons("string")}