Bon... par où commencer avec celui-ci....
Le premier à écrire un analyseur syntaxique, eh bien, c'est un très large relevé en particulier avec la question de votre demande.
Votre déclaration d'ouverture a été que vous souhaitiez une simple arithmatic "parser" , bien que techniquement ce n'est pas un analyseur, il est un analyseur lexical, similaire à ce que vous pouvez utiliser pour créer un nouveau langage. ( http://en.wikipedia.org/wiki/Lexical_analysis ) je comprends cependant exactement où la confusion est la même chose peut venir de la. Il est important de noter que l'analyse Lexicale est AUSSI ce que vous aurez envie de comprendre si vous allez écrire la langue/script analyseurs de trop, ce n'est strictement pas l'analyse parce que vous êtes à interpréter les instructions plutôt que de faire usage d'entre eux.
De retour à l'analyse de la question....
C'est ce que vous allez faire si vous prenez un rigidement définis structure du fichier pour en extraire les informations.
En général, vous vraiment n'avez pas à écrire un parser XML / HTML, car il y a déjà une tonne d'entre eux autour, et d'autant plus si votre analyse de XML produit par le .NET moment de l'exécution, alors vous n'avez même pas besoin d'analyser, vous avez juste besoin de "serialise" et "de-serialise".
Dans l'intérêt de l'apprentissage cependant, l'analyse de XML (Ou quelque chose de similaire comme le html) est très simple dans la plupart des cas.
si nous commençons avec le fichier XML suivant:
<movies>
<movie id="1">
<name>Tron</name>
</movie>
<movie id="2">
<name>Tron Legacy</name>
</movie>
<movies>
nous pouvons charger les données dans un XElement comme suit:
XElement myXML = XElement.Load("mymovies.xml");
ensuite, vous pouvez obtenir à la "films" de l'élément racine à l'aide de 'myXML.Root'
Plus intéressant, toutefois, vous pouvez utiliser Linq facilement pour obtenir les balises imbriquées:
var myElements = from p in myXML.Root.Elements("movie")
select p;
Vous donnera une var de XElements contenant chacun un " ... " que vous pouvez obtenir à l'aide de quelque chose comme:
foreach(var v in myElements)
{
Console.WriteLine(string.Format("ID {0} = {1}",(int)v.Attributes["id"],(string)v.Element("movie"));
}
Pour rien d'autre que XML comme structure de données, alors je crains que vous allez avoir à commencer à apprendre l'art des expressions régulières, un outil comme "Expression Régulière Coach" va vous aider à imensly ( http://weitz.de/regex-coach/ ) ou de l'un des plus uptodate d'outils similaires.
Vous aurez également besoin de se familiariser avec le .NET expression régulière objets, ( http://www.codeproject.com/KB/dotnet/regextutorial.aspx ) devrait vous donner un bon départ.
Une fois que vous savez comment votre reg-ex ça marche alors dans la plupart des cas, c'est un cas simple cas de la lecture dans les fichiers ligne par ligne et de donner un sens à eux en utilisant toujours la méthode que vous sentez à l'aise avec.
Une bonne source libre de formats de fichiers pour presque tout ce que vous pouvez imaginer peut être trouvé à la ( http://www.wotsit.org/ )