Alright, here is the first draft of the UDL grammars using Antlr
expressions.

Any comments and suggestions are welcome. Don't miss your chance to
shape
UDL.

-----------------------------------------------------------------------------------------
grammar Udl;

uid
        :       baseUid
        |       listUid
        |       tableUid
        ;

baseUid
        :       ID
        ;

listUid
        :       '{' INDEX '}' 'as' ID
        ;

tableUid
        :       tableHeaderUid
        |       tableFooterUid
        |       tableBodyUid
        ;

tableHeaderUid
        :       '{' 'header' ':' INDEX '}' 'as' ID
        ;

tableFooterUid
        :       '{' 'footer' ':' INDEX '}' 'as' ID
        ;

tableBodyUid
        :       '{' 'row' ':' INDEX ',' 'column' ':' INDEX '}' 'as' ID
        |       '{' 'row' '=' ID ',' 'column' ':' INDEX '}' 'as' ID
        |       '{' 'row' ':' INDEX ',' 'column' '=' ID '}' 'as' ID
        |       '{' 'row' '=' ID ',' 'column' '=' ID '}' 'as' ID
        |       '{' 'tbody' ':' INDEX ',' 'row' ':' INDEX ',' 'column'
':' INDEX '}' 'as' ID
        |       '{' 'tbody' ':' INDEX ',' 'row' '=' ID ',' 'column' ':'
INDEX '}' 'as' ID
        |       '{' 'tbody' ':' INDEX ',' 'row' ':' INDEX ',' 'column'
'=' ID '}' 'as' ID
        |       '{' 'tbody' ':' INDEX ',' 'row' '=' id1=ID ',' 'column' '='
ID '}' 'as' ID
        ;

fragment LETTER : ('a'..'z' | 'A'..'Z') ;
fragment DIGIT : '0'..'9';
INDEX   :       (DIGIT+ |'all' | 'odd' | 'even' | 'any' | 'first' |
'last' );
ID      :       LETTER (LETTER | DIGIT)*;
WS      :       (' ' | '\t' | '\n' | '\r' | '\f')+ {$channel = HIDDEN;};
-------------------------------------------------------------------------------------------------

On Feb 18, 4:37 pm, Jian Fang <[email protected]> wrote:
> If no objections, I would like to use the following format for table body:
>
> "{tbody : 1, row : 2, column : 3} as Search"
>
> and
>
> "{tbody : 1, row = 2, column = bad} as Search"
>
> where the ":" defines a value and "=" is a reference to other id, for
> instance, header column id, then
> Tellurium will try to handle the case that the column keeps changing when a
> user drags the column around.
>
> On Thu, Feb 18, 2010 at 1:00 PM, Jian Fang <[email protected]> wrote:
> > Hi,
>
> > I start to work on the UID description language (UDL). One goal is to add
> > name reference for UI elements in a List or Table.
>
> > I could have the following formats, where assume Search is name that you
> > could reference the element.
>
> > "Search as tbody: 1, row:1, column:4"
> > "Search as ( tbody: 1, row:1, column:4)"
> > "Search as {tbody: 1, row:1, column:4}"
>
> > or
>
> > "tbody: 1, row:1, column:4 as Search"
> > "(tbody: 1, row:1, column:4) as Search"
> > "{tbody: 1, row:1, column:4}" as Search"
>
> > Any preference or even better suggestions?
>
> > Thanks,
>
> > Jian

-- 
You received this message because you are subscribed to the Google Groups 
"tellurium-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/tellurium-users?hl=en.

Reply via email to