using System.Collections.Generic;
public class SyntaxChecker
Dictionary<String, int> labels = new Dictionary<String, int>();
void addLabel(String label) {
if (labels.ContainsKey(label))
throw new InvalidOperationException("Метка была обьявлена дважды!");
void addOperation(String label, int opcode) {
if (labels.ContainsKey(label) && labels[label] != 0 && labels[label] != opcode)
throw new InvalidOperationException("Попытка назначить одной метке разные операторы!");
void checkGoTo(String label) {
if (!labels.ContainsKey(label) || labels[label] == 0)
throw new InvalidOperationException("Метка оператора goto никуда не указывает!");
public static void Main()
Console.WriteLine("Hello World");