├── .github └── workflows │ └── ci.yml ├── .gitignore ├── LICENSE ├── core-fs2 └── src │ └── main │ └── scala │ └── io │ └── dylemma │ └── spac │ └── interop │ └── fs2 │ ├── impl │ ├── ParserToPipe.scala │ └── TransformerToPipe.scala │ └── package.scala ├── core └── src │ ├── main │ ├── scala-2 │ │ └── io │ │ │ └── dylemma │ │ │ └── spac │ │ │ └── CallerPos.scala │ ├── scala-3 │ │ └── io.dylemma.spac │ │ │ └── CallerPos.scala │ └── scala │ │ └── io │ │ └── dylemma │ │ └── spac │ │ ├── ContextChange.scala │ │ ├── ContextMatcher.scala │ │ ├── ContextTrace.scala │ │ ├── HasLocation.scala │ │ ├── Parser.scala │ │ ├── Signal.scala │ │ ├── SingleItemContextMatcher.scala │ │ ├── Source.scala │ │ ├── SpacException.scala │ │ ├── SpacTraceElement.scala │ │ ├── Splitter.scala │ │ ├── StackInterpretation.scala │ │ ├── StackLike.scala │ │ ├── Transformer.scala │ │ ├── TypeReduce.scala │ │ ├── Unconsable.scala │ │ ├── impl │ │ ├── ArrayHelper.scala │ │ ├── HandlerBind.scala │ │ ├── HandlerProtect.scala │ │ ├── IteratorTransform.scala │ │ ├── ParserAsTransformer.scala │ │ ├── ParserCompoundN.scala │ │ ├── ParserDefer.scala │ │ ├── ParserDeferHandler.scala │ │ ├── ParserDelay.scala │ │ ├── ParserDrain.scala │ │ ├── ParserEagerConjunction.scala │ │ ├── ParserEagerDisjunction.scala │ │ ├── ParserExpectInputs.scala │ │ ├── ParserFind.scala │ │ ├── ParserFirst.scala │ │ ├── ParserFirstOpt.scala │ │ ├── ParserFold.scala │ │ ├── ParserFollowedByParser.scala │ │ ├── ParserFollowedByTransformer.scala │ │ ├── ParserHandlerForBuilder.scala │ │ ├── ParserInterruptedBy.scala │ │ ├── ParserMapped.scala │ │ ├── ParserOrElseChain.scala │ │ ├── ParserPure.scala │ │ ├── ParserRethrow.scala │ │ ├── ParserTap.scala │ │ ├── ParserTry.scala │ │ ├── ParserWithName.scala │ │ ├── SplitterByConsecutiveMatches.scala │ │ ├── SplitterByContextMatch.scala │ │ ├── SplitterByInputMatch.scala │ │ ├── SplitterJoiner.scala │ │ ├── TopLevelParserHandler.scala │ │ ├── TopLevelTransformerHandler.scala │ │ ├── TransformerCollect.scala │ │ ├── TransformerDrop.scala │ │ ├── TransformerDropWhile.scala │ │ ├── TransformerFilter.scala │ │ ├── TransformerIdentity.scala │ │ ├── TransformerIntoParser.scala │ │ ├── TransformerMap.scala │ │ ├── TransformerMapFlatten.scala │ │ ├── TransformerMerge.scala │ │ ├── TransformerScan.scala │ │ ├── TransformerSpacFrame.scala │ │ ├── TransformerStack.scala │ │ ├── TransformerTake.scala │ │ ├── TransformerTakeWhile.scala │ │ ├── TransformerTap.scala │ │ └── TransformerWithName.scala │ │ └── package.scala │ └── test │ └── scala │ └── io │ └── dylemma │ └── spac │ ├── ContextLineMatcher.scala │ ├── ContextLineNumberSupport.scala │ ├── ContextWithLine.scala │ ├── LineNumberCell.scala │ ├── ParserCompanionTests.scala │ ├── ParserConjunctionTests.scala │ ├── ParserDisjunctionTests.scala │ ├── ParserTests.scala │ ├── SpacTestUtils.scala │ ├── SplitterTests.scala │ ├── TransformerCompanionTests.scala │ └── TransformerTests.scala ├── examples └── src │ └── main │ ├── resources │ └── library.xml │ └── scala │ └── io │ └── dylemma │ └── spac │ └── example │ ├── Example01_Basics.scala │ ├── Example02_Contexts.scala │ ├── Example02a_BrokenContext.scala │ ├── Example03_EntryList.scala │ ├── Example04_ParserCombine.scala │ ├── Example05_FollowedBy.scala │ ├── Example06_NestedContexts.scala │ ├── Example07_Interrupter.scala │ ├── Example08_RecursiveTypes.scala │ ├── Example09_TransformerFlatten.scala │ ├── Example10_Fs2.scala │ ├── Example11_SpacException.scala │ ├── Example12_Fs2DataSupport.scala │ ├── Example_FromReadme.scala │ └── Helpers.scala ├── json-fs2-data └── src │ ├── main │ └── scala │ │ └── io │ │ └── dylemma │ │ └── spac │ │ └── json │ │ └── Fs2DataSource.scala │ └── test │ └── scala │ └── io │ └── dylemma │ └── spac │ └── json │ └── Fs2JsonInteropTests.scala ├── json-jackson └── src │ ├── main │ └── scala │ │ └── io │ │ └── dylemma │ │ └── spac │ │ └── json │ │ ├── JacksonSource.scala │ │ └── WrappedJacksonParser.scala │ └── test │ └── scala │ └── io │ └── dylemma │ └── spac │ └── json │ ├── JacksonInteropTests.scala │ └── JacksonSourceTests.scala ├── json └── src │ ├── main │ └── scala │ │ └── io │ │ └── dylemma │ │ └── spac │ │ └── json │ │ ├── JsonEvent.scala │ │ ├── impl │ │ ├── ArrayIndexContextMatcher.scala │ │ ├── JsonParserTypedFirst.scala │ │ ├── JsonStackFixer.scala │ │ └── ObjectFieldContextMatcher.scala │ │ └── package.scala │ └── test │ └── scala │ └── io │ └── dylemma │ └── spac │ └── json │ ├── JsonErrorHandlingBehaviors.scala │ └── JsonParserBehaviors.scala ├── project ├── build.properties └── plugins.sbt ├── readme.md ├── tutorial.md ├── xml-fs2-data └── src │ ├── main │ └── scala │ │ └── io │ │ └── dylemma │ │ └── spac │ │ └── xml │ │ ├── Fs2DataSource.scala │ │ └── fs2_data_events.scala │ └── test │ └── scala │ └── io │ └── dylemma │ └── spac │ └── xml │ └── Fs2XmlInteropTests.scala ├── xml-javax └── src │ ├── main │ └── scala │ │ └── io │ │ └── dylemma │ │ └── spac │ │ └── xml │ │ ├── JavaxSource.scala │ │ ├── WrappedEventReader.scala │ │ └── javax_events.scala │ └── test │ └── scala │ └── io │ └── dylemma │ └── spac │ └── xml │ └── JavaxSourceTests.scala └── xml └── src ├── main └── scala │ └── io │ └── dylemma │ └── spac │ └── xml │ ├── XmlEvent.scala │ ├── XmlSpacException.scala │ ├── impl │ ├── XmlParserMandatoryAttribute.scala │ ├── XmlParserOptionalAttribute.scala │ └── XmlParserText.scala │ └── package.scala └── test └── scala └── io └── dylemma └── spac └── xml ├── ContextMatcherTests.scala ├── TestXml.scala ├── XmlErrorHandlingBehaviors.scala └── XmlParserBehaviors.scala /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/LICENSE -------------------------------------------------------------------------------- /core-fs2/src/main/scala/io/dylemma/spac/interop/fs2/impl/ParserToPipe.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core-fs2/src/main/scala/io/dylemma/spac/interop/fs2/impl/ParserToPipe.scala -------------------------------------------------------------------------------- /core-fs2/src/main/scala/io/dylemma/spac/interop/fs2/impl/TransformerToPipe.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core-fs2/src/main/scala/io/dylemma/spac/interop/fs2/impl/TransformerToPipe.scala -------------------------------------------------------------------------------- /core-fs2/src/main/scala/io/dylemma/spac/interop/fs2/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core-fs2/src/main/scala/io/dylemma/spac/interop/fs2/package.scala -------------------------------------------------------------------------------- /core/src/main/scala-2/io/dylemma/spac/CallerPos.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala-2/io/dylemma/spac/CallerPos.scala -------------------------------------------------------------------------------- /core/src/main/scala-3/io.dylemma.spac/CallerPos.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala-3/io.dylemma.spac/CallerPos.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/ContextChange.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/ContextChange.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/ContextMatcher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/ContextMatcher.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/ContextTrace.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/ContextTrace.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/HasLocation.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/HasLocation.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/Parser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/Parser.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/Signal.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/Signal.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/SingleItemContextMatcher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/SingleItemContextMatcher.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/Source.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/Source.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/SpacException.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/SpacException.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/SpacTraceElement.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/SpacTraceElement.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/Splitter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/Splitter.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/StackInterpretation.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/StackInterpretation.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/StackLike.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/StackLike.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/Transformer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/Transformer.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/TypeReduce.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/TypeReduce.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/Unconsable.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/Unconsable.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ArrayHelper.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ArrayHelper.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/HandlerBind.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/HandlerBind.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/HandlerProtect.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/HandlerProtect.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/IteratorTransform.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/IteratorTransform.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserAsTransformer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserAsTransformer.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserCompoundN.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserCompoundN.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserDefer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserDefer.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserDeferHandler.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserDeferHandler.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserDelay.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserDelay.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserDrain.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserDrain.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserEagerConjunction.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserEagerConjunction.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserEagerDisjunction.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserEagerDisjunction.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserExpectInputs.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserExpectInputs.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserFind.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserFind.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserFirst.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserFirst.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserFirstOpt.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserFirstOpt.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserFold.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserFold.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserFollowedByParser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserFollowedByParser.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserFollowedByTransformer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserFollowedByTransformer.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserHandlerForBuilder.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserHandlerForBuilder.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserInterruptedBy.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserInterruptedBy.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserMapped.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserMapped.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserOrElseChain.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserOrElseChain.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserPure.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserPure.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserRethrow.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserRethrow.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserTap.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserTap.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserTry.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserTry.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/ParserWithName.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/ParserWithName.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/SplitterByConsecutiveMatches.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/SplitterByConsecutiveMatches.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/SplitterByContextMatch.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/SplitterByContextMatch.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/SplitterByInputMatch.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/SplitterByInputMatch.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/SplitterJoiner.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/SplitterJoiner.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TopLevelParserHandler.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TopLevelParserHandler.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TopLevelTransformerHandler.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TopLevelTransformerHandler.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerCollect.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerCollect.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerDrop.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerDrop.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerDropWhile.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerDropWhile.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerFilter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerFilter.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerIdentity.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerIdentity.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerIntoParser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerIntoParser.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerMap.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerMap.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerMapFlatten.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerMapFlatten.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerMerge.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerMerge.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerScan.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerScan.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerSpacFrame.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerSpacFrame.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerStack.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerStack.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerTake.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerTake.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerTakeWhile.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerTakeWhile.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerTap.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerTap.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/impl/TransformerWithName.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/impl/TransformerWithName.scala -------------------------------------------------------------------------------- /core/src/main/scala/io/dylemma/spac/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/main/scala/io/dylemma/spac/package.scala -------------------------------------------------------------------------------- /core/src/test/scala/io/dylemma/spac/ContextLineMatcher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/test/scala/io/dylemma/spac/ContextLineMatcher.scala -------------------------------------------------------------------------------- /core/src/test/scala/io/dylemma/spac/ContextLineNumberSupport.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/test/scala/io/dylemma/spac/ContextLineNumberSupport.scala -------------------------------------------------------------------------------- /core/src/test/scala/io/dylemma/spac/ContextWithLine.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/test/scala/io/dylemma/spac/ContextWithLine.scala -------------------------------------------------------------------------------- /core/src/test/scala/io/dylemma/spac/LineNumberCell.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/test/scala/io/dylemma/spac/LineNumberCell.scala -------------------------------------------------------------------------------- /core/src/test/scala/io/dylemma/spac/ParserCompanionTests.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/test/scala/io/dylemma/spac/ParserCompanionTests.scala -------------------------------------------------------------------------------- /core/src/test/scala/io/dylemma/spac/ParserConjunctionTests.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/test/scala/io/dylemma/spac/ParserConjunctionTests.scala -------------------------------------------------------------------------------- /core/src/test/scala/io/dylemma/spac/ParserDisjunctionTests.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/test/scala/io/dylemma/spac/ParserDisjunctionTests.scala -------------------------------------------------------------------------------- /core/src/test/scala/io/dylemma/spac/ParserTests.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/test/scala/io/dylemma/spac/ParserTests.scala -------------------------------------------------------------------------------- /core/src/test/scala/io/dylemma/spac/SpacTestUtils.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/test/scala/io/dylemma/spac/SpacTestUtils.scala -------------------------------------------------------------------------------- /core/src/test/scala/io/dylemma/spac/SplitterTests.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/test/scala/io/dylemma/spac/SplitterTests.scala -------------------------------------------------------------------------------- /core/src/test/scala/io/dylemma/spac/TransformerCompanionTests.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/test/scala/io/dylemma/spac/TransformerCompanionTests.scala -------------------------------------------------------------------------------- /core/src/test/scala/io/dylemma/spac/TransformerTests.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/core/src/test/scala/io/dylemma/spac/TransformerTests.scala -------------------------------------------------------------------------------- /examples/src/main/resources/library.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/resources/library.xml -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Example01_Basics.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Example01_Basics.scala -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Example02_Contexts.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Example02_Contexts.scala -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Example02a_BrokenContext.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Example02a_BrokenContext.scala -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Example03_EntryList.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Example03_EntryList.scala -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Example04_ParserCombine.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Example04_ParserCombine.scala -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Example05_FollowedBy.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Example05_FollowedBy.scala -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Example06_NestedContexts.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Example06_NestedContexts.scala -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Example07_Interrupter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Example07_Interrupter.scala -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Example08_RecursiveTypes.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Example08_RecursiveTypes.scala -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Example09_TransformerFlatten.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Example09_TransformerFlatten.scala -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Example10_Fs2.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Example10_Fs2.scala -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Example11_SpacException.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Example11_SpacException.scala -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Example12_Fs2DataSupport.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Example12_Fs2DataSupport.scala -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Example_FromReadme.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Example_FromReadme.scala -------------------------------------------------------------------------------- /examples/src/main/scala/io/dylemma/spac/example/Helpers.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/examples/src/main/scala/io/dylemma/spac/example/Helpers.scala -------------------------------------------------------------------------------- /json-fs2-data/src/main/scala/io/dylemma/spac/json/Fs2DataSource.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/json-fs2-data/src/main/scala/io/dylemma/spac/json/Fs2DataSource.scala -------------------------------------------------------------------------------- /json-fs2-data/src/test/scala/io/dylemma/spac/json/Fs2JsonInteropTests.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/json-fs2-data/src/test/scala/io/dylemma/spac/json/Fs2JsonInteropTests.scala -------------------------------------------------------------------------------- /json-jackson/src/main/scala/io/dylemma/spac/json/JacksonSource.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/json-jackson/src/main/scala/io/dylemma/spac/json/JacksonSource.scala -------------------------------------------------------------------------------- /json-jackson/src/main/scala/io/dylemma/spac/json/WrappedJacksonParser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/json-jackson/src/main/scala/io/dylemma/spac/json/WrappedJacksonParser.scala -------------------------------------------------------------------------------- /json-jackson/src/test/scala/io/dylemma/spac/json/JacksonInteropTests.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/json-jackson/src/test/scala/io/dylemma/spac/json/JacksonInteropTests.scala -------------------------------------------------------------------------------- /json-jackson/src/test/scala/io/dylemma/spac/json/JacksonSourceTests.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/json-jackson/src/test/scala/io/dylemma/spac/json/JacksonSourceTests.scala -------------------------------------------------------------------------------- /json/src/main/scala/io/dylemma/spac/json/JsonEvent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/json/src/main/scala/io/dylemma/spac/json/JsonEvent.scala -------------------------------------------------------------------------------- /json/src/main/scala/io/dylemma/spac/json/impl/ArrayIndexContextMatcher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/json/src/main/scala/io/dylemma/spac/json/impl/ArrayIndexContextMatcher.scala -------------------------------------------------------------------------------- /json/src/main/scala/io/dylemma/spac/json/impl/JsonParserTypedFirst.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/json/src/main/scala/io/dylemma/spac/json/impl/JsonParserTypedFirst.scala -------------------------------------------------------------------------------- /json/src/main/scala/io/dylemma/spac/json/impl/JsonStackFixer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/json/src/main/scala/io/dylemma/spac/json/impl/JsonStackFixer.scala -------------------------------------------------------------------------------- /json/src/main/scala/io/dylemma/spac/json/impl/ObjectFieldContextMatcher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/json/src/main/scala/io/dylemma/spac/json/impl/ObjectFieldContextMatcher.scala -------------------------------------------------------------------------------- /json/src/main/scala/io/dylemma/spac/json/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/json/src/main/scala/io/dylemma/spac/json/package.scala -------------------------------------------------------------------------------- /json/src/test/scala/io/dylemma/spac/json/JsonErrorHandlingBehaviors.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/json/src/test/scala/io/dylemma/spac/json/JsonErrorHandlingBehaviors.scala -------------------------------------------------------------------------------- /json/src/test/scala/io/dylemma/spac/json/JsonParserBehaviors.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/json/src/test/scala/io/dylemma/spac/json/JsonParserBehaviors.scala -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.9.6 -------------------------------------------------------------------------------- /project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/project/plugins.sbt -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/readme.md -------------------------------------------------------------------------------- /tutorial.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/tutorial.md -------------------------------------------------------------------------------- /xml-fs2-data/src/main/scala/io/dylemma/spac/xml/Fs2DataSource.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml-fs2-data/src/main/scala/io/dylemma/spac/xml/Fs2DataSource.scala -------------------------------------------------------------------------------- /xml-fs2-data/src/main/scala/io/dylemma/spac/xml/fs2_data_events.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml-fs2-data/src/main/scala/io/dylemma/spac/xml/fs2_data_events.scala -------------------------------------------------------------------------------- /xml-fs2-data/src/test/scala/io/dylemma/spac/xml/Fs2XmlInteropTests.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml-fs2-data/src/test/scala/io/dylemma/spac/xml/Fs2XmlInteropTests.scala -------------------------------------------------------------------------------- /xml-javax/src/main/scala/io/dylemma/spac/xml/JavaxSource.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml-javax/src/main/scala/io/dylemma/spac/xml/JavaxSource.scala -------------------------------------------------------------------------------- /xml-javax/src/main/scala/io/dylemma/spac/xml/WrappedEventReader.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml-javax/src/main/scala/io/dylemma/spac/xml/WrappedEventReader.scala -------------------------------------------------------------------------------- /xml-javax/src/main/scala/io/dylemma/spac/xml/javax_events.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml-javax/src/main/scala/io/dylemma/spac/xml/javax_events.scala -------------------------------------------------------------------------------- /xml-javax/src/test/scala/io/dylemma/spac/xml/JavaxSourceTests.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml-javax/src/test/scala/io/dylemma/spac/xml/JavaxSourceTests.scala -------------------------------------------------------------------------------- /xml/src/main/scala/io/dylemma/spac/xml/XmlEvent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml/src/main/scala/io/dylemma/spac/xml/XmlEvent.scala -------------------------------------------------------------------------------- /xml/src/main/scala/io/dylemma/spac/xml/XmlSpacException.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml/src/main/scala/io/dylemma/spac/xml/XmlSpacException.scala -------------------------------------------------------------------------------- /xml/src/main/scala/io/dylemma/spac/xml/impl/XmlParserMandatoryAttribute.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml/src/main/scala/io/dylemma/spac/xml/impl/XmlParserMandatoryAttribute.scala -------------------------------------------------------------------------------- /xml/src/main/scala/io/dylemma/spac/xml/impl/XmlParserOptionalAttribute.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml/src/main/scala/io/dylemma/spac/xml/impl/XmlParserOptionalAttribute.scala -------------------------------------------------------------------------------- /xml/src/main/scala/io/dylemma/spac/xml/impl/XmlParserText.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml/src/main/scala/io/dylemma/spac/xml/impl/XmlParserText.scala -------------------------------------------------------------------------------- /xml/src/main/scala/io/dylemma/spac/xml/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml/src/main/scala/io/dylemma/spac/xml/package.scala -------------------------------------------------------------------------------- /xml/src/test/scala/io/dylemma/spac/xml/ContextMatcherTests.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml/src/test/scala/io/dylemma/spac/xml/ContextMatcherTests.scala -------------------------------------------------------------------------------- /xml/src/test/scala/io/dylemma/spac/xml/TestXml.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml/src/test/scala/io/dylemma/spac/xml/TestXml.scala -------------------------------------------------------------------------------- /xml/src/test/scala/io/dylemma/spac/xml/XmlErrorHandlingBehaviors.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml/src/test/scala/io/dylemma/spac/xml/XmlErrorHandlingBehaviors.scala -------------------------------------------------------------------------------- /xml/src/test/scala/io/dylemma/spac/xml/XmlParserBehaviors.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dylemma/xml-spac/HEAD/xml/src/test/scala/io/dylemma/spac/xml/XmlParserBehaviors.scala --------------------------------------------------------------------------------