polserver/pol-core/bscript/compiler/codegen
turleypol 7627e3d353
"Preview/Initial"- Version sourcecode formatting feature (#626)
* Squash only prettify changes from escript_formating_try

* support of "format-off" / "format-on" comments to mark areas without
formatting

* fix typo

* added FormatterIdentLevel, FormatterMergeEmptyLines cfg entry
better line splits for dicts/arrays

* added several spacing options. the current setting list is now:
//LineWidth
FormatterLineWidth 80
// keep original keyword spelling
FormatterKeepKeywords 0
// number of spaces for ident
FormatterIdentLevel 2
// multiple newlines get merged to a single
FormatterMergeEmptyLines 1
// space between emtpy parenthesis eg foo() vs foo( )
FormatterEmptyParenthesisSpacing 0
// space between emtpy brackets eg struct{} vs struct{ }
FormatterEmptyBracketSpacing 0
// space after/before parenthesis in conditionals
// eg if ( true ) vs if (true)
FormatterConditionalParenthesisSpacing 1
// space after/before parenthesis
// eg foo( true ) vs foo(true)
FormatterParenthesisSpacing 1
// space after/before brackets
// eg array{ true } vs array{true}
FormatterBracketSpacing 1
// add space after delimiter comma or semi in for loops
// eg {1, 2, 3} vs {1,2,3}
FormatterDelimiterSpacing 1
// add space around assignment
// eg a := 1; vs a:=1;
FormatterAssignmentSpacing 1
// add space around comparison
// eg a == 1 vs a==1
FormatterComparisonSpacing 1
// add space around operations
// eg a + 1 vs a+1
FormatterOperatorSpacing 1
// use \r\n as newline instead of \n
FormatterWindowsLineEndings 0

* added tab support
// use tabs instead of spaces
FormatterUseTabs 0
// tab width
FormatterTabWidth 4

* extended example ecompile.cfg with formatter settings

* cleanup

* program args comma is optional...
fixed line comments in group splitting

* since tokenids are now correct no more guessing for linecomments needed

* comments use as start tokenid the whitespace token if its on the same
line

* splitted processing from linebuilding

* renamed TokenPart to FmtToken better matches the purpose.
Comments get directly stored as FmtToken
started with a context enum

* better(?) formatting for groups

* fix eof rawlines
added check that all comments/rawlines got parsed

* const correctness

* datatype adapted to antlr

* fixed warnings

* added InsertNewlineAtEOF

* add newline at the end if the original file had one
dont strip comment whitespace if its somejind of "header block"
use the defined lineending for /* */ comments

* docs

* \r\n is default on windows \n otherwise

* fixed warning

---------

Co-authored-by: Kevin Eady <8634912+KevinEady@users.noreply.github.com>
2024-02-26 21:21:44 +01:00
..
CaseDispatchGroupVisitor.cpp Add uninit, true, false keywords to grammar (#596) 2024-01-20 05:38:25 +01:00
CaseDispatchGroupVisitor.h Add uninit, true, false keywords to grammar (#596) 2024-01-20 05:38:25 +01:00
CaseJumpDataBlock.cpp Add uninit, true, false keywords to grammar (#596) 2024-01-20 05:38:25 +01:00
CaseJumpDataBlock.h Add uninit, true, false keywords to grammar (#596) 2024-01-20 05:38:25 +01:00
CodeEmitter.cpp Fewer compile warnings (#413) 2021-08-28 22:26:15 +02:00
CodeEmitter.h Properly scope the compiler includes to the Bscript folder. (#360) 2021-02-25 16:53:22 +01:00
CodeGenerator.cpp Internal work to remove OGC (#384) 2021-03-06 01:39:26 +01:00
CodeGenerator.h Internal work to remove OGC (#384) 2021-03-06 01:39:26 +01:00
DataEmitter.cpp Fewer compile warnings (#413) 2021-08-28 22:26:15 +02:00
DataEmitter.h Properly scope the compiler includes to the Bscript folder. (#360) 2021-02-25 16:53:22 +01:00
DebugBlockGuard.cpp Properly scope the compiler includes to the Bscript folder. (#360) 2021-02-25 16:53:22 +01:00
DebugBlockGuard.h New compiler: write debug info (.dbg and .dbg.txt) (#302) 2020-09-12 14:26:58 -07:00
InstructionEmitter.cpp Add uninit, true, false keywords to grammar (#596) 2024-01-20 05:38:25 +01:00
InstructionEmitter.h Add uninit, true, false keywords to grammar (#596) 2024-01-20 05:38:25 +01:00
InstructionGenerator.cpp "Preview/Initial"- Version sourcecode formatting feature (#626) 2024-02-26 21:21:44 +01:00
InstructionGenerator.h Add uninit, true, false keywords to grammar (#596) 2024-01-20 05:38:25 +01:00
ModuleDeclarationRegistrar.cpp Properly scope the compiler includes to the Bscript folder. (#360) 2021-02-25 16:53:22 +01:00
ModuleDeclarationRegistrar.h New compiler: Add AST nodes for function calls. Can compile hello world. (#240) 2020-08-24 01:47:38 -07:00