2013-03-15 7 views
0

Я использую fslex и fsyacc, и F # исходные файлы (.fs они генерируют из лексера (.fsl) и синтаксического анализатора (.fsp) правил относятся к оригиналу .fsl (а иногда и к тому же .fs источника файл) повсюду с утверждением, таким как это (цифры номера строк):F директива # целочисленного файл

lex.fs 
1  # 1 "/[PROJECT-PATH-HERE]/lex.fsp 
... 
16  # 16 "/PROJECT-PATH-HERE]/lex.fs 
17  // This is the type of tokens accepted by the parser 
18  type token = 
19  | EOF 
... 

Кроме того, .fs файлы, созданные pars.fsp делать такие же вещи, но дополнительно ссылка на # подписи файла F (.fsi), созданный вместе с ним. Что это значит?/

ответ

2

Аннотации, которые вы видите в сгенерированном коде: F# Compiler Directives (в частности, директива 'line').

Директивы по «линии» делает это так, что, когда F # компилятор должен испускать сообщение предупреждения/ошибки для некоторой части генерируемого кода, то есть способ, чтобы определить, какая часть оригинального файла соответствует часть сгенерированного кода. Другими словами, компилятор F # может генерировать сообщение об ошибке/ошибке, ссылающееся на исходный код, который является основой генерируемого кода, вызывающего ошибку.

 Смежные вопросы

  • Нет связанных вопросов^_^