Yorick Peterse
3893e56ca8
Rewrote XPath evaluator paths spec.
...
This is the first spec of many that will be re-written. Eventually this will
remove the need of the shared examples as well as removing lots of code
duplication and odd context blocks.
2014-11-09 18:47:20 +01:00
Yorick Peterse
d4150fd0f5
First step at rewriting the CSS parser.
...
The new setup will not involve a separate transformation stage, instead the CSS
parser will directly emit an XPath AST. This reduces the overhead needed for
parsing/evaluating CSS selectors while also simplifying the code. The downside
is that I basically have to re-write 80% of the parser.
2014-10-20 00:30:16 +02:00
Yorick Peterse
7ccd685acb
Use a helper method for transforming CSS ASTs.
2014-10-16 23:01:56 +02:00
Yorick Peterse
665d5fe08c
Added basic specs for the CSS parser.
2014-10-05 01:28:31 +02:00
Yorick Peterse
cc3e752e1f
Removed custom AST::Node class.
...
Since this class did nothing other than extend AST::Node we might as well use
the latter.
2014-10-02 22:49:29 +02:00
Yorick Peterse
331d70e832
Corrected docs of the parse() helper method.
2014-10-02 22:41:22 +02:00
Yorick Peterse
aa60115c0a
Basic boilerplate for lexing CSS selectors.
2014-09-28 22:38:24 +02:00
Yorick Peterse
eba2d9954d
Support for parsing basic XPath expressions.
2014-06-12 00:20:46 +02:00
Yorick Peterse
8dd8d7a519
Basic working XPath lexer.
...
This doesn't lex everything of the XPath specification just yet and needs more
tests.
2014-06-01 19:24:35 +02:00
Yorick Peterse
8237d5791d
Stream tokens when lexing.
...
Instead of returning the tokens as a whole they are now streamed using
XML::Lexer#advance. This method returns the next token upon every call. It uses
a small buffer in case a particular block of text results in multiple tokens.
2014-04-09 22:08:13 +02:00
Yorick Peterse
cb74c7edf9
Specs for XML parser errors.
2014-04-07 21:31:36 +02:00
Yorick Peterse
79818eb349
Added a convenience class for parsing HTML.
...
This removes the need for users having to set the `:html` option themselves.
2014-03-25 09:40:24 +01:00
Yorick Peterse
eae13d21ed
Namespaced the lexer/parser under Oga::XML.
...
With the upcoming XPath and CSS selector lexers/parsers it will be confusing to
keep these in the root namespace.
2014-03-25 09:34:38 +01:00
Yorick Peterse
8d3f3f15d7
Renamed parse_html() to parse().
2014-03-16 23:46:20 +01:00
Yorick Peterse
cb75edc30d
Basic support for lexing/parsing HTML5.
...
This will need a bunch of extra tests before I'll consider closing #7 .
2014-03-16 23:42:24 +01:00
Yorick Peterse
8ce76be050
Moved the parser class to Oga::Parser.
...
Oga will use the same parser for XML and HTML so it doesn't make sense to
separate the two into different namespaces (at least for now).
2014-03-11 22:01:50 +01:00
Yorick Peterse
2c82f88f6c
Basic lexing + parsing of doctypes.
...
We're doing these the lazy way. I can't be bothered writing patterns/rules for
4 different formats for something such as doctypes.
2014-02-27 01:27:51 +01:00
Yorick Peterse
d32888f803
Basic lexer setup/tests.
...
Too lazy to do this the right way. ᕕ(ᐛ)ᕗ
2014-02-26 21:36:30 +01:00
Yorick Peterse
702477ca28
Basic project layout.
2014-02-26 19:50:16 +01:00