Add pattern statement

This commit is contained in:
josh committed 2022-09-30 21:05:18 -04:00
1 parent 04367db0ac
commit e7e30c4f28
5 files changed
+51 -8

No files matched your search

+13
View File
@@ -32,6 +32,7 @@ class Propane
elsif parse_comment_line!
elsif parse_module_statement!
elsif parse_class_statement!
elsif parse_pattern_statement!
elsif parse_token_statement!
elsif parse_tokenid_statement!
elsif parse_drop_statement!
@@ -125,6 +126,18 @@ class Propane
end
end
def parse_pattern_statement!
if pattern = parse_pattern!
consume!(/\s+/)
unless code = parse_code_block!
raise Error.new("Line #{@line_number}: expected code block to follow pattern")
end
code_id = @code_id
@code_id += 1
@patterns << Pattern.new(pattern: pattern, line_number: @line_number, code: code, code_id: code_id)
end
end
def parse_pattern!
if md = consume!(%r{/})
pattern = ""
+3 -1
View File
@@ -19,8 +19,10 @@ class Propane
TOKEN_NONE
elsif state.accepts.drop?
TOKEN_DROP
else
elsif state.accepts.token
state.accepts.token.id
else
TOKEN_NONE
end
code_id =
if state.accepts && state.accepts.code_id