Skip to content

Commit

Permalink
some small refactors
Browse files Browse the repository at this point in the history
  • Loading branch information
Jakz committed Jun 18, 2019
1 parent 2e207fe commit 7a3056d
Show file tree
Hide file tree
Showing 12 changed files with 137 additions and 85 deletions.
17 changes: 13 additions & 4 deletions projects/msvc/Documentation/Documentation.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,9 @@
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;C:\Dev\win_flex_bison;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalOptions>/w34062 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
Expand All @@ -86,7 +88,9 @@
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;C:\Dev\win_flex_bison;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalOptions>/w34062 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
Expand All @@ -97,7 +101,9 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;C:\Dev\win_flex_bison;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalOptions>/w34062 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
Expand All @@ -112,7 +118,10 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;C:\Dev\win_flex_bison;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DisableSpecificWarnings>4068</DisableSpecificWarnings>
<AdditionalOptions>/w34062 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
Expand Down
4 changes: 4 additions & 0 deletions projects/msvc/Impossible/Impossible.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;C:\Dev\win_flex_bison;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4068</DisableSpecificWarnings>
<AdditionalOptions>/w34062 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand All @@ -113,6 +114,7 @@
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;C:\Dev\win_flex_bison;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4068</DisableSpecificWarnings>
<AdditionalOptions>/w34062 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand All @@ -131,6 +133,7 @@
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;C:\Dev\win_flex_bison;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4068</DisableSpecificWarnings>
<AdditionalOptions>/w34062 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand All @@ -151,6 +154,7 @@
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;C:\Dev\win_flex_bison;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4068</DisableSpecificWarnings>
<AdditionalOptions>/w34062 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand Down
4 changes: 4 additions & 0 deletions projects/msvc/Source/Source.vcxitems
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,8 @@
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\src\vm.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\..\..\src\vm\heap.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)..\..\..\src\parser\impossible.l" />
<None Include="$(MSBuildThisFileDirectory)..\..\..\src\parser\impossible.ypp" />
</ItemGroup>
</Project>
8 changes: 8 additions & 0 deletions projects/msvc/Source/Source.vcxitems.filters
Original file line number Diff line number Diff line change
Expand Up @@ -111,4 +111,12 @@
<Filter>src\parser</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)..\..\..\src\parser\impossible.l">
<Filter>src\parser</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\..\..\src\parser\impossible.ypp">
<Filter>src\parser</Filter>
</None>
</ItemGroup>
</Project>
8 changes: 5 additions & 3 deletions src/help.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -199,9 +199,11 @@ void Help::init()

addConstructor(TYPE_MAP, TypeConstructor::make("{'a:1 2:\"foo\"}", "creates a map with specified pairs"));
addConstructor(TYPE_MAP, TypeConstructor::make("{:}", "creates an empty map"));

cout << "Impossible++ v0.3-r50" << endl;
printHelpSummary();
}

void Help::printVersion()
{
cout << "Impossible++ v0.3-r100" << endl;
}

void Help::printHelpMain()
Expand Down
1 change: 1 addition & 0 deletions src/help.h
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ class Help

static void printUndocumented();

static void printVersion();
static void printHelpMain();
static void printHelpSummary();

Expand Down
76 changes: 1 addition & 75 deletions src/instruction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,81 +14,7 @@

std::string Instruction::svalue() const
{
if (_value.type != TYPE_OPCODE)
return _value.svalue();
else
{
switch (_value.opcode()) {
case OP_PLUS: return "+";
case OP_MINUS: return "-";
case OP_TIMES: return "*";
case OP_DIVIDE: return "/";

case OP_NEG: return "_";

case OP_MOD: return "//";

case OP_RAND: return "@>";
case OP_SORT: return "#>";
case OP_SHUFFLE: return "$>";

case OP_PLUS_MON: return "+.";
case OP_PLUS_DIA: return "+:";
case OP_MINUS_MON: return "-.";
case OP_MINUS_DIA: return "-:";
case OP_TIMES_MON: return "*.";
case OP_TIMES_DIA: return "*:";
case OP_DIVIDE_MON: return "/.";
case OP_DIVIDE_DIA: return "/:";

case OP_AND: return "&";
case OP_NOT: return "~";
case OP_OR: return "|";
case OP_RSHIFT: return ">>";
case OP_LSHIFT: return "<<";

case OP_BANG: return "!";
case OP_DBANG: return "!!";
case OP_QUESTION: return "?";
case OP_DQUESTION: return "??";

case OP_EQUAL: return "=";
case OP_LESSER: return "<";
case OP_GREATER: return ">";

case OP_DUPE: return "$";
case OP_SWAP: return "%";
case OP_DROP: return ";";
case OP_PICK: return ",";
case OP_RISE: return "(>";
case OP_SINK: return "<)";

case OP_PEEK: return "^";

case OP_AT: return "@";
case OP_HASH: return "#";
case OP_AT_FRONT: return "<@";
case OP_AT_BACK: return ">@";
case OP_HASH_FRONT: return "<#";
case OP_HASH_BACK: return ">#";

case OP_ITER: return ".>";
case OP_ITERI: return ".>:";
case OP_MAP: return ".>.";
case OP_FOLD: return ":>.";
case OP_DMAP: return ":>:";
case OP_CARTESIAN: return ":*.";

case OP_ANY: return ".?";
case OP_EVERY: return ":?";

case OP_RECUR: return "[#]";
case OP_RECURV: return "{#}";
case OP_WHILE: return "<>";
}

assert(false);
}
return _value.svalue();
}

