Support global user code blocks

This commit is contained in:
Josh Holtrop 2022-10-03 21:24:13 -04:00
parent 66d654b6b9
commit ced5a56424
2 changed files with 8 additions and 0 deletions

View File

@ -5,6 +5,10 @@ module <%= @grammar.modulename %>;
import std.stdio;
<% @grammar.code_blocks.each do |code| %>
<%= code %>
<% end %>
class <%= @classname %>
{
enum

View File

@ -7,11 +7,13 @@ class Propane
attr_reader :patterns
attr_reader :rules
attr_reader :tokens
attr_reader :code_blocks
def initialize(input)
@patterns = []
@tokens = []
@rules = []
@code_blocks = []
@line_number = 1
@next_line_number = @line_number
@input = input.gsub("\r\n", "\n")
@ -36,6 +38,8 @@ class Propane
elsif parse_tokenid_statement!
elsif parse_drop_statement!
elsif parse_rule_statement!
elsif code = parse_code_block!
@code_blocks << code
else
if @input.size > 25
@input = @input.slice(0..20) + "..."