pascalabcnet/ReleaseGenerators/sect_PascalABCParser.nsh
AlexanderZemlyak 342375501b
New languages engine (#3120)
* Implement first version of languages interfaces and classes

ParsersController заменен на LanguageProvider.

* Update ParserTools.csproj

* Update RemoteCompiler.cs

* Update TestRunner

* Rename LanguageIntegrator project to Languages

* Update TestRunner

* Rename Parsers folder

* Rename PascalABCParser.dll to PascalABCLanguage.dll

* Reorganise LanguageIntegrator and rename DocTagsParser

* Update Release Generators

* Update language loading messages

* Update linux version

* Move BaseParser fields to ILanguage interface

* Revert "Update Release Generators"

This reverts commit 26a991c71b81e643d9fbd9a815ddca222768dda9.

* Revert "Rename PascalABCParser.dll to PascalABCLanguage.dll"

* Clean the mess in parser folders

* Organize namespaces properly

* Revert "Rename LanguageIntegrator project to Languages"

* Add new enclosing folders for standard languages

* Organize namespaces of LanguageIntegrator properly

* Rename StandardLanguages to Languages

* Comment the rest of Visual basic source code

* Update OutputPath in pascal parser project

* Move BaseParser methods to IParser

* Restore Pascal parser project initial structure

* Add PascalLanguage project

* Move SyntaxTreeConverters project to Languages\Pascal folder

* Rename SemanticRules in parser project

* Rename Errors1 to Errors in parser project

* Delete LambdaConverter dll from installer

* Update language integrator to load *Language.dll files

* Move lambda converter project to pascal lanuage dir

* Revert "Delete LambdaConverter dll from installer"

This reverts commit dd56f559ebe4f8c4c5c33752d44e6953001b96a5.

* Switch off VBNETParser building

* Delete syntax tree converters controller

* Delete lambda converter dll from repository

* Reorganize syntax tree to semantic tree conversion stage

* Add BaseLanguage class to make language initialization more neat

* Delete syntax tree post processors entity from ILanguage and refactor ABCStatistics calls

* Add new IDocParser interface for documentation comments parser

* Clean up folders

* Add helper data structures to reduce parameters amount in CompileInterface and CompileImplementation

* Add documentation to language classes

* Move Union struct in global namespace and project (ParserTools)

* Add more comments and a safe select language method

* Rename SemanticRules class

* Fix directives format null bug

* Add System.Linq ref to LanguageIntegrator

* Delete SyntaxToSemanticTreeConverter interface

* Add BaseSyntaxTreeConverter

* Call safe select language method in intellisence

* Delete source files providers from parsers

* Rename GetSyntaxTree method

* Change Prebuild tree to be virtual - not abstract

* Refresh documentation a bit

* Add temporary language check for ABCHealth button

* Add parser reference to parser tools

* Move current compilation unit assigning higher to avoid bug with unit check

* Delete null DirectiveInfo's and refactor directives' code

* Add a few more comments
2024-05-25 12:26:32 +03:00

61 lines
3 KiB
Plaintext

Section $(DESC_PascalABCNET_Language) PascalABCParser
SectionIn 1 2 RO
SetOutPath "$INSTDIR"
File "..\bin\PascalABCParser.dll"
File "..\bin\PascalLanguage.dll"
${AddFile} "PascalABCParser.dll"
${AddFile} "PascalLanguage.dll"
; File "..\bin\PascalABCPartParser.dll"
SetOutPath "$INSTDIR\Highlighting"
File "..\bin\Highlighting\PascalABCNET.xshd"
${AddFile} "PascalABCNET.xshd"
Push "PascalABCParser.dll"
Call NGEN
; Push "PascalABCPartParser.dll"
; Call NGEN
Push "PascalLanguage.dll"
Call NGEN
SetOutPath "$INSTDIR\Ico"
File "..\bin\Ico\pas.ico"
${AddFile} "pas.ico"
File "..\bin\Ico\pabcproj.ico"
${AddFile} "pabcproj.ico"
;remove PAS file type
DeleteRegKey HKCR "pabcproj"
;insalling PAS file type
ReadRegStr $R0 HKCR ".pabcproj" ""
StrCmp $R0 "PascalABCNET.PascalABCNETProject" 0 +2
DeleteRegKey HKCR "PascalABCNET.PascalABCNETProject"
WriteRegStr HKCR ".pabcproj" "" "PascalABCNET.PascalABCNETProject"
WriteRegStr HKCR "PascalABCNET.PascalABCNETProject" "" "PascalABC.NET Project"
WriteRegStr HKCR "PascalABCNET.PascalABCNETProject\DefaultIcon" "" "$INSTDIR\Ico\pabcproj.ico"
ReadRegStr $R0 HKCR "PascalABCNET.PascalABCNETProject\shell\open\command" ""
StrCmp $R0 "" 0 no_nshopen
WriteRegStr HKCR "PascalABCNET.PascalABCNETProject\shell" "" "open"
WriteRegStr HKCR "PascalABCNET.PascalABCNETProject\shell\open\command" "" '"$INSTDIR\PascalABCNET.exe" "%1"'
no_nshopen:
WriteRegStr HKCR "PascalABCNET.PascalABCNETProject\shell\compile" "" $(DESC_Compile)
WriteRegStr HKCR "PascalABCNET.PascalABCNETProject\shell\compile\command" "" '"$INSTDIR\pabcnetc.exe" "%1"'
SectionEnd
Section $(DESC_PascalABCParserRegistation) PascalABCParserRegistation
SectionIn 1 2
;remove PAS file type
DeleteRegKey HKCR "pas"
;insalling PAS file type
ReadRegStr $R0 HKCR ".pas" ""
StrCmp $R0 "PascalABCNET.PascalABCNETParser" 0 +2
DeleteRegKey HKCR "PascalABCNET.PascalABCNETParser"
WriteRegStr HKCR ".pas" "" "PascalABCNET.PascalABCNETParser"
WriteRegStr HKCR "PascalABCNET.PascalABCNETParser" "" "Pascal Program"
WriteRegStr HKCR "PascalABCNET.PascalABCNETParser\DefaultIcon" "" "$INSTDIR\Ico\pas.ico"
ReadRegStr $R0 HKCR "PascalABCNET.PascalABCNETParser\shell\open\command" ""
StrCmp $R0 "" 0 no_nshopen
WriteRegStr HKCR "PascalABCNET.PascalABCNETParser\shell" "" "open"
WriteRegStr HKCR "PascalABCNET.PascalABCNETParser\shell\open\command" "" '"$INSTDIR\PascalABCNET.exe" "%1"'
no_nshopen:
WriteRegStr HKCR "PascalABCNET.PascalABCNETParser\shell\compile" "" "Компилировать"
WriteRegStr HKCR "PascalABCNET.PascalABCNETParser\shell\compile\command" "" '"$INSTDIR\pabcnetc.exe" "%1"'
; WriteRegStr HKCR "PascalABCNET.PascalABCNETParser\shell\openinpascalabc" "" "Открыть в Pascal ABC"
; WriteRegStr HKCR "PascalABCNET.PascalABCNETParser\shell\compile\openinpascalabc" "" '"$INSTDIR\pabcnetc.exe" "%1"'
SectionEnd