aboutsummaryrefslogtreecommitdiff
path: root/source/main.elna
blob: 7065b3bde2547ffc86574840af2401564ad27821 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
(* This Source Code Form is subject to the terms of the Mozilla Public License,
  v. 2.0. If a copy of the MPL was not distributed with this file, You can
  obtain one at https://mozilla.org/MPL/2.0/. *)
program()
import sys.posix.stdio, elna.lexer

var
  global_cursor: ElnaLexerCursor
  sample_source_text := "Here.are a few (* documentation block *) or if '\\n' `У` -- End line comment\0"
  token: ^ElnaLexerToken

begin
  elna_lexer_transitions();
  global_cursor := { ElnaLexerCursor;
    start: sample_source_text.ptr,
    cursor: sample_source_text.ptr,
    position: 1u
  };

  token := elna_lexer_lex(@global_cursor);
  elna_lexer_token_dump(token, @global_cursor);

  while token^.kind <> ElnaLexerTokenKind.eof do
    elna_lexer_token_destroy(token);

    token := elna_lexer_lex(@global_cursor);
    elna_lexer_token_dump(token, @global_cursor)
  end;
  elna_lexer_token_destroy(token)
end.