more skeleton

This commit is contained in:
wires 2025-02-25 19:22:08 -05:00
parent d48c0e0fa2
commit f83643c926
Signed by: wires
SSH key fingerprint: SHA256:9GtP+M3O2IivPDlw1UY872UPUuJH2gI0yG6ExBxaaiM
2 changed files with 12 additions and 1 deletions

View file

@ -16,6 +16,7 @@
| ')' | ')'
| ',' | ','
| ';' | ';'
| ':'
| '.' | '.'
| '->' | '->'
| '+'. | '+'.
@ -34,6 +35,10 @@ tokenize(Text) -> tokenize(Text, 0, 1, akh_source_map:empty(), []).
) -> {ok, source_map(), [token()]}. ) -> {ok, source_map(), [token()]}.
tokenize([], _, _, SourceMap, Tokens) -> tokenize([], _, _, SourceMap, Tokens) ->
{ok, SourceMap, Tokens}; {ok, SourceMap, Tokens};
tokenize([$( | T], Offset, Line, SourceMap, Tokens) ->
tokenize(T, Offset + 1, Line, SourceMap, [{'(', {Offset, 1}} | Tokens]);
tokenize([$) | T], Offset, Line, SourceMap, Tokens) ->
tokenize(T, Offset + 1, Line, SourceMap, [{')', {Offset, 1}} | Tokens]);
tokenize([$\n | T], Offset, Line, SourceMap, Tokens) -> tokenize([$\n | T], Offset, Line, SourceMap, Tokens) ->
NewMap = akh_source_map:insert(Offset, Line, SourceMap), NewMap = akh_source_map:insert(Offset, Line, SourceMap),
tokenize(T, Offset + 1, Line + 1, NewMap, Tokens); tokenize(T, Offset + 1, Line + 1, NewMap, Tokens);

View file

@ -1,3 +1,9 @@
-module(akhamoth). -module(akhamoth).
-export([]). -export([compile/1]).
-spec compile(Path :: file:name_all()) -> any().
compile(Path) ->
{ok, SrcBin} = file:read_file(Path),
Src = unicode:characters_to_list(SrcBin),
akh_lexer:tokenize(Src).