Releases: kareman/Patterns
0.1.2
0.1.1
-
Simplify .range(of:) and SearchCache.
-
Readme: add note about long build times.
-
Make Pattern Equatable. (#44)
Make AnyPattern not use protocol type.
-
Set Swift version to 5.3.
CI: use 5.3-DEVELOPMENT-SNAPSHOT-2020-08-08-a on Linux.
Cannot use just 5.3 on linux, and when using 5.3-DEVELOPMENT-SNAPSHOT-2020-08-08-a on macOS it cannot find XCTest. -
Merge pull request #45 from kareman/Generic-input
Support generic input
-
Merge pull request #47 from kareman/Readme-require-Swift-5.3
Readme: require Swift 5.3.
Add part about pattern input types.
Split up readme unit test to avoid warning about it taking too long to type check. -
GitHub-related stuff (#51)
Update bug-report.md
CI test: don’t run on non-code related changes.
Update feature-request.md -
Fix bug where not all .skip were replaced.
setupSkip(at: i)
adds 1 new instruction somewhere afterì
, so we cant loop over self.indices directly. -
Update dependency swift-argument-parser. (#54)
-
PatternsTests: Only warn when expressions take long to build.
Not entire functions.
-
Improve and fix documentation for Skip.
-
Merge pull request #55 from kareman/documentation
Add documentation
-
Restore all former String performance tests.
-
Make separate utf8 performance tests.
-
Make instructions @usableFromInline.
-
Merge pull request #56 from kareman/Optimise-after-adding-generic-Input
Specifically specialize for String and UTF8View. It stopped happening automatically after making Pattern.Input generic. Makes a huge difference in performance.
-
Rename Word.boundary to Word.Boundary().
-
Rename Line.start to Line.Start(). Likewise with Line.end.
To make things more consistent, and to allow automatically returning a type with the correct Input type. Which is only possible with a function/initialiser.
-
Don't use Pattern.Instructions outside of its file.
It sometimes causes compiler crashes, it doesn't in this case but we might as well be consistent and never use it.
-
Document Skip() even more.
0.1.0
- unicode_properties: Don't use string interpolation.
- Readme: remove Cartage installation instructions.
- Rename Instruction.split to .choice, remove first parameter.
- More Instruction renaming. Added documentation.
- Convert Capture from a struct to a function.
- 'flatten' Capture to make it easier for
Skip
to see what comes after it. - Add Instruction.choiceEnd.
- Move some instructions as far back as possible.
- Add proper support for ‘Skip’ in preprocessing.
- Undo "'flatten' Capture to make it easier for
Skip
to see what comes after it." - ‘.choice’ must always add to the stack.
- All moved
.checkIndex
should be first. - Merge pull request #37 from kareman/ProperSkip
- Replace instruction '.function' with '.search'.
- Make VMBacktrackEngine a struct.
- Remove ability to do
Skip(a)
, as it had no effect. - Playground: import dependency, add showParserView function.
- Merge pull request #38 from kareman/cleanup
- Improve playground example and screenshot.
- Readme: add ‘OneOf(not: ...)’.
- Add testPlaygroundExample.
- Add mapPrefix.
- Simplify, move optimisation methods to MutableCollection.
- Set associativity for '•' operator to 'left'.
- Add documentation and @inlineable.
- Reinstate Capture as a struct.
- Fix optimisations of
!OneOf • Oneof
and&&OneOf • OneOf
. - Add documentation, remove unused code.
- Add documentation, and @inlinable / @usableFromInline.
- Rename Concat left/right to first/second.
- Add documentation, and @inlinable / @usableFromInline.
- Make Grammar.patterns an array.
- Merge pull request #39 from kareman/simplify
- Add testPEGGrammar.
- PerformanceTests: only measure CPU metrics in current thread.
- Recalibrate performance tests.
- Move and add SkipTests.
- Add tail call optimisation to Grammars.
- Support 'g.a <- " " • Skip() • g.b'. Properly support inserting instructions.
- Merge pull request #40 from kareman/addSkipTests
- Add testBeforeGrammarCallInChoice. placeSkipCommit: .fail isn't fatal.
- Add documentation, some small renaming.
- Add Wiki generation workflow.
- Remove support for CocoaPods.
- Generate wiki (#42)
Use kareman/swift-doc@support-kareman-Patterns - Add documentation to the top level common patterns.