Благодарим за выбор нашего сервиса!
Тестовое сообщение
Сообщений 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