Я работаю с несколькими грамматиками в репл. Грамматики используют одни и те же имена для некоторых из своих правил.
В одном из рецептов документации упоминается полная квалификация , чтобы устранить неоднозначность аннотаций типов при сопоставлении с образцом функции (это примечание load
функция, но не в коде этой страницы - .jar это правильно). Но это может стать утомительным, так что, возможно, есть псевдонимы для импорта (как в Python import regex as r
) ?! И использование полной квалификации в первом аргументе функции parse
, похоже, не помогает устранить неоднозначность всех правил синтаксического анализа, которые вызываются рекурсивно, parse(#lang::java::\syntax::Java18::CompilationUnit, src)
. По крайней мере, это приводит к странным ошибкам, если я также импортирую lang :: java :: \ syntax :: Java15.
В целом, как безопасно обрабатывать символы из разных модулей с одинаковыми именами?
В качестве альтернативы, есть ли способ "выгрузить" модуль в repl?