Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
more fixes
  • Loading branch information
diakopter committed Nov 2, 2011
1 parent 630d886 commit 5c50076
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 17 deletions.
2 changes: 1 addition & 1 deletion lua/compiler/LST2Lua.pm
Expand Up @@ -401,7 +401,7 @@ our multi sub cs_for(LST::XOR $ops) {

our multi sub cs_for(LST::Throw $throw) {
$*LAST_TEMP := 'nil';
return ' error(exc);';
return " error(exc);\n";
}

our multi sub cs_for(String $s) {
Expand Down
30 changes: 15 additions & 15 deletions lua/runtime/Metamodel/KnowHOW/KnowHOWBootstrapper.lua
Expand Up @@ -7,7 +7,7 @@ function KnowHOWBootstrapper.Bootstrap ()
local KnowHOWMeths = {};
KnowHOWMeths.new_type = CodeObjectUtility.WrapNativeMethod(
function (TC, Ignored, Cap)
local KnowHOWTypeObj = CaptureHelper.GetPositional(Cap, 0);
local KnowHOWTypeObj = CaptureHelper.GetPositional(Cap, 1);
local HOW = KnowHOWTypeObj.STable.REPR:instance_of(TC, KnowHOWTypeObj.STable.WHAT);

local TypeName = CaptureHelper.GetNamed(Cap, "name");
Expand All @@ -22,24 +22,24 @@ function KnowHOWBootstrapper.Bootstrap ()
end);
KnowHOWMeths.add_attribute = CodeObjectUtility.WrapNativeMethod(
function (TC, Ignored, Cap)
local HOW = CaptureHelper.GetPositional(Cap, 0);
local Attr = CaptureHelper.GetPositional(Cap, 2);
local HOW = CaptureHelper.GetPositional(Cap, 1);
local Attr = CaptureHelper.GetPositional(Cap, 3);
HOW.Attributes:Add(Attr);
return CaptureHelper.Nil();
end);
KnowHOWMeths.add_method = CodeObjectUtility.WrapNativeMethod(
function (TC, Ignored, Cap)
local HOW = CaptureHelper.GetPositional(Cap, 0);
local Name = CaptureHelper.GetPositionalAsString(Cap, 2);
local Method = CaptureHelper.GetPositional(Cap, 3);
local HOW = CaptureHelper.GetPositional(Cap, 1);
local Name = CaptureHelper.GetPositionalAsString(Cap, 3);
local Method = CaptureHelper.GetPositional(Cap, 4);
HOW.Methods[Name] = Method;
return CaptureHelper.Nil();
end);
KnowHOWMeths.find_method = CodeObjectUtility.WrapNativeMethod(
function (TC, Ignored, Cap)
local Positionals = Cap.Positionals;
local HOW = Positionals[0];
local name = Ops.unbox_str(TC, Positionals[2]);
local HOW = Positionals[1];
local name = Ops.unbox_str(TC, Positionals[3]);
if (HOW.Methods[name] ~= nil) then
return HOW.Methods[name];
else
Expand All @@ -48,19 +48,19 @@ function KnowHOWBootstrapper.Bootstrap ()
end);
KnowHOWMeths.compose = CodeObjectUtility.WrapNativeMethod(
function (TC, Ignored, Cap)
return CaptureHelper.GetPositional(Cap, 1);
return CaptureHelper.GetPositional(Cap, 2);
end);
KnowHOWMeths.attributes = CodeObjectUtility.WrapNativeMethod(
function (TC, Ignored, Cap)
local HOW = CaptureHelper.GetPositional(Cap, 0);
local HOW = CaptureHelper.GetPositional(Cap, 1);
local ListType = KnowHOWBootstrapper.MostDefinedListType(TC);
local Result = ListType.STable.REPR:instance_of(TC, ListType);
Result.Storage = HOW.Attributes;
return Result;
end);
KnowHOWMeths.methods = CodeObjectUtility.WrapNativeMethod(
function (TC, Ignored, Cap)
local HOW = CaptureHelper.GetPositional(Cap, 0);
local HOW = CaptureHelper.GetPositional(Cap, 1);
local ListType = KnowHOWBootstrapper.MostDefinedListType(TC);
local Result = ListType.STable.REPR:instance_of(TC, ListType);
for key, value in pairs(HOW.Methods) do
Expand All @@ -75,8 +75,8 @@ function KnowHOWBootstrapper.Bootstrap ()
end);
KnowHOWMeths.type_check = CodeObjectUtility.WrapNativeMethod(
function (TC, Ignored, Cap)
local self = CaptureHelper.GetPositional(Cap, 1);
local check = CaptureHelper.GetPositional(Cap, 2);
local self = CaptureHelper.GetPositional(Cap, 2);
local check = CaptureHelper.GetPositional(Cap, 3);
return Ops.box_int(TC, self.STable.WHAT == check.STable.WHAT and 1 or 0, TC.DefaultBoolBoxType);
end);

Expand Down Expand Up @@ -111,13 +111,13 @@ function KnowHOWBootstrapper.SetupKnowHOWAttribute (KnowHOW)

HOW.Methods.new = CodeObjectUtility.WrapNativeMethod(
function (TC, Code, Cap)
local WHAT = CaptureHelper.GetPositional(Cap, 1).STable.WHAT;
local WHAT = CaptureHelper.GetPositional(Cap, 2).STable.WHAT;
local Name = Ops.unbox_str(TC, CaptureHelper.GetNamed(Cap, "name"));
return Ops.box_str(TC, Name, WHAT);
end);
HOW.Methods.name = CodeObjectUtility.WrapNativeMethod(
function (TC, Code, Cap)
local self = CaptureHelper.GetPositional(Cap, 1);
local self = CaptureHelper.GetPositional(Cap, 2);
return Ops.box_str(TC, Ops.unbox_str(TC, self), TC.DefaultStrBoxType);
end);

Expand Down
2 changes: 1 addition & 1 deletion lua/runtime/Runtime/CaptureHelper.lua
Expand Up @@ -13,7 +13,7 @@ end

function CaptureHelper.GetPositional (Capture, Pos)
local Possies = Capture.Positionals;
if (Possies ~= nil and Pos < Possies.Length) then
if (Possies ~= nil and Pos <= #Possies) then
return Possies[Pos];
else
return nil;
Expand Down

0 comments on commit 5c50076

Please sign in to comment.