// // Модуль: универсальная утилита текстового препроцессора // - символов табуляции // - удаления ассемблерных и C/C++ комментариев // - замены локальных меток // // Компилятор: Microsoft Visual C++ 2005 // Ревизия: от 14 августа 2010 года // Разработчик: Вячеслав Овсиенко (VSO) vslav_ov@mail.ru // #define _CRT_SECURE_NO_DEPRECATE 1 #define _CRT_NONSTDC_NO_DEPRECATE 1 #include #include #include #include #include #include #include #include "errors.h" #include "cmdline.h" #include "fileio.h" #define SOP_MAX 500 // число sum-of-products #define PRO_MAX 500 // число products #define CMP_MAX 20000 // число компонентов #define PIN_MAX 10 // число пинов #define NET_MAX 10000 // число цепей #define CMP_NAME_MAX 24 // длина имени компонента #define PIN_NAME_MAX 8 // длина имени контакта #define NET_NAME_MAX 24 // длина имени цепи #define TOKEN_MAX (FL_LINSIZE/2) // длина токена #define TOKEN_EOF -1 // конец файла #define TOKEN_UNKNOWN -2 // нераспознаный токен #define TOKEN_QUOTE 1 // строка в кавычках #define TOKEN_OPEN 2 // открывающая скобка ( #define TOKEN_CLOSE 3 // закрывающая скобка ) #define TOKEN_ACCEL 4 // ACCEL_ASCII #define TOKEN_ASCHDR 5 // asciiHeader #define TOKEN_NETLIST 6 // netlist #define TOKEN_COMPINST 7 // compInst #define TOKEN_COMPREF 8 // compRef #define TOKEN_ORGNAME 9 // originalName #define TOKEN_COMPVALUE 10 // compValue #define TOKEN_PRTNAME 11 // patternName #define TOKEN_NET 12 // net #define TOKEN_NODE 13 // node #define STATE_IDLE 0 #define STATE_NETLIST 1 #define STATE_COMP 2 #define STATE_NET 3 #define STATE_NODE 4 typedef struct _CMP { char name[CMP_NAME_MAX]; char value[CMP_NAME_MAX]; int type; int pin[PIN_MAX]; } CMP, *PCMP; typedef struct _NET { char name[NET_NAME_MAX]; } NET, *PNET; typedef struct _TYP { const char* name; const char* pin[PIN_MAX]; } TYP, *PTYP;