Понимание деревьев в ANTLR

Со сборкой-сателлитом (вместо resx файла) можно перечислить все строки на сервере, где Вы знаете язык, таким образом генерируя объект JavaScript только со строками для корректного языка.

Что-то вроде этого работает на нас (код VB.NET):

Dim rm As New ResourceManager([resource name], [your assembly])
Dim rs As ResourceSet = 
    rm.GetResourceSet(Thread.CurrentThread.CurrentCulture, True, True)
For Each kvp As DictionaryEntry In rs
    [Write out kvp.Key and kvp.Value]
Next

Однако мы не нашли способ сделать это для .resx файлов все же, печально.

6
задан Marty Pitt 24 November 2009 в 16:14
поделиться

2 ответа

Грамматика Java-6 в верхней части раздела обмена файлами на antlr.org не включает построение дерева. Вам нужно сделать две вещи. Во-первых, сообщите ANTLR, что вы хотите построить AST:

options {
    output=AST;
}

Во-вторых, вам нужно сообщить ему, как должно выглядеть дерево, либо с помощью операторов дерева, либо с помощью правил перезаписи. См. Документацию по построению дерева . Обычно я использую и то, и другое одновременно.

6
ответ дан 17 December 2019 в 00:10
поделиться

Чтобы построить дерево, вы должны установить output = AST. (Абстрактное синтаксическое дерево)

Насколько мне известно, в ANTLR только 1 токен может быть корнем дерева, поэтому вы не можете получить именно то, что ищете, но можете приблизиться.

Проверять, выписываться: http://www.antlr.org/wiki/display/ANTLR3/Tree+construction

1
ответ дан 17 December 2019 в 00:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: