англійськафранцузькаіспанська

Ad


Значок OnWorks

cpphs - онлайн у хмарі

Запустіть cpphs у постачальника безкоштовного хостингу OnWorks через Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

Це команда cpphs, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS.

ПРОГРАМА:

ІМ'Я


cpphs - лібералізований cpp-a-подібний препроцесор для Haskell

СИНТАКСИС


cpps [ФІЛЕНАМ|ВАРІАНТ]...

ОПИС


cpps є лібералізованим повторним впровадженням cpp (1) препроцесор C, в і для
Хаскелл.

Навіщо повторно реалізовувати cpp? Справедливо чи ні, але препроцесор C широко використовується в Haskell
вихідний код. Він дозволяє умовну компіляцію для різних компіляторів, різних
версії одного компілятора та різні платформи ОС. Його також іноді використовують
за свою макромову, яка може включати певні форми специфічних для платформи деталей-
заповнення, як-от виснажливе генерування типових визначень екземплярів і FFI
декларації. Однак у cpp є дві проблеми, крім очевидної естетики
ті:

Для деяких систем Haskell, зокрема Hugs на Windows, справжній cpp недоступний
за замовчуванням.

Навіть для інших систем Haskell загальний cpp, що надається серією gcc 3.x
змінюється тонкими способами, які несумісні з синтаксисом Haskell. Є
Завжди виникали проблеми, наприклад, з проміжками в рядках і прості символами
ідентифікатори. Ці проблеми будуть тільки посилюватися.

Таким чином, здавалося правильним спробувати запропонувати альтернативу cpp, обидва більш сумісні
Haskell, а сам написаний на Haskell, щоб його можна було поширювати з компіляторами.

cpps є майже повним набором функцій і сумісним з - традиційний стиль cpp.
Він має два режими:

лише умовна компіляція (--номакро),

і повне макророзширення (за замовчуванням).

In --номакро режим, cpps виконує лише умовні дії компіляції, тобто #включати's,
# якщоі, і #ifdef' обробляються відповідно до визначень заміни тексту (обидва команди-
рядковий і внутрішній), але параметризоване розширення макросу не виконується. Повністю
режим сумісності (за замовчуванням), заміни тексту та розширення макросу також є
обробляється в решті тексту, що не є cpp.

Робочі особливості:

#ifdef проста умовна компіляція

# якщо повна логічна мова визначених(), &&, ||, == тощо.

#еліф ланцюгові умови

#визначити
вбудовані визначення (заміни тексту та макроси)

#undef відкликання визначень у рядку

#включати
включення файлу

#лінія директиви номерів рядків

\n продовження рядків у всіх # директивах

/ ** / ланцюг маркерів у макровизначенні

## Катенація маркерів у стилі ANSI

# Строковість маркерів у стилі ANSI

__FILE__
спеціальна заміна тексту для повідомлень про помилки своїми руками

__LINE__
спеціальна заміна тексту для повідомлень про помилки своїми руками

__ДАТА__
спеціальна заміна тексту

__TIME__
спеціальна заміна тексту

