подсветка синтаксиса энергии блока

Я бы определил это так

import qualified Data.Map.Lazy as Map

type MultiSet' a = Map.Map a Int 

Просто отображение типа a в Int. В математике это будет что-то вроде f : S -> N . Элементы, которые вы вставляете в него, должны быть управляемыми, потому что базовая структура Map определяется двоичным деревом. Это не должно быть проблемой, так как вы можете забыть об этом при использовании структуры данных. Смотрите очень обширную документацию по Data.Map для функций, чтобы справиться с нашими MultiSet'.

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

В качестве альтернативы вы можете использовать хэш-карту, она будет выглядеть следующим образом:

import qualified Data.HashMap.Lazy as Map

type MultiSet'' a = Map.HashMap a Int 

Элементы, которые вы в нее вставляете, не обязательно должны быть упорядоченными, но хэшируемыми.

27
задан Jens 15 February 2013 в 14:21
поделиться

2 ответа

Это может начать вас. Это больше похоже на то, что вы ищете?

Только что был быстрый поиск - похоже, есть несколько различных видов встроенной подсветки синтаксиса ассемблера. Какой из них вы используете?

Вставлено из: help syntax

Currently these syntax
files are included:
    asm     GNU assembly (the default)
    asm68k      Motorola 680x0 assembly
    asmh8300    Hitachi H-8300 version of GNU assembly
    ia64        Intel Itanium 64
 fasm Flat assemlby http://flatassembler.net
    masm        Microsoft assembly (probably works for any 80x86)
    nasm        Netwide assembly
    tasm        Turbo Assembly (with opcodes 80x86 up to Pentium, and
            MMX)
    pic     PIC assembly (currently for PIC16F84)

The most flexible is to add a line in your assembly file containing:
    :asmsyntax=nasm
Replace "nasm" with the name of the real assembly syntax.  This line must be
one of the first five lines in the file.

Этот дополнительный синтаксический скрипт из vim.org

Похоже, что на вашем скриншоте используется тип файла asm по умолчанию. Попробуйте

:set ft=nasm

, и вы должны получить некоторые изменения цвета в соответствии с этими скриншотами.

ft=nasm

Из ваших скриншотов выше я сделал пару быстрых изменений в синтаксисе fasm vim и назвал его gasm. Его можно найти здесь на pastebin.

Скопируйте и вставьте его в свой личный каталог .vim / syntax или vimfiles / syntax и назовите его gasm.vim Затем в вашем файле сборки: set ft = gasm

Этот скрипт vim использует комментарии в форме % комментарий с включенным пространством. Вы можете увидеть это (или изменить, если хотите) в строке 116 скрипта.

Обратите внимание: не копируйте номера строк.

43
ответ дан 28 November 2019 в 04:33
поделиться

Я начал писать полный синтаксис GNU с нуля.

Файл синтаксиса доступен на vim.org: GNU как синтаксис для X86
А также непосредственно на GitHub: GNU как синтаксис для X86

В дополнение к основным инструкциям он будет распознают следующие расширенные инструкции Intel / AMD:

  • Общий набор инструкций X86 (8086–686)
  • Команды SIMD для потоковой передачи Katmai (SSE - также известные как KNI, XMM, MMX2)
  • Представлен в Deschutes, но необходим для поддержки SSE
  • Группа XSAVE (AVX и расширенное состояние)
  • Общие операции с памятью
  • Новые инструкции MMX представлены в Katmai
  • AMD Enhanced 3DNow! Инструкции (Athlon)
  • Инструкции по кэшированию Willamette SSE2
  • Инструкции Willamette MMX (Целочисленные инструкции SSE2 SIMD)
  • Команды Willamette Streaming SIMD (SSE2)
  • Новые инструкции Prescott (SSE3)
  • Инструкции VMX
  • Таблицы расширенных страниц Инструкции VMX
  • Новые инструкции Tejas (SSSE3)
  • AMD SSE4A
  • Новые инструкции в Барселоне
  • Новые инструкции Penryn (SSE4.1)
  • Новые инструкции Nehalem (SSE4.2)
  • Инструкции AMD SSE5
  • Intel SMX
  • Geode (Cyrix) 3DNow! дополнения
  • Инструкции Intel AES
  • Инструкции Intel AVX AES
  • Инструкции Intel AVX
  • Инструкции Intel без переноса данных (CLMUL)
  • Инструкции Intel AVX без переноса данных (CLMUL)
  • Intel Fused Инструкции множественного сложения (FMA)
  • Инструкции безопасности VIA (Centaur)
  • Инструкции AMD XOP, FMA4 и CVT16 (SSE5)
  • Систематические имена для подсказок nop-инструкций

Вот как это выглядит:

alt text

27
ответ дан 28 November 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: