dic an spanifying output
This commit is contained in:
parent
09bfae1a5f
commit
f2b14c743d
@ -49,34 +49,40 @@ class ToCode < AST::Processor
|
|||||||
puts "Missing: " + s.type
|
puts "Missing: " + s.type
|
||||||
s.to_sexp
|
s.to_sexp
|
||||||
end
|
end
|
||||||
|
def div statement , html
|
||||||
|
"<div class='statement #{statement.object_id}'>" + html + "</div>"
|
||||||
|
end
|
||||||
|
def span statement , html
|
||||||
|
"<span class='#{statement.object_id}'>" + html + "</span>"
|
||||||
|
end
|
||||||
def on_function statement
|
def on_function statement
|
||||||
return_type , name , parameters, kids , receiver = *statement
|
return_type , name , parameters, kids , receiver = *statement
|
||||||
str = return_type + " " + name.to_a.first + "("
|
str = return_type + " "
|
||||||
|
str += receiver + "." if receiver
|
||||||
|
str += name.to_a.first + "("
|
||||||
str += process(parameters) + ")<br>"
|
str += process(parameters) + ")<br>"
|
||||||
str += process(kids) + "end<br>"
|
str += process(kids) + "end<br>"
|
||||||
str
|
div(statement,str)
|
||||||
end
|
end
|
||||||
def on_parameters statement
|
def on_parameters statement
|
||||||
process_all(statement.children).join(",")
|
process_all(statement.children).join(",")
|
||||||
end
|
end
|
||||||
def on_parameter p
|
def on_parameter p
|
||||||
type , name = *p
|
type , name = *p
|
||||||
type + " " + name
|
span(type,type) + " " + span(name,name)
|
||||||
end
|
end
|
||||||
# str += parameters.children.collect { |p| process(p)}.join(",") + ")<br>"
|
|
||||||
# str += kids.collect { |p| process(p)}.join("<br>")
|
|
||||||
|
|
||||||
def on_string s
|
def on_string s
|
||||||
"'" + s.first + "'"
|
span(s, "'" + s.first + "'")
|
||||||
end
|
end
|
||||||
def on_field_def statement
|
def on_field_def statement
|
||||||
type , name , value = *statement
|
type , name , value = *statement
|
||||||
str = type + " " + name
|
str = span(type, type) + " " + span(name,name)
|
||||||
str += " = #{process(value)}" if value
|
str += " = #{process(value)}" if value
|
||||||
str
|
div(s,str)
|
||||||
end
|
end
|
||||||
def on_return statement
|
def on_return statement
|
||||||
"return " + process(statement.first )
|
str = "return " + process(statement.first )
|
||||||
|
div(statement,str)
|
||||||
end
|
end
|
||||||
def on_false_statements s
|
def on_false_statements s
|
||||||
on_statements s
|
on_statements s
|
||||||
@ -88,9 +94,8 @@ class ToCode < AST::Processor
|
|||||||
str = ""
|
str = ""
|
||||||
s.children.each do |c|
|
s.children.each do |c|
|
||||||
str += process(c).to_s
|
str += process(c).to_s
|
||||||
str += "<br>"
|
|
||||||
end
|
end
|
||||||
str
|
div(s,str)
|
||||||
end
|
end
|
||||||
def on_if_statement statement
|
def on_if_statement statement
|
||||||
branch_type , condition , if_true , if_false = *statement
|
branch_type , condition , if_true , if_false = *statement
|
||||||
@ -98,34 +103,37 @@ class ToCode < AST::Processor
|
|||||||
ret = "if_#{branch_type}(" + process(condition) + ")<br>" + process(if_true)
|
ret = "if_#{branch_type}(" + process(condition) + ")<br>" + process(if_true)
|
||||||
ret += "else" + "<br>" + process(if_false) if if_false
|
ret += "else" + "<br>" + process(if_false) if if_false
|
||||||
ret += "end"
|
ret += "end"
|
||||||
|
div(statement,ret)
|
||||||
end
|
end
|
||||||
def on_assignment statement
|
def on_assignment statement
|
||||||
name , value = *statement
|
name , value = *statement
|
||||||
name = name.to_a.first
|
name = name.to_a.first
|
||||||
v = process(value)
|
v = process(value)
|
||||||
name + " = " + v
|
str = name + " = " + v
|
||||||
|
div(statement,str)
|
||||||
end
|
end
|
||||||
def on_call c
|
def on_call c
|
||||||
name , arguments , receiver = *c
|
name , arguments , receiver = *c
|
||||||
ret = process(name)
|
ret = process(name)
|
||||||
ret = process(receiver.first) + "." + ret if receiver
|
ret += process(receiver.first) + "." + ret if receiver
|
||||||
ret += "("
|
ret += "("
|
||||||
ret += process(arguments).join(",")
|
ret += process(arguments).join(",")
|
||||||
ret += ")"
|
ret += ")"
|
||||||
|
span(c,ret)
|
||||||
end
|
end
|
||||||
def on_operator_value statement
|
def on_operator_value statement
|
||||||
operator , left_e , right_e = *statement
|
operator , left_e , right_e = *statement
|
||||||
left_reg = process(left_e)
|
left_reg = process(left_e)
|
||||||
right_reg = process(right_e)
|
right_reg = process(right_e)
|
||||||
left_reg + " " + operator + " " + right_reg
|
span(statement , left_reg + " " + operator + " " + right_reg )
|
||||||
end
|
end
|
||||||
def on_arguments args
|
def on_arguments args
|
||||||
args.children.collect{|c| process(c)}
|
args.children.collect{|c| process(c)}
|
||||||
end
|
end
|
||||||
def on_name name
|
def on_name name
|
||||||
name.first
|
span(name,name.first)
|
||||||
end
|
end
|
||||||
def on_int i
|
def on_int i
|
||||||
i.first.to_s
|
span(i , i.first.to_s)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user