On-line: гостей 3. Всего: 3 [подробнее..]
АвторСообщение



Пост N: 31
Зарегистрирован: 15.12.09
ссылка на сообщение  Отправлено: 24.12.10 11:15. Заголовок: Препроцессор как отдельное приложение


Возможно ли убрать всё лишнее(для данного случая) и оставить только МОЩНЫЙ препроцессор,...
Его на мой взгляд можно пользовать для очень разнообразных функций
например:
#command ALTER <*txt*> => cl_sql('ALTER '+#<txt>)
#command BEGIN [WORK] => cl_begin()
#command CLOSE <cursor> => cl_close(<cursor>)
#command CLOSE DATABASE => cl_stop()
#command COMMIT [WORK] => cl_commit()
#command CONNECT <txt> [<mc> [<ml>]] => cl_init(<txt>,<mc>,<ml>)
#command CREATE <*txt*> => cl_sql('CREATE '+#<txt>)
#command DESCRIPTION <arr> [FROM] <table> => cl_desc(#<table>,<arr>)
#command DESCRIPTION <arr> [FROM] (<table>) => cl_desc(<table>,<arr>)

#command DELETE [FROM] <table> [WHERE <*txt*>] ;
=> cl_delete(#<table>,#<txt>)
#command DELETE [FROM] (<table>) [WHERE <*txt*>] ;
=> cl_delete(<table>,#<txt>)
#command DELETE [FROM] <table> [WHERE (<txt>)] ;
=> cl_delete(#<table>,<txt>)
#command DELETE [FROM] (<table>) [WHERE (<txt>)] ;
=> cl_delete(<table>,<txt>)

#command DISCONNECT => cl_stop()
#command DROP <*txt*> => cl_sql('DROP '+#<txt>)
#command FETCH <cursor> <nn> => cl_set(<cursor>,<nn>)
#command FETCH <cursor> [NEXT] => cl_next(<cursor>)
#command FETCH <cursor> PREVIOUS => cl_prev(<cursor>)
#command GRANT <*txt*> => cl_sql('GRANT '+#<txt>)
#command INITILIAZE <arr> [FROM] <table> => cl_clear(#<table>,<arr>)
#command INITILIAZE <arr> [FROM] (<table>) => cl_clear(<table>,<arr>)
#command INSERT [INTO] <*txt*> => cl_ins1(#<txt>)
#command INSERT [INTO] <table> FROM <*txt*> ;
=> cl_ins2(#<table>,#<txt>)
#command INSERT [INTO] (<table>) FROM <*txt*> ;
=> cl_ins2(<table>,#<txt>)
#command LOCK TABLE <table> <*txt*> ;
=> cl_sql('LOCK TABLE '+#<table>+' '+#<txt>)
#command LOCK TABLE (<table>) <*txt*> ;
=> cl_sql('LOCK TABLE '+<table>+' '+#<txt>)
#command ON ERROR STOP => cl_onerr(.t.)
#command ON ERROR CONTINUE => cl_onerr(.f.)

#command OPEN [<h:HOLD>] <cursor> [FOR] ;
SELECT [<sc:DISTINCT,UNIQUE>] <fl,...> INTO <vl,...> FROM <tl,...> ;
[WHERE <*txt*>] [ORDER BY <*ord*>];
=> <cursor>:=cl_open(<cursor>,<.sc.>,#<fl>,#<vl>,#<tl>,#<txt>,#<ord>,<.h.>)
#command OPEN [<h:HOLD>] <cursor> [FOR] ;
SELECT [<sc:DISTINCT,UNIQUE>] <fl,...> INTO <vl,...> FROM (<table>) ;
[WHERE <*txt*>] [ORDER BY <*ord*>];
=> <cursor>:=cl_open(<cursor>,<.sc.>,#<fl>,#<vl>,<table>,#<txt>,#<ord>,<.h.>)

#command OPEN [<h:HOLD>] <cursor> [FOR] ;
SELECT [<sc:DISTINCT,UNIQUE>] <fl,...> INTO <vl,...> FROM <tl,...> ;
[WHERE (<txt>)] [ORDER BY <*ord*>];
=> <cursor>:=cl_open(<cursor>,<.sc.>,#<fl>,#<vl>,#<tl>,<txt>,#<ord>,<.h.>)
#command OPEN [<h:HOLD>] <cursor> [FOR] ;
SELECT [<sc:DISTINCT,UNIQUE>] <fl,...> INTO <vl,...> FROM (<table>) ;
[WHERE (<txt>)] [ORDER BY <*ord*>];
=> <cursor>:=cl_open(<cursor>,<.sc.>,#<fl>,#<vl>,<table>,<txt>,#<ord>,<.h.>)

#command OPEN [<h:HOLD>] <cursor> [FOR] <str> => ;
<cursor>:=cl_open1(<cursor>,<str>,<.h.>)

#command REVOKE <*txt*> => cl_sql('REVOKE '+#<txt>)
#command ROLLBACK [WORK] => cl_roll()
#command ROLLBACK TO <*txt*> => cl_sql('ROLLBACK TO '+#<txt>)

#command SELECT [<sc:DISTINCT,UNIQUE>] <fl,...> INTO <vl,...> FROM <tl,...> ;
[WHERE <*txt*>] [ORDER BY <*ord*>];
=> cl_select(<.sc.>,#<fl>,#<vl>,#<tl>,#<txt>,#<ord>)
#command SELECT [<sc:DISTINCT,UNIQUE>] <fl,...> INTO <vl,...> FROM (<table>) ;
[WHERE <*txt*>] [ORDER BY <*ord*>];
=> cl_select(<.sc.>,#<fl>,#<vl>,<table>,#<txt>,#<ord>)
#command SELECT [<sc:DISTINCT,UNIQUE>] <fl,...> INTO <vl,...> FROM <tl,...> ;
[WHERE (<txt>)] [ORDER BY <*ord*>];
=> cl_select(<.sc.>,#<fl>,#<vl>,#<tl>,<txt>,#<ord>)
#command SELECT [<sc:DISTINCT,UNIQUE>] <fl,...> INTO <vl,...> FROM (<table>) ;
[WHERE (<txt>)] [ORDER BY <*ord*>];
=> cl_select(<.sc.>,#<fl>,#<vl>,<table>,<txt>,#<ord>)

#command SAVEPOINT <*txt*> => cl_sqli('SAVEPOINT '+#<txt>)
#command STOP => cl_stop()
#command UNLOCK TABLE <table> => cl_sql('UNLOCK TABLE '+#<table>)
#command UNLOCK TABLE (<table>) => cl_sql('UNLOCK TABLE '+<table>)

#command UPDATE <table> SET <set,...> [WHERE <*txt*>] ;
=> cl_upd1(#<table>,#<set>,#<txt>)
#command UPDATE (<table>) SET <set,...> [WHERE <*txt*>] ;
=> cl_upd1(<table>,#<set>,#<txt>)
#command UPDATE <table> SET <set,...> [WHERE (<txt>)] ;
=> cl_upd1(#<table>,#<set>,<txt>)
#command UPDATE (<table>) SET <set,...> [WHERE (<txt>)] ;
=> cl_upd1(<table>,#<set>,<txt>)

#command UPDATE <table> FROM <arr> [WHERE <*txt*>] ;
=> cl_upd2(#<table>,<arr>,#<txt>)
#command UPDATE (<table>) FROM <arr> [WHERE <*txt*>] ;
=> cl_upd2(<table>,<arr>,#<txt>)
#command UPDATE <table> FROM <arr> [WHERE (<txt>)] ;
=> cl_upd2(#<table>,<arr>,<txt>)
#command UPDATE (<table>) FROM <arr> [WHERE (<txt>)] ;
=> cl_upd2(<table>,<arr>,<txt>)

memvar status

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 8 [только новые]





Пост N: 98
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 24.12.10 17:02. Заголовок: pureproft пишет: Во..


pureproft пишет:

 цитата:
Возможно ли убрать всё лишнее(для данного случая) и оставить только МОЩНЫЙ препроцессор,...
Его на мой взгляд можно пользовать для очень разнообразных функций



А можно конкретней про то что написали? Что хотите получить в результате?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1732
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 24.12.10 17:08. Заголовок: Что имеется в виду ?..


Что имеется в виду ? В харборе же есть отдельная утилита - hbpp, на входе получает *.prg, На выходе - файл *.ppo

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 33
Зарегистрирован: 15.12.09
ссылка на сообщение  Отправлено: 24.12.10 17:18. Заголовок: Это скорее гипотеза...


Это скорее гипотеза.... мне кажется данный препроцессор может жить самостоятельно над прочими схожими по синтаксису языками...
В серьёз с (x)Harbour не разбирался, но есть подозрение на верность гипотезы

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 471
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 24.12.10 17:20. Заголовок: Препроцессору все ра..


Препроцессору все равно, чем после него обрабатывается код.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1733
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 24.12.10 17:28. Заголовок: Для паскаля, С и под..


Для паскаля, С и подобных им языков харборовский препроцессор нельзя применить, поскольку операторы заканчиваются точкой с запятой, и есть операторные скобки
Для некоторых других языков - подойдет
К тому же препроцессор обрабатывает файл std.ch, и команды в нем могут противоречить синтаксису чужого языка. Но правда std.ch можно подменить

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 34
Зарегистрирован: 15.12.09
ссылка на сообщение  Отправлено: 24.12.10 17:33. Заголовок: Pasha пишет: Для п..


Pasha пишет:

 цитата:
Для паскаля, С и подобных им языков харборовский препроцессор нельзя применить, поскольку операторы заканчиваются точкой с запятой, и есть операторные скобки
Для некоторых других языков - подойдет
К тому же препроцессор обрабатывает файл std.ch, и команды в нем могут противоречить синтаксису чужого языка. Но правда std.ch можно подменить


я про подмену и говорю.... пример SQL не мой, это посредник для Оракла...
Может кто то из опытных проанализировать необходимый и достаточный минимум, и особенно интересно, возможно ли пересобрать с возможностью использования кирилицы в конструкциях

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1734
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 24.12.10 17:39. Заголовок: Жаль, Кресин сюда се..


Жаль, Кресин сюда сейчас не заглядывает. Он этот препроцессор как раз писал. Правда, в 2006-м его переписал druzus

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 35
Зарегистрирован: 15.12.09
ссылка на сообщение  Отправлено: 24.12.10 17:59. Заголовок: кстати во флейме моя..


кстати во флейме моя тема про Гтк-сервер, может быть иллюстрацией наращивания препроцессора (NoStd.ch) под заказную функциональность, или под то, что я называю OPL owner(собственный) если возможна поддержка прочих языков(Абхазского,...,Иврита,.....,Якутского)

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 301
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет