Перейти к содержимому
Programist135

Сканер функций в библиотеках

Рекомендуемые сообщения

Здравствуйте снова! Вы скачали библиотеку, но не знаете как ей пользоваться? Вы начинаете перебирать всю библиотеку в поиске функций и их методов? Хватит!
Сегодня накануне вечера решил написать я небольшую программку, которая сканирует все глобальные функции в библиотеках. Работает она по такому методу:

Сканируем каждую строчку -> если в начале строчки есть фраза "function", читаем всё то, что после этой фразы.



Скачать её можно командой >>> pastebin get GH7BnbG2 /fncScan.lua

При запуске программы вам выдают запрос ввода пути к библиотеке. Если она не существует, программа выдаст предупреждение. Если после сканирования ни одна функция не была найдена, значит файл НЕ является библиотекой (ну какая же библиотека без функций :D)
Но всё же есть небольшие глюки. Например, результат скана библиотеки forms:

 

post-11994-0-68753300-1445878763_thumb.png

Вскоре всё это исправлю. А с вами был Programist135, если есть предложения по исправлению глюков, обязательно сообщите мне, я постараюсь исправить. До новых встреч!

Изменено пользователем Programist135

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

я думаю это можно исправить просто окончанием проверки на закрывающей скобке

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
окончанием проверки на закрывающей скобке

Я хотел попробовать так сделать, но проблема: я не знаю как побуквенно прочитать строчку.

Изменено пользователем Programist135

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

  1. Вырубай свой шрифт у стандартному более-менее!!! Ты ещё вот такими пиши, ага. 14-16 пунктов, иначе вырвиглазно.

А `lua` и =libname уже запретили? Банят за это? ИМХО, бессмысленна прога немного в этом плане... Хотя, конечно, есть исключения, но проще тогда код глянуть и понять работу.

Ну, и по умолчанию в файл — фигня фигнёй. Во-первых, путь нужно подавать как аргумент командной строки. Во-вторых, по умолчанию выводить на консоль, по флагу передавать в файл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Фингер, а некоторые библиотеки не показывают методы функции! Просто возвращают function и всё. Эта хоть методы показывает.

post-11994-0-04194800-1445880120_thumb.png


 

 

путь нужно подавать как аргумент командной строки

ОК, сделаю.

 

 

по умолчанию выводить на консоль

В этом смысла нет, поскольку все методы на всём экране не уместятся, а прокрутить консоль вверх нельзя. Файл можно хоть крутить куда хочешь.

Изменено пользователем Programist135

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В этом смысла нет, поскольку все методы на всём экране не уместятся, а прокрутить консоль вверх нельзя. Файл можно хоть крутить куда хочешь.

Ты уверен? Проверь-ка lib/process.lua. Либа. Уместилось? Маааааааагия. Надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • Вырубай свой шрифт у стандартному более-менее!!! Ты ещё вот такими пиши, ага. 14-16 пунктов, иначе вырвиглазно.
  • А `lua` и =libname уже запретили? Банят за это? ИМХО, бессмысленна прога немного в этом плане... Хотя, конечно, есть исключения, но проще тогда код глянуть и понять работу.
  • Ну, и по умолчанию в файл — фигня фигнёй. Во-первых, путь нужно подавать как аргумент командной строки. Во-вторых, по умолчанию выводить на консоль, по флагу передавать в файл.

Да ладно, фин не ругайся, пареньку всего 11 лет, а уже кодит хоть что-то, многие дети в этом возрасте считать научились не то что бы код писать.

...

Используй string.match для определения функции, а описание считывай как комментарии над ней.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Да ладно, фин не ругайся, пареньку всего 11 лет, а уже кодит хоть что-то, многие дети в этом возрасте считать научились не то что бы код писать.

 

Это даааа. Молодец. Тут и вопросов нет. Байтика, я думаю, можно выдать, невзирая ни на что=)

 

 

 

А с вами был Programist135, если есть предложения по исправлению глюков, обязательно сообщите мне, я постараюсь исправить. До новых встреч!

:)  

 

П.С. А вообще не понятен до конца сам замысел. Что толку от этих названий фанкшинов. Нормальная библа где-то по идее и так документирована, или есть по идее общеизвестный метод, имя которого принято всеми "библоделами", и он принтит документэйшн весь.

 

А нормальная библа при ошибке стопает программу и еще и выводит стринг с требуемыми аргументами и их типами и подробным описанием и что вызвало ошибку, или типа того. А если библа каляка маляка непонятная и не понятно, что она вообще делает и для чего она, то названия методов нас не спасут же, по идее?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...