module basic/Configuration imports basic/Keys imports basic/Colors exports context-free start-symbols Configuration sorts TermCon NatCon StrCon sorts Configuration context-free syntax "configuration" "(" "[" list:{Property ","}* "]" ")" -> Configuration {cons("configuration")} sorts Property context-free syntax "import" "(" path:StrCon ")" -> Property {cons("import")} "load-script" "(" path:StrCon ")" -> Property {cons("script")} "script-path" "(" path:StrCon ")" -> Property {cons("script-path")} "action" "(" "[" list:{ActionDescription ","}* "]" "," action:StrCon ")" -> Property {cons("action")} "editor" "(" editor:StrCon "," language:StrCon "," extension:StrCon ")" -> Property {cons("editor")} "library-path" "(" label:StrCon "," path:StrCon ")" -> Property {cons("library-path")} "module-path" "(" label:StrCon "," path:StrCon ")" -> Property {cons("module-path")} "text-category" "(" category:TextCategoryName "," "[" map:{TextAttribute ","}* "]" ")" -> Property {cons("text-category")} sorts ActionDescription context-free syntax "description" "(" context:TermCon "," event:Event ")" -> ActionDescription {cons("description")} sorts Event context-free syntax "popup" -> Event {cons("popup")} "click" "(" "[" list:{KeyModifier ","}* "]" "," button:VirtualButton ")" -> Event {cons("click")} "icon" "(" title:StrCon "," path:StrCon ")" -> Event {cons("icon")} "menu" "(" "[" labels:{Item ","}* "]" "," info:StrCon ")" -> Event {cons("menu")} "menu-shortcut" "(" "[" labels:{Item ","}* "]" "," shortcut:ShortCut "," info:StrCon ")" -> Event {cons("menu-shortcut")} sorts Item context-free syntax "label" "(" name:StrCon ")" -> Item {cons("label")} sorts TextCategoryName context-free syntax "focus" -> TextCategoryName {cons("focus")} "selection" -> TextCategoryName {cons("selection")} "normal" -> TextCategoryName {cons("normal")} "extern" "(" name:StrCon ")" -> TextCategoryName {cons("extern")} sorts TextAttribute context-free syntax "foreground-color" "(" color:Color ")" -> TextAttribute {cons("foreground-color")} "background-color" "(" color:Color ")" -> TextAttribute {cons("background-color")} "style" "(" style:TextStyle ")" -> TextAttribute {cons("style")} "font" "(" name:StrCon ")" -> TextAttribute {cons("font")} "size" "(" point:NatCon ")" -> TextAttribute {cons("size")} sorts ShortCut context-free syntax "shortcut" "(" "[" list:{KeyModifier ","}* "]" "," key:VirtualKey ")" -> ShortCut {cons("shortcut")} sorts TextStyle context-free syntax "bold" -> TextStyle {cons("bold")} "italics" -> TextStyle {cons("italics")} "underlined" -> TextStyle {cons("underlined")}