Лексический анализатор для арифметических выражений - 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());
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.429 из 5
Похожие ответы