Я столкнулся с подобной проблемой при сохранении конвейеров (используя sklearn.joblib). Оказывается, joblib не хранит код, используемый вашим конвейером. В моем случае проблема была решена путем обеспечения доступности всех модулей python, используемых в конвейере и / или классификаторе, в одном месте относительно модуля создания конвейера.
Для меня это означало копирование и сохранение my_transformers.py вместе с конвейером и классификационными заданиями. Затем при использовании / установке их в производственном процессе поместите my_transformers.py в то же место относительно модуля, который создал мой конвейер.
Regex хорош для использования в компиляторе, но только для распознавания маркеров (т.е. никакие рекурсивные структуры).
Классический способ записать компилятор имеет лексический анализатор для распознавания маркеров, синтаксического анализатора для распознавания структуры, семантического анализатора для распознавания значения, промежуточного генератора кода, оптимизатора, и продержитесь целевой генератор кода. Любой из тех шагов может быть объединен или пропущен полностью, если делает компилятор легче записать.
Было много инструментов, разработанных для помощи с этим процессом. Для Java можно посмотреть на
Взгляните на JavaCC, синтаксический анализатор языка для Java. Это очень просто в использовании, и приобрести навык
Я рекомендовал бы ANTLR, прежде всего, из-за его выходных возможностей поколения через StringTemplate.
То, что лучше, - то, что книга Terence Parr по тому же является безусловно одной из лучших книг, ориентированных к записи компиляторов с парсером-генератором.
Затем у Вас есть ANTLRWorks, который позволяет Вам изучить и отладить свою грамматику на лету.
В довершение ко всему Wiki ANTLR + документация, (хотя не достаточно всесторонний к моей симпатии), является хорошим местом для начинаний для любого новичка. Это помогло мне обновить знание о компиляторе, пишущем через неделю.
Пойдите классик - Закон + Yacc. В Java это записывает JAX и javacc. Javacc даже имеет некоторые грамматики Java, готовые к контролю.
JFlex является генератором сканера, который, согласно руководству, разработан для работы с КУБКОМ парсера-генератора.
Одна из основных целей дизайна JFlex состояла в том, чтобы сделать взаимодействие через интерфейс со свободным КУБКОМ парсера-генератора Java столь же легким как возможно [так].
Это также имеет поддержку BYACC/J, который, как его имя предполагает, является портом Беркли YACC, чтобы сгенерировать код Java.
Я использовал сам JFlex и любил его. Howeveer, проект, который я делал, был достаточно прост, что я записал синтаксический анализатор вручную, таким образом, я не знаю, насколько хороший или КУБОК или BYACC/J.
Я рекомендовал бы использовать или метакомпилятор как ANTLR или простой синтаксический анализатор combinator библиотека. Функциональный Java имеет синтаксический анализатор combinator API. Существует также JParsec. Оба из них основаны на библиотеке Parsec для Haskell.
Синтаксический анализатор combinators является хорошим выбором. Популярная реализация Java является JParsec.
Я использовал SableCC в своем курсе компилятора, хотя не по выбору.
Я не забываю находить это очень большим и тяжелым с большим акцентом на чистоту, чем удобство (никакой приоритет оператора или что-либо; необходимо заявить это в грамматике).
Я, вероятно, хотел бы использовать что-то еще, если бы у меня был выбор. Мой опыт с yacc (для C) и счастливый (для Haskell) оба был приятен.
Если Вы собираетесь пойти хардкор, добавьте немного http://llvm.org в соединении :)
Я предлагаю, чтобы Вы посмотрели на в источнике для BeanShell. Это имеет компилятор для Java и довольно просто читать.
dynamic
является контекстуальным ключевым словом C # 4,0. Четвертая редакция спецификации ECMA C # не относится к C # 4.0. (Обратите внимание на 2006 дату публикации.)
MSDN описывает ее как ключевое слово.
Это также в этой таблице контекстуальных ключевых слов . (Прокрутите вниз.)
-121--4154878-http://java-source.net/open-source/parser-generators и http://catalog.compilertools.net/java.html содержат каталоги инструментов для этого. Сравните также вопрос stackoverflow Как выполнить синтаксический анализ кода для построения компилятора на Java? .
-121--2965346-http://java-source.net/open-source/parser-generators и http://catalog.compilertools.net/java.html содержат каталоги инструментов для этого. Сравните также вопрос Stackoverflow Альтернативы регулярным выражениям .