AML parser article WiP

All about the OSDev Wiki. Discussions about the organization and general structure of articles and how to use the wiki. Request changes here if you don't know how to use the wiki.
Post Reply
intx13
Member
Member
Posts: 112
Joined: Wed Sep 07, 2011 3:34 pm

AML parser article WiP

Post by intx13 »

I've put a little thought into an article about parsing AML. You can check out my work-in-progress on my wiki page: http://wiki.osdev.org/User:Intx13#Recur ... AML_parser

I'd love some feedback as to whether this would be useful information to create a proper wiki page around. Is it too abstract? The wiki page on AML needs a lot of work, but I wanted to capture the parsing information while it was still fresh in my head. Thoughts?
User avatar
BASICFreak
Member
Member
Posts: 284
Joined: Fri Jan 16, 2009 8:34 pm
Location: Louisiana, USA

Re: AML parser article WiP

Post by BASICFreak »

I'm going to say it's good, and I have been looking for this information - banging my head against the wall because of the manuals...

And I will say yes, once you are done you should make an official WiKi page for it.


I would recommend optimizations and no recursive code, but that's just me - the information is there and explained in an easy-to-comprehend way.
BOS Source Thanks to GitHub
BOS Expanded Commentary
Both under active development!
Sortie wrote:
  • Don't play the role of an operating systems developer, be one.
  • Be truly afraid of undefined [behavior].
  • Your operating system should be itself, not fight what it is.
intx13
Member
Member
Posts: 112
Joined: Wed Sep 07, 2011 3:34 pm

Re: AML parser article WiP

Post by intx13 »

I started with a recursive descent parser because the AML grammar (at least the first time you look at it) looks like a natural fit. If it weren't for implicit-length objects nested inside explicit-length objects and the awful MethodInvocation grammar, it would be easy to parse. "Pure" recursive descent parsing is pretty slow though. I'm not sure how much optimizations and inlining will speed it up, or if it just needs a different approach to be fast.
Post Reply