summaryrefslogtreecommitdiff
path: root/src/flint.cr
diff options
context:
space:
mode:
authorMatthew Hall <hallmatthew314@gmail.com>2022-09-07 00:05:23 +1200
committerMatthew Hall <hallmatthew314@gmail.com>2022-09-07 00:05:23 +1200
commit97e3b4a9d7e995848341e53b2c002930c85d5c47 (patch)
tree45299ac50115bc3cc87f546cbbc8ba7519813a61 /src/flint.cr
parentb5aecfbd9d32bf894ab82d7b594f91a5f59acb2a (diff)
Parser + boilerplate for Among Us
Diffstat (limited to 'src/flint.cr')
-rw-r--r--src/flint.cr11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/flint.cr b/src/flint.cr
index 6d68305..02fdd85 100644
--- a/src/flint.cr
+++ b/src/flint.cr
@@ -4,6 +4,7 @@ require "option_parser"
require "./util.cr"
require "./program.cr"
+require "./among_us/*"
require "./brainfuck/*"
require "./thue/*"
@@ -11,6 +12,7 @@ module Flint
VERSION = "0.1.1"
enum Language
+ AmongUs
Brainfuck
Thue
end
@@ -71,10 +73,9 @@ module Flint
crash("ERROR: No language chosen", parser) if _args.size == 0
crash("ERROR: No source file chosen", parser) if _args.size == 1 && !read_stdin
source_file = _args[1] unless read_stdin
- language = case _args[0].downcase
- when "brainfuck" then Language::Brainfuck
- when "thue" then Language::Thue
- else crash("ERROR: Unknown language specified: '#{_args[0]}'\nUser the '--supported-languages' flag to see whatlanguages are valid.", parser)
+ language = Language.parse?(_args[0])
+ if language.nil?
+ crash("ERROR: Unknown language specified: '#{_args[0]}'\nUser the '--supported-languages' flag to see whatlanguages are valid.", parser)
end
end
end
@@ -90,6 +91,8 @@ module Flint
end
program = case language.not_nil!
+ in Language::AmongUs
+ AmongUs::Program.new(source_io)
in Language::Brainfuck
begin
m_str = language_options[:memory_size]?