Что нового

Как распарсить код Autoit

_dron_

Знающий
Сообщения
84
Репутация
8
Какие нужны регулярные выражения для того что бы распарсить код:
...:::исправлено:::...
Код:
Class template extends Object
   public $data = 3
   public Func say()
	  MsgBox(0,"",$this->data)
   EndFunc
EndClass

$sc = new template()
$sc->say()
$sc->data = 12


Собственно нужны выражения которые помогут разобрать класс - узнать имя, переменные, методы. и вызовы методов класса. создание класса
Все это требуется для написания транслятора! :whistle:


Добавлено:
Сообщение автоматически объединено:

у меня уже есть
Код:
([Cc]lass((?s).*?)[Ee]nd[Cc]lass)
([Ff]unc((?s).*?)[Ee]nd[Ff]unc)

нужно расспарсить (получить)$sc->data, $sc->say(), (записать)$sc->data = 3
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [RegExp] Помогите собрать регулярные выражения

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[RegExp] Помогите собрать регулярные выражения" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Глобальный модератор.
 
Автор
D

_dron_

Знающий
Сообщения
84
Репутация
8
Re: [RegExp] Как распарсить код Autoit

Код:
$sc = new template()
;или
$sc = new template(1,2,3,"text")

Код:
(\$[[:word:]]{1,}[ ]{0,}\=[ ]{0,}new[[:print:]]{1,}\([[:print:]]{0,}\))
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [RegExp] Как распарсить код Autoit

_dron_,
Было бы лучше, если бы Вы показали отдельно обрабатываемый код и то, что надо из него получить. Я, например, пока не понимаю, что Вам надо.
 
Автор
D

_dron_

Знающий
Сообщения
84
Репутация
8
Re: [RegExp] Как распарсить код Autoit

Ну как бы я надеялся что те кто понимает RegExp помогут сформулировать выражения которые подойдут под эти случаии! :-\
А так у меня почти готово осталось пара правок и 1 выражение собрать!!!
Наверное тему надо удалить или переместить!
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [RegExp] Как распарсить код Autoit

Это поди очередной чувак который пишет очередной "свой и нтерпритатор AutoIt". Хочешь классы, пиши на С++


Добавлено:
Сообщение автоматически объединено:

И голосовалка в стиле опросов почты россии
"Оцените работу почты россии:
*Изумительно
*Прекрасно
*Отлично
*Хорошо
*Нормально"
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Re: [RegExp] Как распарсить код Autoit

Belfigor

Классы есть не только в C++ ;)
 
Автор
D

_dron_

Знающий
Сообщения
84
Репутация
8
Re: [RegExp] Как распарсить код Autoit

Это поди очередной чувак который пишет очередной "свой и нтерпритатор AutoIt". Хочешь классы, пиши на С++

извините ваше величество что не угодил!

А классы в с++ на самом деле условны.


Добавлено:
Сообщение автоматически объединено:

и нет я не собираюсь писать еще один интерпретатор! это транслятор - расширение языка!!!
 
Автор
D

_dron_

Знающий
Сообщения
84
Репутация
8
Re: [RegExp] Как распарсить код Autoit (нужна помошь)

Уже есть
Права доступа:
Public - доступ к свойству или методу возможен из любого места программы (чтение\запись\переопределение)
Private - Доступ возможен только из методов класса (чтение\запись\переопределение)
Protected - Доступ возможен только из методов класса (только чтение)

Расширение:
extends - класс потомком которого является новый класс. будут доступны все методы и свойства родителя. возможно переопределение свойств и методов с правами Private, Public а переопределение Protected запрещено.

Сейчас доделываю базовый класс и обработку ошибок
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Re: [RegExp] Как распарсить код Autoit (нужна помошь)

Круто, но бесит такой доступ к методу

Код:
$sc->say()
$sc->data = 12


через точку мне кажется было бы лучше.

Код:
$sc.say()
$sc.data = 12
 
Автор
D

_dron_

Знающий
Сообщения
84
Репутация
8
Re: [RegExp] Как распарсить код Autoit (нужна помошь)

путаница будет, что это объект или класс!

Код:
;доступ к классу
$sc->say()
$sc->data = 12
;доступ к обекту
$oIE.navigate("http://autoit-script.ru")

имхо так понятнее мне кажется
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Re: Как распарсить код Autoit (требуется перенести тему)

_dron_

В Autoit есть возможность создавать реальные объекты, но нет возможности применить права доступа к методам, тогда бы и путаницы не было.
 
Автор
D

_dron_

Знающий
Сообщения
84
Репутация
8
Re: Как распарсить код Autoit (требуется перенести тему)

я это видел.
только DllCallbackRegister предназначен для передачи в Dll.
Меня смущают эти вызовы DllCallbackRegister и ObjCreateInterface
 
Верх