Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками
Вход или Регистрация
Делаю разбор pts скриптов, буду делать декомпилятор, и простой анализатор. Думаю перенести на java через модель акторов, идеально подходить. Парсинuг по типа org.xml.sax.
Если у вас есть пожелание, чтобы хотели видеть, или какую программу специально для работы с pts данными, можете отписать, если будет возможность смогу реализовать.
Версия 0.0.5
- Добавил multihandler для парсера. Теперь можно задать парсер с гл
- Добавил сканер имен интрукций, из содержимого
- Добавил сканер имен функций. Извлекаются из комментариев
- Добавил сканер имен обработчико. Извлекаются из комментариев
- Обновил архив
Версия 0.0.4
- исправлена ошибка при парсинге параметров. Встречаются параметры без типа.
- Добавлен метод обработки, новой строки. (Handler.newLine)
- Буфферизировать чтение токенов наперед.
- Орагнизовать обратный просмотр токеном и прямой, без изменения курсора в lexer.(next(int) prev(int)).
- Возврат пробельных символов, как токены. Добавлен флаг для игнорирования пробельных символов.
- консольное приложение для разделения ai.obj, на файлы.
TODO
- просмотр токенов через handler.
- добавить handler для анализа кода
- сделать тесты - написать статический анализ через хендлер(проверку валидных лейблов, строк(данных), параметров, свойст, количество строк в class handler, правельный порядок наследования и декларирования, не валидные хендлеры и тп )
- Буфферизировать чтение токенов наперед.
- Орагнизовать обратный просмотр токеном и прямой, без изменения курсора в lexer.(next(int) prev(int)).
- Возврат пробельных символов, как токены. Добавлен флаг для игнорирования пробельных символов.
- консольное приложение для разделения ai.obj, на файлы.
Загрузить консольное приложени, можно, в разделе
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками
Вход или Регистрация
.
На данный момент, подерживается одна команда
Для использование необходима установленная scala 2.11.8 и jdk 1.8
Код:
split --dst dst_dir --src src_file [-x]
Команда для разделения файла ai.obj, по файлам-классам.
Параметры:
--dst папка назначения, куда будут сохраненны все файлы
--src файл источник, откуда извлекаются все классы
Флаги:
-x - флаг указывает на создание папки-назначения, если её не существует, иначе отображается ошибка. Опционально.
Пример
Код:
ai split --dst target --src ai.obj -x
Будет создана папка target, если не существует.
Все классы содержащиеся в ai.obj будут записанны в отдельные файлы, для каждого класcа, имя файла ${class_name}.txt. Файлы будут созданы, или перезаписаны, в директории target.
Дополнительно будет созданно два файла
__globals.txt - содержит заголовок ai.obj
__order.txt - содержит список классов, в порядке их чтения, из ai.obj
Версия 0.0.5
- Добавил multihandler для парсера. Теперь можно задать парсер с гл
- Добавил сканер имен интрукций, из содержимого
- Добавил сканер имен функций. Извлекаются из комментариев
- Добавил сканер имен обработчико. Извлекаются из комментариев
- Обновил архив
Пример
Код:
val test = Handlers.instructions :: Handlers.hnames :: Handlers.fnames :: Nil
Parser("ai.obj", test).parse
test.foreach { _.print(Console.out) }
Результат примера.
Отображает, в отсортированом виде, список имен: инструкций, обработчиков, функций.
add
add_string
and
assign
assign4
bit_and
bit_or
branch_false
branch_true
call_super
div
equal
exit_handler
fetch_d
fetch_f
fetch_i
fetch_i4
func_call
greater
greater_equal
jump
less
less_equal
mod
mul
negate
not
not_equal
or
push_const
push_event
push_parameter
push_property
push_reg_sp
push_string
shift_sp
sub
в компиляторе проблем нету, у меня проблема интерпритор, сделать подход для java. Чтобы можно было транслировать код в javabytecode, и запускать. Или напрямую интерпритировать.
Я использую
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками
Вход или Регистрация
Буду декомпилить в java и обратно, или непосредственно в java byte code.