Лексический анализатор для арифметических выражений - C#
Формулировка задачи:
Всем привет. Помогите плиз сделать лексический анализатор на C#
Задание: Исходный язык содержит арифметические выражения, разделенные символом; (точка с запятой). Арифметические выражения состоят из идентификаторов, целых и действительных чисел (в обычной и логарифмической форме), знака присваивания (=), знаков операций +, -, *, / и круглых скобок.
Автомат написал...проблема с кодом,как реализовать.
Решение задачи: «Лексический анализатор для арифметических выражений»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using evp.test.parser; using System.IO; namespace TestSimpleParser { class Program { public static Stream GenerateStreamFromString(string s) { MemoryStream stream = new MemoryStream(); StreamWriter writer = new StreamWriter(stream); writer.Write(s); writer.Flush(); stream.Position = 0; return stream; } static void Main(string[] args) { String text = @"x = 1; var = 23 + (2*(32 - 12)) * x; x = x + var; y = -54 + 0.32 * 31.4e-4 / 4.13e+10;"; Parser parser = new Parser(new Scanner(GenerateStreamFromString(text))); parser.Parse(); if (parser.errors.count != 0) { Console.WriteLine("Can't parse."); } else { Console.WriteLine("Parsing ok."); Console.WriteLine(parser.AstRoot.ToString()); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д