This is an old revision of the document!
A XCend file consists mainly of a pattern, which has to be an element at the root:
element <name> {
<body>
}
In general a pattern is a sequence of element and attribute declarations:
element <name> (?|*|+)? {
<body>
}
# and
attribute <name> (?)? {
<body>
}
Elements can be optional, repeated or repeated but have to appear at least once. Attributes can only be optional.
A body can either be empty, pattern, type or enumeration declaration:
element types {
}
# and
element types {
string | integer | ident
}
# and
element enumeration {
"Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday"
}