Hyp.     = { Operator x Force }
Operator = { OR, XOR, AND }
Force    = [0..100]



Group:
======
- MENU_V     = FRAME*
      FRAME  = ( BUTTON | CHECK )*
      BUTTON = ( TEXT | ICON | SHORTCUT )*

:: IN_WIN_OUT 

- MENU_H     = FRAME* 
      FRAME  = ( BUTTON | CHECK )*

:: IN_WIN_OUT 

- TAB        = BUTTON *
      BUTTON = FRAME *

:: BUTTON, IN_WIN_OUT
 
- WINDOW_IN  = ( TREE | FRAME | BUTTON | RAW | CHECK )*

:: IN_WIN_IN

- WINDOW_OUT = ( MENU_V | MENU_H | TAB | WINDOW_IN | FRAME | RAW | BUTTON | CHECK )*

:: IN_WIN_OUT

- FRAME      = ( FRAME | WINDOW_IN | TAB | RAW | BUTTON | CHECK )*

:: IN_FRAME

- TREE       = ( TREE | RAW | BUTTON | CHECK )*

:: BUTTON + RAW = ICON

INTERNAL_GROUP:
===============
+ IN_FRAME
+ IN_WIN_OUT
+ IN_WIN_IN

ELEVATOR :: BUTTON ?

ITEM: 
=====
+ RAW              = ( TEXT | ICON | TEXT_INPUT )*
+ BUTTON -> Action = ( TEXT | ICON | TEXT_INPUT | SHORTCUT )*
+ CHECK -> Action  = ( TEXT | ICON | TEXT_INPUT | SHORTCUT )*

SUB_ITEM:
=========
+ TEXT
+ SHORTCUT (racourcis) (-> Action parent)
+ ICON
+ TEXT_INPUT -> Action

SIZE: H x V
=====
MENU_V     = Max(x) ; Sum(x)
MENU_H     = Sum(x) ; Max(x)
TAB        = Max(x) ; Max(x)
WINDOW_IN  = Taille fixée par la taille de l'écran.
WINDOW_OUT = Max(x) ; Max(x)
FRAME      = Max(x) ; Max(x)
TREE       = Max(x) ; Sum(x)