void Instruction::execute(VM *vm) const
Expand Down
3 changes: 3 additions & 0 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ int main (int argc, const char * argv[])

Help::init();

Help::printVersion();
Help::printHelpSummary();

VM vm(mc);

string input;
Expand Down
14 changes: 14 additions & 0 deletions src/tests/documentation.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,22 @@
#include "help.h"

void registerFunctions(MicroCode& mc);

int main(int argc, char* argv[])
{
MicroCode mc;
registerFunctions(mc);
Help::init();

/*
const auto& operators = Help::ops();
for (const auto& entry : operators)
{
std::cout << entry.first << std::endl;
}
*/

getchar();

return 0;
}
82 changes: 81 additions & 1 deletion src/types/traits.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,87 @@ const std::unordered_map<Type, TypeTraits::TypeSpec, enum_hash> TypeTraits::spec
{ TYPE_UNKNOWN, { TYPE_UNKNOWN, {}, "?" } },

{ TYPE_INVALID, { TYPE_INVALID, {}, "invalid" } },
{ TYPE_NONE, { TYPE_NONE, {}, "none" } }
{ TYPE_NONE, { TYPE_NONE, {}, "none" } },


{ TYPE_OPCODE,
{
TYPE_OPCODE, {}, "opcode",
[](const Value& v) {
switch (v.opcode()) {
case OP_PLUS: return "+";
case OP_MINUS: return "-";
case OP_TIMES: return "*";
case OP_DIVIDE: return "/";

case OP_NEG: return "_";

case OP_MOD: return "//";

case OP_RAND: return "@>";
case OP_SORT: return "#>";
case OP_SHUFFLE: return "$>";

case OP_PLUS_MON: return "+.";
case OP_PLUS_DIA: return "+:";
case OP_MINUS_MON: return "-.";
case OP_MINUS_DIA: return "-:";
case OP_TIMES_MON: return "*.";
case OP_TIMES_DIA: return "*:";
case OP_DIVIDE_MON: return "/.";
case OP_DIVIDE_DIA: return "/:";

case OP_AND: return "&";
case OP_NOT: return "~";
case OP_OR: return "|";
case OP_RSHIFT: return ">>";
case OP_LSHIFT: return "<<";

case OP_BANG: return "!";
case OP_DBANG: return "!!";
case OP_QUESTION: return "?";
case OP_DQUESTION: return "??";

case OP_EQUAL: return "=";
case OP_LESSER: return "<";
case OP_GREATER: return ">";

case OP_DUPE: return "$";
case OP_SWAP: return "%";
case OP_DROP: return ";";
case OP_PICK: return ",";
case OP_RISE: return "(>";
case OP_SINK: return "<)";

case OP_PEEK: return "^";

case OP_AT: return "@";
case OP_HASH: return "#";
case OP_AT_FRONT: return "<@";
case OP_AT_BACK: return ">@";
case OP_HASH_FRONT: return "<#";
case OP_HASH_BACK: return ">#";

case OP_ITER: return ".>";
case OP_ITERI: return ".>:";
case OP_MAP: return ".>.";
case OP_FOLD: return ":>.";
case OP_DMAP: return ":>:";
case OP_CARTESIAN: return ":*.";

case OP_ANY: return ".?";
case OP_EVERY: return ":?";

case OP_RECUR: return "[#]";
case OP_RECURV: return "{#}";
case OP_WHILE: return "<>";
}

assert(false);
return "";
}
}
}
};


Expand Down
3 changes: 2 additions & 1 deletion src/value.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,8 @@ bool Value::operator<(const Value& y) const
return std::less<bool>()(v1, v2);
}
// TODO: collezioni
default: return false;
default:
return false;
}
}
}
2 changes: 1 addition & 1 deletion src/value.h
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ class Value final
return ptr;
}

TCollection* collection() const; //TODO: temporarily virtual to override in collections
TCollection* collection() const;

String* string() const;
Regex* regex() const;
Expand Down

0 comments on commit 7a3056d

Please sign in to comment.