diff --git a/ParserTools/ParserTools/DefaultLanguageInformation.cs b/ParserTools/ParserTools/DefaultLanguageInformation.cs index 26a4cb19a..78a87d152 100644 --- a/ParserTools/ParserTools/DefaultLanguageInformation.cs +++ b/ParserTools/ParserTools/DefaultLanguageInformation.cs @@ -16,7 +16,7 @@ namespace PascalABCCompiler.Parsers protected IParser parser; protected string[] type_keywords_array; protected string[] keywords_array; - protected Hashtable keywords = new Hashtable(StringComparer.CurrentCultureIgnoreCase); + protected Dictionary keywords = new Dictionary(StringComparer.CurrentCultureIgnoreCase); protected Hashtable ignored_keywords = new Hashtable(StringComparer.CurrentCultureIgnoreCase); protected Hashtable keyword_kinds = new Hashtable(StringComparer.CurrentCultureIgnoreCase); @@ -105,9 +105,30 @@ namespace PascalABCCompiler.Parsers keywords.Add("label", "label"); keys.Add("label"); keywords.Add("property", "property"); keys.Add("property"); keywords.Add("auto", "auto"); keys.Add("auto"); - //keywords.Add("typeof", "typeof"); keys.Add("typeof"); - //keywords.Add("sizeof", "sizeof"); keys.Add("sizeof"); - keywords_array = keys.ToArray(); + keywords.Add("external", "external"); keys.Add("external"); + keywords.Add("lock", "lock"); keys.Add("lock"); + keywords.Add("where", "where"); keys.Add("where"); + keywords.Add("library", "library"); keys.Add("library"); + keywords.Add("div", "div"); keys.Add("div"); + keywords.Add("mod", "mod"); keys.Add("mod"); + keywords.Add("shl", "shl"); keys.Add("shl"); + keywords.Add("shr", "shr"); keys.Add("shr"); + keywords.Add("not", "not"); keys.Add("not"); + keywords.Add("as", "as"); keys.Add("as"); + keywords.Add("is", "is"); keys.Add("is"); + keywords.Add("on", "on"); keys.Add("on"); + keywords.Add("goto", "goto"); keys.Add("goto"); + keywords.Add("overload", "overload"); keys.Add("overload"); + keywords.Add("internal", "internal"); keys.Add("internal"); + keywords.Add("template", "template"); keys.Add("template"); + keywords.Add("namespace", "namespace"); keys.Add("namespace"); + keywords.Add("exit", "exit"); keys.Add("exit"); + //keywords.Add("typeof", "typeof"); //keys.Add("typeof"); + //keywords.Add("sizeof", "sizeof"); //keys.Add("sizeof"); + keywords_array = new string[keywords.Count + 2]; + keywords_array[0] = "typeof"; + keywords_array[1] = "sizeof"; + keywords.Values.CopyTo(keywords_array, 2); type_keywords_array = type_keys.ToArray(); } diff --git a/README.md b/README.md index 37bfe98d6..d8ca8b6a0 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,13 @@ ## Building PascalABC.NET in Windows +***Run _RegisterHelix.bat on first use to install the HelixToolkit.dll and HelixToolkit.Wpf.dll in GAC*** + _RebuildReleaseAndRunTests.bat builds the project in Release-mode, rebuilds the pas-units and runs tests (run with administrative privileges!). _GenerateAllSetups.bat builds the project in Release-mode, rebuilds the pas-units, runs tests and creates the install package (run with administrative privileges!). _ReBuildRelease.bat builds the project in Release-mode. -_ReBuildDebug.bat builds the project in Debug-mode. - +_ReBuildDebug.bat builds the project in Debug-mode. PascalABC is being developed in Visual Studio Community 2017. @@ -48,6 +49,8 @@ Tests are located in the directory "TestSuite". To run the tests execute the fil ----------------------------------------------------------------------------------------------------- ## Сборка проекта в Windows +***Перед первой компиляцией необходимо запустить _RegisterHelix.bat с правами администратора*** + _RebuildReleaseAndRunTests.bat собирает проект в Release-режиме, перекомпилирует pas-модули и прогоняет все тесты (запускать с правами администратора). _GenerateAllSetups.bat собирает инсталлят (запускать с правами администратора). diff --git a/bin/Highlighting/PascalABCNET.xshd b/bin/Highlighting/PascalABCNET.xshd index 0944828d8..d1ef2c22c 100644 --- a/bin/Highlighting/PascalABCNET.xshd +++ b/bin/Highlighting/PascalABCNET.xshd @@ -65,7 +65,6 @@ -