Код: Выделить всё
kinds
name test_val_1
length ten test_val_2
uses
use1 testcase_1
use2 testcase_2
- должен быть корневым узлом, под которым дочерние узлы имеют имя, длину и использование
Код: Выделить всё
kinds
- должен иметь еще один дочерний узел, значение которого отделено пробелом после имени, в примере это будет test_val_1
Код: Выделить всё
name
- должен иметь два дочерних узла: десять и test_val_2 в приведенном выше примере
Код: Выделить всё
lengthУзел
- должен иметь два дочерних узла: use1 и use2, которые, в свою очередь, будут иметь дочерние узлы testcase_1 и testcase_2 соответственно.
Код: Выделить всё
uses
Код: Выделить всё
grammar Test;
test : entry (NEWLINE+ entry)* NEWLINE* EOF;
entry : label;
label : KEY_OR_VALUE (SPACE value)*;
nestedEntry : label;
value : KEY_OR_VALUE+;
KEY_OR_VALUE : [a-zA-Z_]+[a-zA-Z_0-9.]*;
SPACE : [ ]+;
NEWLINE : [\r\n]+;

Я новичок в грамматике ANTLR, и буду благодарен за любую помощь.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -structure