lib/knj/php_parser/functions.rb in knjrbfw-0.0.8 vs lib/knj/php_parser/functions.rb in knjrbfw-0.0.9
- old
+ new
@@ -1,97 +1,97 @@
class Knj::Php_parser
- def func_args(func_name)
- func_arg_count = 0
- args = []
-
- loop do
- if match = self.matchclear(/\A\$#{@regex_varname}\s*(,\s*|)/)
- args << {
- "varname" => match[1],
- "newname" => "phpvar_#{match[1]}"
- }
- elsif match = self.matchclear(/\A\)\s*\{/)
- break
- else
- raise "Could not match function arguments."
- end
- end
-
- @retcont += "#{self.tabs}module Knj::Php_parser::Functions\n"
- @tabs += 1
- @retcont += "#{self.tabs}def self.#{func_name}("
-
- first = true
- args.each do |arg|
- @retcont += ", " if !first
- first = false if first
- @retcont += arg["newname"]
- end
-
- @retcont += ")\n"
- @tabs += 1
- @funcs_started += 1
-
- self.search_newstuff
- end
-
- def func_args_single_given
- arg_found = false
-
- loop do
- if !arg_found and match = self.matchclear(/\A\"/)
- @retcont += "\""
- self.match_semi
- @retcont += ")"
- arg_found = true
- elsif !arg_found and match = self.matchclear(/\A\$(#{@regex_varname})/)
- @retcont += "phpvar_#{match[1]}"
- arg_found = true
- elsif arg_found and match = self.matchclear(/\A\.\s*/)
- @retcont += " + "
- arg_found = false
- elsif arg_found and match = self.matchclear(/\A;/)
- @retcont += "\n"
- break
- else
- raise "Could not figure out what to do."
- end
- end
- end
-
- def func_args_given
- arg_found = false
-
- loop do
- if !arg_found and match = self.matchclear(/\A\"/)
- @retcont += "\""
- self.match_semi
- @retcont += ")"
- arg_found = true
- elsif !arg_found and match = self.matchclear(/\A\$(#{@regex_varname})/)
- @retcont += "phpvar_#{match[1]}"
- arg_found = true
- elsif arg_found and match = self.matchclear(/\A\.\s*/)
- @retcont += " + "
- arg_found = false
- elsif arg_found and match = self.matchclear(/\A\)\s*;/)
- @retcont += "\n"
- break
- else
- raise "Could not figure out what to do."
- end
- end
- end
-
- def match_semi
- loop do
- if match = self.matchclear(/\A[A-z\d_\.]+/)
- @retcont += match[0]
- elsif match = self.matchclear(/\A\"/)
- @retcont += "\""
- break
- else
- raise "Could not figure out what to do."
- end
- end
- end
+ def func_args(func_name)
+ func_arg_count = 0
+ args = []
+
+ loop do
+ if match = self.matchclear(/\A\$#{@regex_varname}\s*(,\s*|)/)
+ args << {
+ "varname" => match[1],
+ "newname" => "phpvar_#{match[1]}"
+ }
+ elsif match = self.matchclear(/\A\)\s*\{/)
+ break
+ else
+ raise "Could not match function arguments."
+ end
+ end
+
+ @retcont << "#{self.tabs}module Knj::Php_parser::Functions\n"
+ @tabs << 1
+ @retcont << "#{self.tabs}def self.#{func_name}("
+
+ first = true
+ args.each do |arg|
+ @retcont << ", " if !first
+ first = false if first
+ @retcont << arg["newname"]
+ end
+
+ @retcont << ")\n"
+ @tabs += 1
+ @funcs_started += 1
+
+ self.search_newstuff
+ end
+
+ def func_args_single_given
+ arg_found = false
+
+ loop do
+ if !arg_found and match = self.matchclear(/\A\"/)
+ @retcont << "\""
+ self.match_semi
+ @retcont << ")"
+ arg_found = true
+ elsif !arg_found and match = self.matchclear(/\A\$(#{@regex_varname})/)
+ @retcont << "phpvar_#{match[1]}"
+ arg_found = true
+ elsif arg_found and match = self.matchclear(/\A\.\s*/)
+ @retcont << " + "
+ arg_found = false
+ elsif arg_found and match = self.matchclear(/\A;/)
+ @retcont << "\n"
+ break
+ else
+ raise "Could not figure out what to do."
+ end
+ end
+ end
+
+ def func_args_given
+ arg_found = false
+
+ loop do
+ if !arg_found and match = self.matchclear(/\A\"/)
+ @retcont << "\""
+ self.match_semi
+ @retcont << ")"
+ arg_found = true
+ elsif !arg_found and match = self.matchclear(/\A\$(#{@regex_varname})/)
+ @retcont << "phpvar_#{match[1]}"
+ arg_found = true
+ elsif arg_found and match = self.matchclear(/\A\.\s*/)
+ @retcont << " + "
+ arg_found = false
+ elsif arg_found and match = self.matchclear(/\A\)\s*;/)
+ @retcont << "\n"
+ break
+ else
+ raise "Could not figure out what to do."
+ end
+ end
+ end
+
+ def match_semi
+ loop do
+ if match = self.matchclear(/\A[A-z\d_\.]+/)
+ @retcont << match[0]
+ elsif match = self.matchclear(/\A\"/)
+ @retcont << "\""
+ break
+ else
+ raise "Could not figure out what to do."
+ end
+ end
+ end
end
\ No newline at end of file