From 3e3b166bf6335b265473b9260269709dfaeb870f Mon Sep 17 00:00:00 2001 From: Esben Sorig Date: Wed, 7 Feb 2018 11:39:00 +0000 Subject: [PATCH] Switch translation of ruby function calls to allow nested calls --- examples/meta/generator/targets/ruby.json | 20 ++++++++++---------- examples/meta/src/meta_api/kwargs.sg | 5 +---- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/examples/meta/generator/targets/ruby.json b/examples/meta/generator/targets/ruby.json index ba42dfb40c6..f201afd7339 100644 --- a/examples/meta/generator/targets/ruby.json +++ b/examples/meta/generator/targets/ruby.json @@ -3,11 +3,11 @@ "Statement": "$statement\n", "Comment": "#$comment\n", "Init": { - "Construct": "$name = Shogun::$typeName.new $arguments$kwargs", + "Construct": "$name = Shogun::$typeName.new($arguments)$kwargs", "Copy": "$name = $expr$kwargs", "KeywordArguments": { "List": "\n$elements", - "Element": "$name.put \"$keyword\", $expr", + "Element": "$name.put(\"$keyword\", $expr)", "Separator": "\n", "InitialSeperatorWhenArgs>0": false }, @@ -46,9 +46,9 @@ "IntLiteral": "$number", "RealLiteral": "$number", "FloatLiteral": "$number", - "MethodCall": "$object.$method $arguments", - "StaticCall": "Shogun::$typeName.$method $arguments", - "GlobalCall": "Shogun::$method $arguments", + "MethodCall": "$object.$method($arguments)", + "StaticCall": "Shogun::$typeName.$method($arguments)", + "GlobalCall": "Shogun::$method($arguments)", "Identifier": "$identifier", "Enum":"Shogun::$value" }, @@ -56,18 +56,18 @@ "Access": { "Vector": "$identifier[$indices]", "Matrix": "$identifier[$indices]", - "BoolVector": "$identifier.get_element $indices", - "BoolMatrix": "$identifier.get_element $indices" + "BoolVector": "$identifier.get_element($indices)", + "BoolMatrix": "$identifier.get_element($indices)" }, "Assign": { "Vector": "$identifier[$indices] = $expr", "Matrix": "$identifier[$indices] = $expr", - "BoolVector": "$identifier.set_element $expr, $indices", - "BoolMatrix": "$identifier.set_element $expr, $indices" + "BoolVector": "$identifier.set_element($expr, $indices)", + "BoolMatrix": "$identifier.set_element($expr, $indices)" }, "ZeroIndexed": true }, - "Print": "puts $expr", + "Print": "puts($expr)", "OutputDirectoryName": "ruby", "FileExtension": ".rb" } diff --git a/examples/meta/src/meta_api/kwargs.sg b/examples/meta/src/meta_api/kwargs.sg index e26f9abe0bc..af9c881059f 100644 --- a/examples/meta/src/meta_api/kwargs.sg +++ b/examples/meta/src/meta_api/kwargs.sg @@ -22,10 +22,6 @@ # This also fails (keywords not allowed outside initialisation variables) #kernel_factory("GaussianKernel", a=glob_fun(ordinary_argument)) -# doesnt work in ruby (TODO, don't allow in meta grammar) -# KernelMachine svm2 = kernel_machine("LibSVM", kernel=kernel("GaussianKernel")) - - # Real example # ------------ @@ -33,3 +29,4 @@ Kernel k = kernel("GaussianKernel", log_width=2.0) KernelMachine svm = kernel_machine("LibSVM", C1=1.1, kernel=k) +KernelMachine svm2 = kernel_machine("LibSVM", kernel=kernel("GaussianKernel"))