Вот пример моего синтаксиса:
@style default {
colors{
baseColor:#00FF00;
exColor:#00AA00;
}
dims{
blockPadding:5dp
}
}
@style dark:default {
colors{
baseColor:#0000FF;
}
}
block {
color:@colors.baseColor;
padding:@dims.blockPadding;
}
newblock:block{
width:100%;
height:100%;
padding:@colors.exColor;
}
Вот что я смог составить (EBNF):
<style> ::= "@style" " " <word> <block>
<extend> ::= <word> ":" <word>
<class> ::= (<word> | <extend>) <block>
<block> ::= "{" <assign>* "}"
<number> ::= <digit> | <number> <digit>
<assign> ::= <word> ":" <word> ";"
<word> ::= <symb> | <word> <symb>
<symb> ::= ([0-9] | [a-z])+
<digit> ::= [0-9]
Правильно ли я всё описал ? Нужно ли что-то исправить ?