Благодарим за выбор нашего сервиса!
Тестовое сообщение
Сообщений 1 страница 12 из 12
Поделиться22022-05-29 23:14:18
Это пример кода
Поделиться32022-05-30 13:32:15
#include <stdio.h> #include "library.h" #include <time.h> #include <string.h> int main() { int a=0; a = ++a; printf( "a= %i",a ); getchar(); return 0; }
Поделиться42022-05-31 00:48:13
#вставка "library.h" #вставка "main.rh" #вставка "textbuffer.rh" #вставка "lexer.rh" #вставка "code1251.rh" #вставка <locale.h> //Во избежание "крокозяблей" на выводе #вставка <stdio.h> //Стандартный однобайтовый ввод-вывод #вставка <wchar.h> //"Широкие" многобайтовые символы и их ввод-вывод #вставка <wctype.h> //"Классификация" широких символов #вставка "time.h" // при подключении файлов из других папок будьте внимательны с путями, // так как перед компиляцией С/С++ файлы будут находится в папке .src/ /******************************************************************* Пример совместного использования в проекте файлов на "русском" С/С++ и на стандартном. В папке src_rus лежат исходники на русском в src_c исходники на стандартном С/С++ ********************************************************************/ /* тип структура{ б8 *текст; ц8 *имя_файла; ц32 длина_текста; ц32 флаг_сообщений; } ТБуфер; */ // моя программа - единственный идентификатор в котором разрешен пробел цел моя программа () { setlocale(LC_ALL, ""); //============================================================== // Загружаем исходный код из файла в буфер //============================================================== цел код_ошибки = 0; симв имя_файла [20] = "test.ru"; исходник.имя_файла = имя_файла; код_ошибки = файл_в_буфер(&исходник).код; если(код_ошибки){ printf("Код ошибки %i \n", код_ошибки); вернуть 2; } //wchar_t *буфер; исходник.текст16 = (wchar_t *) malloc(исходник.длина_текста*2*4); код_ошибки = перекодировать_в_UTF16(&исходник); // printf("Код ошибки %i \n", код_ошибки); //printf("Код ошибки %i \n", код_ошибки); ц64 время = clock(); если (лексер ()) вернуть 2; время = (clock() - время); пчтф16(L"Лексер отработал успешно за %f с \n", (плав) время/CLOCKS_PER_SEC); wprintf(L"моя программа \n"); //printf("моя программа"); распечатать_все_токены(); //пчтф16(L"\n Содержимое исходного файла:\n"); //wprintf(исходник.текст16); вернуть 0; }
Поделиться52022-06-03 23:17:21
// Задачи // 1 Обработка комментариев (V) // 2 Обработка строковых и символьных литералов (V) // 2 Обработка строковых и символьных литералов (V) // 3 Проверка корректности расстановки скобок (V) // 4 Включение конца строки в качестве токена (V) // 5 Обработка логических и битовых операций (V) // 6 Комментарии с меткой // 7 Поддержка кодировок (V) // 8 Ключевые словаре (V) // 9 Встроенные типы // 10 Сохранение в токене номера позиции // 11 Функция вычисления номера строки по (V) // номеру позиции // 20 Синтаксический анализатор // 21 Расширенные сообщения об ошибках (V) #define rUs_REALIZACIJA #include "lexer.h" #include "ASTtree.h" //закомментировать если пробелы не допустимы #define rUs_RAZRESHITJH_PROBELIH_V_IDENTIFIKATORAKH wchar_t *rUs_stroka_oshibok[10]={ L"недопустимый символ", L"", L"недопустимый символ в числе", L"недопустимый символ в идентификаторе", L"не найдена завершающая скобка", L"не найдена открывающая скобка", L"не найден символ начала комментария", L"не найден символ завершения комментария", L"неизвестная ошибка при парсинге", }; long int rUs_kolichestvo_tokenov; int rUs_nomer_stroki = 0; int rUs_pozicija = 0; wchar_t *rUs_vkhodnaja_stroka; wchar_t rUs_stroka_leksem [8000000L]; //AST -дерево extern rUs_TASD rUs_derevo; //========================================= //Переопределен массив токенов //Токены грузятся прямиком в дерево //========================================= rUs_Tuzel *rUs_massiv_tokenov; //wchar_t *массив_лексем [8000000L]; // стек для хранения последовательности открытых скобок rUs_TStek rUs_stek_skobok; #define rUs_KRUGLAJA_SKOBKA 1 #define rUs_KVADRATNAJA_SKOBKA 2 #define rUs_FIGURNAJA_SKOBKA 3 #define rUs_KOMMENTARIY_1UROVNJA 4 /* #макрос КОММЕНТАРИЙ_2УРОВНЯ 5 #макрос КОММЕНТАРИЙ_3УРОВНЯ 6 #макрос КОММЕНТАРИЙ_4УРОВНЯ 7 #макрос КОММЕНТАРИЙ_5УРОВНЯ 8 #макрос КОММЕНТАРИЙ_6УРОВНЯ 9 #макрос КОММЕНТАРИЙ_7УРОВНЯ 10 #макрос КОММЕНТАРИЙ_8УРОВНЯ 11 */ //=========================================================================== // Вспомогательная функция, подсчитывает количество разрядов в числе //=========================================================================== int rUs_chislo_razrjadov(int rUs_chislo) { if (rUs_chislo < 100000){ if (rUs_chislo < 10000){ if (rUs_chislo < 1000){ if (rUs_chislo < 100){ if (rUs_chislo < 10){ return 1; } return 2; } return 3; } return 4; } return 5; } return 6; } //=========================================================================== // Функция подсчитывает номер строки по текущей позиции //=========================================================================== int rUs_nomer_stroki1(wchar_t *rUs_vkhodnaja_stroka, int rUs_pozicija) { wchar_t rUs_simvol = rUs_vkhodnaja_stroka [0]; int rUs_indeks; int rUs_schetchik = 1; for(rUs_indeks = 0; rUs_indeks <= rUs_pozicija; rUs_indeks++){ if(rUs_simvol == 0x0D) ++rUs_schetchik; rUs_simvol = rUs_vkhodnaja_stroka [rUs_indeks]; } return rUs_schetchik; }
Поделиться62022-06-04 11:34:26
#include <stdio.h> #define LOWER 0 /* нижняя граница таблицы */ #define UPPER 300 /* верхняя граница */ #define STEP 20 /* размер шага */ /* печать таблицы температур по Фаренгейту и Цельсию */ main() { int fahr; for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP) printf(“%3d %6.1f\n”, fahr, (5.0/9.0)*(fahr-32)); }
Поделиться72023-03-15 22:51:52
#если_нет VM_CORE_H #макрос VM_CORE_H //=========================================================== // Файл: vm_core.rh // Версия: 1.00 // Дата: 17.06.2022 // Описание: Описание внутреннего устройства виртуальной машины (ВМ) // Автор: //=========================================================== #макрос РЕГИСТР_А регистры[0] #макрос РЕГИСТР_Б регистры[1] #макрос РЕГИСТР_В регистры[2] #макрос РЕГИСТР_Г регистры[3] #макрос РЕГИСТР_Д регистры[4] #макрос РЕГИСТР_Е регистры[5] #макрос РЕГИСТР_Ж регистры[6] #макрос РЕГИСТР_З регистры[7] #макрос РЕГИСТР_И регистры[8] #макрос РЕГИСТР_К регистры[9] #макрос РЕГИСТР_Л регистры[10] #макрос РЕГИСТР_М регистры[11] #макрос РЕГИСТР_Н регистры[12] #макрос РЕГИСТР_О регистры[13] #макрос РЕГИСТР_П регистры[14] #макрос РЕГИСТР_Р регистры[15] // Структура,описывающая виртуальную машину тип объединение{ struct { б8 опкод; б8 режим; б8 пустой; беззнак рег_приемник: 4; беззнак рег_источник: 4; б32 адрес; }структура_команды; б64 данные; }Tкоманда64; структура ТВМ { симв имя[10]; б64 регистры[16]; Tкоманда64 *регистр_команд; б64 *память; }; #к_если //VM_CORE_H
Поделиться82023-03-16 11:10:16
Привет-привет
Поделиться92023-03-16 11:25:53
Это код на русифицированном С
Поделиться102023-03-17 17:28:17
/* Выделение кода в блоках, новая версия, 29.04.2017 © Alex_63 / updated 08.08.2020 © */ function select_text(c) { var d = window.getSelection || document.getSelection; if (d) { var a = d(); if (a.selectAllChildren) { a.selectAllChildren(c); } else if (a.setBaseAndExtent) { a.setBaseAndExtent(c, 0, c, c.innerText.length - 1) } else { var b = document.createRange(); b.selectNodeContents(c); a.removeAllRanges(); a.addRange(b) } } else if (document.selection) { var b = document.body.createTextRange(); b.moveToElementText(c); b.select() } } function expandCode(e) { var c = e.parentNode.nextSibling.querySelector('.scrollbox'); if (c.style.maxHeight == 'none') { c.style.maxHeight = '200px'; e.innerHTML = 'Показать'; } else { c.style.maxHeight = 'none'; e.innerHTML = 'Свернуть'; } } jQuery(document).ready(function () { //jQuery('.code-box .legend').each(function () { //var txt = jQuery(this).html(); //txt = txt +' <a href="javascript://" onclick="select_text($(this).parent().next().find(\'pre\').get(0));return!1">Выделить код</a>' + ' · <a href="#" onclick="expandCode(this); return false;">Показать</a>'; ///* var c = jQuery(this).parentNode.querySelector('.scrollbox'); //if (c.scrollHeight > c.offsetHeight + 1) { //txt = txt + ' · <a href="#" onclick="expandCode(this); return false;">Показать</a>'; //}; //*/ jQuery(this).html(txt); //}); // $('.code-box').find('pre').wrapInner('<code class="russian"></code>').wrap('<div class = "coderu"></div>'); $('.code-box').find('pre').wrapInner('<code class="prettyprint linenums"></code>').wrap('<div class = "codebox"></div>'); /* jQuery('code.russian').each(function () { var txt = jQuery(this).html(); txt = highlightC(txt); jQuery(this).html(txt); }); */ });
Поделиться112023-03-17 17:36:45
#вставка "library.h"
#вставка "main.rh"
#вставка "textbuffer.rh"
#вставка "lexer.rh"
#вставка "code1251.rh"
#вставка <locale.h> //Во избежание "крокозяблей" на выводе
#вставка <stdio.h> //Стандартный однобайтовый ввод-вывод
#вставка <wchar.h> //"Широкие" многобайтовые символы и их ввод-вывод
#вставка <wctype.h> //"Классификация" широких символов
#вставка "time.h"
// при подключении файлов из других папок будьте внимательны с путями,
// так как перед компиляцией С/С++ файлы будут находится в папке .src/
/*******************************************************************
Пример совместного использования в проекте файлов на "русском" С/С++
и на стандартном. В папке src_rus лежат исходники на русском
в src_c исходники на стандартном С/С++
********************************************************************/
/*
тип структура{
б8 *текст;
ц8 *имя_файла;
ц32 длина_текста;
ц32 флаг_сообщений;
} ТБуфер;
*/
// моя программа - единственный идентификатор в котором разрешен пробел
цел моя программа ()
{
setlocale(LC_ALL, "");
//==============================================================
// Загружаем исходный код из файла в буфер
//==============================================================
цел код_ошибки = 0;
симв имя_файла [20] = "test.ru";
исходник.имя_файла = имя_файла;
код_ошибки = файл_в_буфер(&исходник).код;
если(код_ошибки){
printf("Код ошибки %i \n", код_ошибки);
вернуть 2;
}
//wchar_t *буфер;
исходник.текст16 = (wchar_t *) malloc(исходник.длина_текста*2*4);
код_ошибки = перекодировать_в_UTF16(&исходник);
// printf("Код ошибки %i \n", код_ошибки);
//printf("Код ошибки %i \n", код_ошибки);
ц64 время = clock();
если (лексер ())
вернуть 2;
время = (clock() - время);
пчтф16(L"Лексер отработал успешно за %f с \n", (плав) время/CLOCKS_PER_SEC);
wprintf(L"моя программа \n");
//printf("моя программа");
распечатать_все_токены();
//пчтф16(L"\n Содержимое исходного файла:\n");
//wprintf(исходник.текст16);
вернуть 0;
}
Поделиться122023-03-17 19:24:57
привет = 10