mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-15 23:04:08 +10:00
Fixed casting + grouping, resolved #67
This commit is contained in:
44
Repl.vcxproj
44
Repl.vcxproj
@@ -71,12 +71,12 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<IgnoreImportLibrary>false</IgnoreImportLibrary>
|
<IgnoreImportLibrary>false</IgnoreImportLibrary>
|
||||||
<OutDir>$(SolutionDir)out\$(Configuration)\</OutDir>
|
<OutDir>$(SolutionDir)out\</OutDir>
|
||||||
<IntDir>$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
|
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<OutDir>$(SolutionDir)out\$(Configuration)\</OutDir>
|
<OutDir>$(SolutionDir)out\</OutDir>
|
||||||
<IntDir>$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
|
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>Toy.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Toy.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<AdditionalLibraryDirectories>$(SolutionDir)out\$(Configuration)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(SolutionDir)out</AdditionalLibraryDirectories>
|
||||||
</Link>
|
</Link>
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<AdditionalIncludeDirectories>$(SolutionDir)/source;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)/source;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
@@ -125,30 +125,32 @@
|
|||||||
<AdditionalIncludeDirectories>$(SolutionDir)/source;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(SolutionDir)/source;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalLibraryDirectories>$(SolutionDir)out\$(Configuration)</AdditionalLibraryDirectories>
|
<AdditionalLibraryDirectories>$(SolutionDir)out</AdditionalLibraryDirectories>
|
||||||
<AdditionalDependencies>Toy.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>Toy.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="repl\lib_about.c" />
|
|
||||||
<ClCompile Include="repl\lib_random.c" />
|
|
||||||
<ClCompile Include="repl\lib_runner.c" />
|
|
||||||
<ClCompile Include="repl\lib_standard.c" />
|
|
||||||
<ClCompile Include="repl\repl_main.c" />
|
|
||||||
<ClCompile Include="repl\repl_tools.c" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="repl\lib_about.h" />
|
|
||||||
<ClInclude Include="repl\lib_random.h" />
|
|
||||||
<ClInclude Include="repl\lib_runner.h" />
|
|
||||||
<ClInclude Include="repl\lib_standard.h" />
|
|
||||||
<ClInclude Include="repl\repl_tools.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="Toy.vcxproj">
|
<ProjectReference Include="Toy.vcxproj">
|
||||||
<Project>{26360002-cc2a-469a-9b28-ba0c1af41657}</Project>
|
<Project>{26360002-cc2a-469a-9b28-ba0c1af41657}</Project>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="repl\drive_system.c" />
|
||||||
|
<ClCompile Include="repl\lib_random.c" />
|
||||||
|
<ClCompile Include="repl\lib_runner.c" />
|
||||||
|
<ClCompile Include="repl\lib_standard.c" />
|
||||||
|
<ClCompile Include="repl\lib_toy_version_info.c" />
|
||||||
|
<ClCompile Include="repl\repl_main.c" />
|
||||||
|
<ClCompile Include="repl\repl_tools.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="repl\drive_system.h" />
|
||||||
|
<ClInclude Include="repl\lib_random.h" />
|
||||||
|
<ClInclude Include="repl\lib_runner.h" />
|
||||||
|
<ClInclude Include="repl\lib_standard.h" />
|
||||||
|
<ClInclude Include="repl\lib_toy_version_info.h" />
|
||||||
|
<ClInclude Include="repl\repl_tools.h" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
|
|||||||
@@ -71,12 +71,12 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<OutDir>$(SolutionDir)out\</OutDir>
|
<OutDir>$(SolutionDir)out\</OutDir>
|
||||||
<IntDir>$(Platform)\$(Configuration)\</IntDir>
|
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
<OutDir>$(SolutionDir)out\</OutDir>
|
<OutDir>$(SolutionDir)out\</OutDir>
|
||||||
<IntDir>$(Platform)\$(Configuration)\</IntDir>
|
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
<LinkIncremental>false</LinkIncremental>
|
<LinkIncremental>false</LinkIncremental>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
|||||||
@@ -757,7 +757,7 @@ static Toy_Opcode fnCall(Toy_Parser* parser, Toy_ASTNode** nodeHandle) {
|
|||||||
|
|
||||||
//casting value
|
//casting value
|
||||||
Toy_ASTNode* rhsNode = NULL;
|
Toy_ASTNode* rhsNode = NULL;
|
||||||
grouping(parser, &rhsNode);
|
parsePrecedence(parser, &rhsNode, PREC_TERNARY);
|
||||||
|
|
||||||
//emit the cast node
|
//emit the cast node
|
||||||
|
|
||||||
@@ -766,6 +766,8 @@ static Toy_Opcode fnCall(Toy_Parser* parser, Toy_ASTNode** nodeHandle) {
|
|||||||
//pass it off to the caller
|
//pass it off to the caller
|
||||||
*nodeHandle = lhsNode;
|
*nodeHandle = lhsNode;
|
||||||
|
|
||||||
|
consume(parser, TOY_TOKEN_PAREN_RIGHT, "Expected ')' at end of cast grouping");
|
||||||
|
|
||||||
return TOY_OP_GROUPING_BEGIN; //dummy value
|
return TOY_OP_GROUPING_BEGIN; //dummy value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
11
test/scripts/group-casting-bugfix.toy
Normal file
11
test/scripts/group-casting-bugfix.toy
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
//test for casting + grouping, see #67
|
||||||
|
{
|
||||||
|
assert string(10 % 4) == 2, "basic group casting failed";
|
||||||
|
assert string 4 == 4, "Normal casting failed";
|
||||||
|
|
||||||
|
assert typeof string(10 % 4) == string, "group casting type failed";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
print "All good";
|
||||||
@@ -119,6 +119,7 @@ int main() {
|
|||||||
"dottify-bugfix.toy",
|
"dottify-bugfix.toy",
|
||||||
"function-within-function-bugfix.toy",
|
"function-within-function-bugfix.toy",
|
||||||
"functions.toy",
|
"functions.toy",
|
||||||
|
"group-casting-bugfix.toy",
|
||||||
"increment-postfix-bugfix.toy",
|
"increment-postfix-bugfix.toy",
|
||||||
"index-arrays.toy",
|
"index-arrays.toy",
|
||||||
"index-assignment-both-bugfix.toy",
|
"index-assignment-both-bugfix.toy",
|
||||||
|
|||||||
Reference in New Issue
Block a user