[refactoring] Started to move (un)wrapper informations to another classes. Added a new RunnableManager class, which handles Runnables in CodeSharper.
CodeSharper.Core/Common/Runnables/RunnableDescriptor:
  - Added a descriptor class to Runnable
  - Handles Consumes and Produces attributes automagically ;)
CodeSharper.Core/Common/Runnables/ProducesAttribute and ConsumesAttribute:
  - Added two semantic argument (un)wrapper attributes
  - These are evaluated by RunnableDescriptor class
Finished the Argument wrapper and unwrapper system.
[performance measure]  Some fixing and performance measuring.
[refactoring] Refactoring StandardControlFlow class.
[refactoring] Changing back the previous version.
[refactoring] Refactored ArgumentWrappers and ArgumentUnwrappers totally. Now we can refactor StandardControlFlow class.
Added FilterTextByColumn and FilterTextByLine classes. They help to filter TextRange objects.
Added a new feature to query text ranges: FilterPosition class. You can query by position, even, odd etc.
Adding new feature for testing easily runnables. Fixed some bugs and design problems.
[refactoring] Refactored TextDocument for using StringBuilder instead of String. These approach could be faster in some cases.
Implemented filter by line position feature.
Little changes and some additions to library
- Added a TrimTextRangeRunnable and a InsertTextRangeRunnable classes.
- Refactoring TestRunnableWithTestCaseOf methods to read examples from a given directory.
- Added new test cases.
Either and CodeSharperGrammar
- Implemented Either(TLeft, TRight) functional-style data-structure.
- Added the CodeSharperGrammar grammar file.
Basically just implementing Commands model to library and a little bit refactoring.
- Moved TestHelper class from Utilities/ to TestHelper/.
- Added a JsonCommandDescriptorParser for parsing command descriptors from JSON files.
- Added a Newtonsoft.Json library for parsing JSON files.
[refactoring] Started to refactoring commands and finished JSON parser of command descriptions.
- Started to redesign Command model. It should be independent from CommandDescriptor objects.
- Finished JsonCommandDescriptorParser class. Now we can easily add command descriptions on JSON.
- Every test is success!
Lots of changes happened in this commit.
- Refactored Option<T> class.
- Started to redesign command model of CodeSharper.
Refactored Command class:
  - Command is split to Command and CommandFactoryBase classes
  - Command class is just a value class that stores runnable, command descriptor and current call arguments
Refactored and added some new rule to CodeSharper grammar and visitor.
CodeSharper\CodeSharper\CodeSharper.Tests.Core\Compiler\CodeSharperCompilerTestFixture:
  - Added a CodeSharperCompilerShouldAbleToParseAndOperatorCommands test