Так на моем языке программирования я делаю, я добавляю, если заявления, до сих пор он может сказать, если переменная равна другой переменной, и это код:Как запустить несколько команд в инструкции IF?
if (line.Contains("IF"))
{
string n1 = line.Substring(line.IndexOf(' ') + 1).Split('=')[0];
string n2 = line.Substring(line.IndexOf('=') + 1).Split(':')[0];
string com = line.Substring(line.IndexOf(':') + 1).Split(',')[0];
string val = "";
string val2 = "";
foreach (KeyValuePair<string, string> kvp in variables)
{
if (n1 == kvp.Key)
{
val = kvp.Value;
}
if (n2 == kvp.Key)
{
val2 = kvp.Value;
}
}
if (val == val2)
{
if (com.Contains("PRINT"))
{
Console.WriteLine("PRINT");
}
}
}
фрагмент кода, который говорит:
if (val == val2)
{
if (com.Contains("PRINT"))
{
Console.WriteLine("PRINT");
}
}
должен выглядеть, если площадь между :
и ,
имеет PRINT и если она затем выписывают PRINT, вот пример того, что он должен выглядеть следующим образом:
$age=14;
PRINT:How old are you?
WRITE:>;
[email protected];
IF age=newage:PRINT PRINT,
Он видит, что возрасты одинаковы, и если они затем PRINT, BTW @ означает ввод, поэтому он будет устанавливать пользовательский возраст нового возраста, он обнаруживает, что область между и ,
содержит PRINT, но она будет только пишите PRINT один раз, и я не уверен, что делать, я пытался использовать список и добавляю элементы между ними, но я получил тот же результат.
о, ручной язык синтаксического анализатора. Ты уверен? Возможно, вы рассмотрите такие инструменты, как ANTLR: http://www.antlr.org/? – Dennis
Он означает, что вы пытаетесь изобрести колесо. Используйте ANTLR. Он построен для этого. –
Но я уже зашел так далеко, у меня есть не только этот код, его более 266 строк кода, и я не хочу его переписывать, но я дам ему взглянуть. –