gtkbuilder.rnc 1.95 KB
Newer Older
1 2
start = element interface {
  attribute domain { text } ?,
3
  ( requires | object | template | menu ) *
4 5 6 7 8 9 10 11
}

requires = element requires {
  attribute lib { text },
  attribute version { text }
}

object = element object {
12
  attribute id { xsd:ID } ?,
13 14 15 16 17 18
  attribute class { text },
  attribute type-func { text } ?,
  attribute constructor { text } ?,
  (property | signal | child | ANY) *
}

19 20 21 22 23 24
template = element template {
  attribute class { text },
  attribute parent { text },
  (property | signal | child | ANY) *
}

25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
property = element property {
  attribute name { text },
  attribute translatable { "yes" | "no" } ?,
  attribute comments { text } ?,
  attribute context { text } ?,
  text ?
}

signal = element signal {
  attribute name { text },
  attribute handler { text },
  attribute after { text } ?,
  attribute swapped { text } ?,
  attribute object { text } ?,
  attribute last_modification_time { text } ?,
  empty
}

child = element child {
  attribute type { text } ?,
  attribute internal-child { text } ?,
  (object | ANY)*
}

menu = element menu {
  attribute id { xsd:ID },
  attribute domain { text } ?,
  (item | submenu | section) *
}

item = element item {
  attribute id { xsd:ID } ?,
  (attribute_ | link) *
}

attribute_ = element attribute {
  attribute name { text },
  attribute type { text } ?,
  attribute translatable { "yes" | "no" } ?,
  attribute context { text } ?,
  attribute comments { text } ?,
  text ?
}

link = element link {
  attribute id { xsd:ID } ?,
  attribute name { text },
  item *
}

submenu = element submenu {
  attribute id { xsd:ID } ?,
  (attribute_ | item | submenu | section) *
}

section = element section {
  attribute id { xsd:ID } ?,
  (attribute_ | item | submenu | section) *
}

85
ANY = element * - (interface | requires | object | template | property | signal | child | menu | item | attribute | link | submenu | section) {
86 87 88 89 90 91 92
  attribute * { text } *,
  (ALL * & text ?)
}
ALL = element * {
  attribute * { text } *,
  (ALL * & text ?)
}