too fucking tired... going to bed

This commit is contained in:
Peter Harpending
2025-10-02 08:44:17 -07:00
parent 437988acee
commit 69a89cf78e
8 changed files with 527 additions and 3 deletions
+41
View File
@@ -0,0 +1,41 @@
-module(wfc_eval_context).
-export_type([
context/0
]).
-export([
new/0,
default/0,
define/3,
resolve_pattern/2
]).
-type sentence() :: wfc_sentence:sentence().
-record(ctx,
{snowflakes :: #{binary() := fun()},
patterns :: #{binary() := sentence()}}).
-opaque context() :: #ctx{}.
new() ->
#ctx{snowflakes = #{},
patterns = #{}}.
%% FIXME
default() ->
new().
define(Pat, Sentence, Ctx = #ctx{patterns = OldPatterns}) ->
NewPatterns = maps:put(Pat, Sentence, OldPatterns),
{ok, Ctx#ctx{patterns = NewPatterns}}.
resolve_pattern(Pat, Ctx = #ctx{patterns = Patterns}) ->
case maps:find(Pat, Patterns) of
error -> {error, wfc_utils:str("wfc_eval_context:resolve_pattern: not found: ~w; context: ~w", [Pat, Ctx])};
Result -> Result
end.