Ошибка при использовании негодяйской грамматики Java15

Я попытался проанализировать некоторый код Java, используя грамматику Java15 Rascal. Однако он не принимает объявление локальной переменной параметризованных типов. Более подробно:

  • это не признает List<String> files = ...
  • это признает final List<String> files = ...
  • это признает List<String, String> files = ...

Мне кажется, что проблема связана с некоторой двусмысленностью, связанной с LocalVarDecStatements и выражениями, включающими "<" и ">". Тем не менее, я не мог понять, как решить проблему.

1 ответ

Я не из тех, кто говорит "работает на меня", но это делает:-)

rascal>import lang::java::\syntax::Java15;
ok
rascal>import ParseTree;
ok
rascal>parse(#LocalVarDec, "List\<String\> files = null")
LocalVarDec: (LocalVarDec) `List<String> files = null`

Не могли бы вы привести пример или упрощенный пример, в котором есть ошибка?

Другие вопросы по тегам