**************** Igor Syntax **************** File Format =========== Igor Language is a text code stored in a plain text utf8 files. By convention Igor file should (but not must) have ``.igor`` extension. Whitespaces =========== Whitespaces are used to separate tokens. Whitespaces are allowed between any two tokens but required only to separate keywords and identifiers. Any non-empty combination of the following elements is a valid whitespace: * Tab (``\t``) * Linebreaks (``\r``, ``\n``) * Spaces * Comments All whitespaces are indistinuguishable. Indentation is not enforced. Comments ======== C-style comments are supported: :: // Single-line comment /* Multi-line comment */ Comments are treated as regular whitespaces. Their content is ignored by compiler. Annotations =========== There's a special syntax for documentation comments (annotations): :: # Single-line annotation <# Multi-line annotation #> Unlike normal comments, documentation comments are used to generate annotations, comments and documentation summaries for the target code. Identifiers ============ Identifier is a non-empty sequence of latin letters, decimal digits and underscore character, starting from the letter or underscore character. Identifiers are case-sensitive. Numbers ======== There're two types of numeric literals: integers and floats. The conventional notation is used. *Examples:* :: 42 -10.5 1.5e7 Strings ======== Strings are enclosed in double quotes (``"``). *Example:* :: "This is a string" "" // empty string