Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Annotated King Reference Manual/Lexical Elements

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Lexical Elements Items Each lexical element is formed from a sequence of characters, and is either a delimiter, an identifier, a reserved word, a numeric_literal, a character_literal, a string_literal, or a comment. The text of a compilation is divided into lines. Separators code points are: 16#20# (SPACE, except within a comment, a string_literal, or a character_literal), 16#0A# (LINE FEED), 16#0D# (CARRIAGE RETURN). Rationale A compilation is a sequence of lines, conceptually terminated by a line terminator. King does not specify what character(s), if any, make up a line terminator in a compilation text. Common text file formats on the kinds of systems that King is intended to be used on use one or two characters (CR, LF) as line terminators, so this is probably correct in practice (if King is ever implemented). Discussion - Delimiters Single &    '    (    )    *    +    ,    -    .    /    :    ;    <    =    >    @    [    ]    |    {    }    ^ \ Compound =>    ..    <-    /=    >=    <=     <> Rationale - Discussion - Identifiers Examples Invalid V_String Is_Empty Latin_1_String Syntax identifier ::= identifier_start {underline identifier_extend} identifier_start ::= letter_uppercase {letter_uppercase | number_decimal} {letter_lowercase | number_decimal} identifier_extend ::= identifier_start | number_decimal {letter_uppercase | number_decimal} {letter_lowercase | number_decimal} Once built as above, specifics rules (see TBD) are enforced to define a valid identifier. Rationale An identifier is made up of words separated by underlines. There is an initial word and zero or more subsequent words. The initial word must begin with a capital letter. Subsequent words can begin with a capital letter or a digit. Discussion - Reserved Words List all and begin body case constant declare delta digits else else_if end exit for function hidden if in is loop macro map module new not null of or others out procedure range record renames return reverse select separate sequence set some subtype task then type use wait when with xor Rationale - Discussion - Numeric Literals Examples universal_integer 99 478E70 16#CAFE# universal_real 3.14 0.0 0.25 16#F.FF#E+2 36#THE_QUICK_BROWN_FOX_JUMPS.OVER_THE_LAZY_DOG# Syntax numeric_literal ::= decimal_literal | based_literal decimal_literal ::= numeral [.numeral] [exponent] numeral ::= digit {[underline] digit} exponent ::= E [+] numeral | E - numeral digit ::= number_decimal based_literal ::= base # based_numeral [.based_numeral] # [exponent] base ::= numeral based_numeral ::= extended_digit {[underline] extended_digit} extended_digit ::= digit | letter_uppercase Rationale - Discussion - Character Literals Examples '@' 'Δ' ' ' ''' Syntax character_literal ::= 'graphic_character' Rationale - Discussion - String Literals Examples "une soirée passée à étudier les mathématiques ℕ⊂𝕂..." -- Unicode characters " " -- Space character "" -- Null string(See expressions for examples of building strings with quotation mark) Syntax string_literal ::= "{string_element}" string_element ::= non_quotation_mark_graphic_character Rationale - Discussion - Comments Examples -- Returns the number of Elements in List Syntax comment ::= --{''non_end_of_line_''graphic_character} Rationale - Discussion -