?

Log in

No account? Create an account

Previous Entry Share Next Entry
Икс Шаблоны теперь с дефайнами
mikelsv
По следам http://mikelsv.livejournal.com/1737.html.
Шаблоны генерятся, все хорошо и красиво, но мало. Поэтому я шустренько передрал код из моих языков программирования msl и mcc и создал новую разработку xcc.

Возможно в  будущем xcc станет компилятором. На данный момент он умеет разбирать код c++ на логические блоки и применять дефайны. Короче реализован препроцессор и разбор кода.

Дальше останется преобразовать логические блоки в машинный код или другой формат и выполнять. ( mcc генерит свое подобие ассемблера и выполняет его).

Вообще планировалась задача - обрабатывать шаблоны template и генерировать код.

Но дальше пока не будет, появились более приоритетные задачи, чем написать свой компилятор. :)

Код там же:  ftp://source:source@source.centerix.ru/source/msv/xtemplate . + бинарники для линукса и винды.
Эм, я закомментировал  генерацию шаблонов, чтобы не мешались //AnalysFile(file);     если нужна, надо убрать слеши.


Тестирование препроцессора и разборщика кода: http://www.loglist.org/?show=i9pi4j9

Work time - время обработки.
Memory allocated - выделено памяти. (  в линуксе не работает, надо разобраться )
Allocate call - вызовов функции выделения памяти.
Load Size - размер загруженного файла
End Size - размер данных после обработки  препроцессором
Lexp Size - количество логических элементов
Code Size - размер чистого кода, без пробелов, комментариев, переносов строк.
Code Lines - количество линий.
Все эти значения доступны для каждого обработанного файла.

Достаточно интересные цифры. Можно набрать и других. Например, сколько классов, вызовов функций или сколько блоков операций( пример блока: i=i+2; ).

И да, нужно больше тестов. Как проверка на правильном коде - не должно находить ошибок, так и на неправильном - программа должна показывать ошибки.