Sha256: 934ae23a31df31751696172caa6fa810dcc581a081826f04451f7d9de8151e7c
Contents?: true
Size: 910 Bytes
Versions: 3
Compression:
Stored size: 910 Bytes
Contents
require "forwardable" module Lrama class Grammar class Code < Struct.new(:type, :token_code, keyword_init: true) extend Forwardable def_delegators "token_code", :s_value, :line, :column, :references # $$, $n, @$, @n are translated to C code def translated_code t_code = s_value.dup references.reverse.each do |ref| first_column = ref.first_column last_column = ref.last_column str = reference_to_c(ref) t_code[first_column..last_column] = str end return t_code end private def reference_to_c(ref) raise NotImplementedError.new("#reference_to_c is not implemented") end end end end require "lrama/grammar/code/initial_action_code" require "lrama/grammar/code/no_reference_code" require "lrama/grammar/code/printer_code" require "lrama/grammar/code/rule_action"
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
lrama-0.5.12 | lib/lrama/grammar/code.rb |
lrama-0.5.11 | lib/lrama/grammar/code.rb |
lrama-0.5.10 | lib/lrama/grammar/code.rb |