2014-10-18 8 views
3

Я работаю над цветодером кода MSIL (CIL), хотя я не знаком с MSIL.Понимание точек в MSIL (CIL) Ключевые слова

Я нашел список всех ключевых слов в Common Language Infrastructure (CLI).

Эти ключевые слова включают такие вещи, как add, .file, conv.i4 и unaligned..

Я немного борюсь с точками, являющимися частью ключевого слова. Я уверен, что точки должны быть частью ключевых слов, так как я не думаю, что такие вещи, как i4, стоят как ключевые слова сами по себе. И я уверен, что хочу, чтобы точка в начале некоторых ключевых слов была частью ключевого слова.

Но как насчет тех, у кого есть конечная точка, например, последняя? Есть ли причина, по которой конечная точка является частью ключевого слова?

ответ

4

Точка является частью этих инструкций (я не знаю, почему). Существует также несколько других префиксных инструкций, например unaligned., volatile., constrained., readonly. и tail.. (Я не уверен, что я перечислил все из них, но дело в том, что ваш парсер должен будет их распознать.)

В документации volatile. конкретно упоминается, что по крайней мере одно пробельное пространство должно следовать за ним перед инструкцией, применяется. Например:

volatile. ldind.i4 // Correct 

и

volatile.ldind.i4 // Syntax error 

Это от Сержа Лидин в Expert .NET 2.0 IL Assembler (что в значительной степени окончательное IL ссылка).

+0

Да, у меня есть полный список источника, на который я ссылаюсь. Когда мой парсер распознает их, это не проблема, если, как вы утверждаете, пространство должно появиться после. Просто хочу обеспечить правильные результаты. Благодарю. –

+0

Да, книга Лидина упоминает _ Синтаксис ILAsm требует, чтобы инструкции префикса были отделены от следующей инструкции хотя бы пробелом. Это относится ко всем префиксным инструкциям. – xxbbcc