Return to Contents

2.1: EBNF

This is an informal specification in the EBNF metalanguage. If this doesn't make sense, please see the discussion and examples in the later sections.

config = line config
| empty

line = option ";"
| context
| functiondef ";"
| binding ";"
| unbinding ";"

option = option-name "=" type
| option-name "is!" type

option-name = "DisplayTitlebar"
| "FocusPolicy"
| ....

type = boolean
| integer
| string
| enumeration

boolean = "True" | "False"

...

context = context-option context-name type "{" config "}"

context-option = "Not" | "TransientFor" | "HasTransient"

context-name = "IsShaped" | "WindowName" | ....

function-def = "Define" string "{" function-list "}"

function-list = function ";" function-list
| function ";"

function = function-name "(" arglist ")"

function-name = "Launch" | "Quit" | "Invoke" | ....

arglist = arglist "," type
| type

binding = "BindKey" string function
| "BindKeyRelease" string function
| "BindButton" location string function
| "BindDrag" location string function

unbinding = "UnBindKey" string
| "UnBindKeyRelease" string
| "UnBindButton" location string
| "UnBindDrag" location string

location = "TitleBar" | "Frame"


Return to Contents