Розширення макросу є рекурсивним. Повторне визначення назви макросу не генерує попередження.
Макроси можна визначити в командному рядку за допомогою -D як текстові заміни. Макрос
імена можуть бути ідентифікаторами Haskell, наприклад, з простим ` і зворотною галочкою ´
символів, що трохи вільніше, ніж у C, але вони все одно можуть не включати оператор
символи

Нумерація рядків у виводі збережена, так що будь-який пізніший процесор може дати
змістовні повідомлення про помилки. Коли файл є #включати'd, cpps вставки #лінія директиви для
та ж причина. Нумерація повинна бути правильною навіть за наявності продовження рядків.
Якщо ви не хочете #лінія директиви в кінцевому виводі, використовуйте --нолін варіант.

Будь-які синтаксичні помилки в директивах cpp дають повідомлення stderr і зупиняють програму.
Неможливість знайти файл #include'd викликає попередження для stderr, але обробка триває.

Ви можете вказати будь-яку кількість імен файлів у командному рядку. Результати поєднуються
стандартний вихід.

-Dsym визначити текстову заміну (значення за замовчуванням 1)

-Dsym=Val
визначити текстову заміну з певним значенням

-Iшлях додайте каталог до шляху пошуку для #include

-Oфайл вкажіть файл для виводу (за замовчуванням є stdout)

--номакро
обробляйте лише #ifdef та #include,
не розгортати макроси

--нолін
видаліть випадок #line з результату

--смужка
перетворити коментарі в стилі C у пробіли, навіть поза межами
директиви cpp

--хеші
розпізнає оператор ANSI # stringise і ## for
кетенація маркерів у макросах

--текст розглядати введення як звичайний текст, а не код Haskell

--макет
зберегти нові рядки в макророзширеннях

--неосвітлений
видалити коментарі у грамотному стилі

-- версія
повідомити номер версії cpph і зупинити

За замовчуванням НЕМАЄ текстових замін. (Звичайний cpp зазвичай має визначення
для машини, ОС тощо. За бажанням їх можна легко додати до вихідного коду cpphs.)
Шлях пошуку шукається в порядку -I параметри, за винятком того, що каталог
спочатку завжди виконується пошук у файлі виклику, а потім у поточному каталозі. Знову ж таки, немає
шлях пошуку за замовчуванням (і знову ж таки, це можна легко змінити).

РІЗНАННЯ З CPP


Загалом, cpphs заснований на - традиційний поведінка, а не ANSI C, і має
наступні основні відмінності від стандартного cpp.

Загальне

Команда # яка вводить будь-яку директиву cpp має бути в першому стовпці рядка (тоді як
ANSI дозволяє пробіли перед # ).

Генерує #лінія n "ім'я файлу"синтаксис, а не # n "ім'я файлу«варіант.

Коментарі C видаляються лише з директив cpp. Вони не відокремлені від інших
текст. Розглянемо, наприклад, що в Haskell всі перелічені нижче є дійсними операторами
символи: /* */ * / * Однак ви можете ввімкнути видалення C-коментаря за допомогою --смужка варіант.

Macro мова

Приймає / ** / для вставки маркерів у макровизначення. однак, /* */ (з будь-яким текстом
між коментарем відкрити/закрити) вставляє пробіл.

ANSI ## Оператор вставки маркерів доступний з --хеші прапор. Цього потрібно уникнути
неправильне тлумачення будь-якого дійсного оператора Haskell з такою ж назвою.

Замінює формальний параметр макросу фактичним, навіть всередині рядка (подвійного або одинарного
цитується). Це традиційна поведінка, яка не підтримується в ANSI.

Визнає # оператор стрингізації в макровизначенні, лише якщо ви використовуєте --хеші
варіант. (Це доповнення ANSI, потрібне лише тому, що ланцюжок у лапках (вище) є
заборонено ANSI.)

Точно зберігає пробіл у визначенні заміни тексту (модуль нових рядків),
але провідний і задній пробіли усуваються.

Точно зберігає пробіли в макровизначенні (і завершуючи його) (модульно
новий рядок), але провідний пробіл усувається.

Точно зберігає пробіли в аргументах виклику макросу (включаючи новий рядок), але провідний
і кінцевий простір усувається.

З --макет опція, продовження рядків у текстовій заміні або макровизначенні
зберігаються як розриви рядків у макровиклику. (Корисно для коду, чутливого до макету в
Haskell.)

Використовуйте cpphs онлайн за допомогою служб onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

  • 1
    facetracknoir
    facetracknoir
    Модульна програма хедтрекінгу, яка
    підтримує кілька фейстрекерів, фільтрів
    і протоколи гри. Серед трекерів
    це SM FaceAPI, AIC Inercial Head
    Трекер ...
    Завантажити facetracknoir
  • 2
    PHP QR-код
    PHP QR-код
    PHP QR-код з відкритим вихідним кодом (LGPL)
    бібліотека для генерації QR-коду,
    2-вимірний штрих-код. На основі
    бібліотека libqrencode C, надає API для
    створення QR-коду barc...
    Завантажте QR-код PHP
  • 3
    freeciv
    freeciv
    Freeciv - це безкоштовна покрокова програма
    багатокористувацька стратегічна гра, в якій кожен
    гравець стає лідером a
    цивілізації, що бореться за отримання с
    кінцева мета: стати...
    Завантажити Freeciv
  • 4
    Зозуля Пісочниця
    Зозуля Пісочниця
    Cuckoo Sandbox використовує компоненти для
    стежити за поведінкою зловмисного програмного забезпечення в a
    Середовище пісочниці; ізольовано від
    решта системи. Він пропонує автоматизовані
    аналіз про...
    Завантажити Cuckoo Sandbox
  • 5
    LMS-YouTube
    LMS-YouTube
    Відтворення відео YouTube на LMS (перенесення
    Triode для YouTube API v3) Це
    додаток, який також можна отримати
    від
    https://sourceforge.net/projects/lms-y...
    Завантажте LMS-YouTube
  • 6
    Фонд презентацій Windows
    Фонд презентацій Windows
    Фонд презентацій Windows (WPF)
    є фреймворком інтерфейсу користувача для створення Windows
    настільні програми. WPF підтримує a
    широкий набір розробки додатків
    особливості ...
    Завантажити Windows Presentation Foundation
  • Детальніше »

Команди Linux

Ad