mirror of
https://github.com/polserver/polserver
synced 2026-08-13 08:23:08 -04:00
* Format escript testsuite
* Manual formatting for escript testsuite
- Add format-off to places where formatter does what it should, but we don't like the results
- Manually change places where formatter outputs weird things _without_ format-off, so next format-all would show changes if not fixed
* Update .err files; add update_err.py helper script
Use the format `:line:col: message` for all .err file checks. This
allows us to change the file names without needing to edit the .err
contents.
Note that `in/inc0{1,2}.err` need have error messages between POSIX and
Windows, so their messages are a bit more "generic" than the other errs.
* Format pol testsuite
* Manual formatting for pol testsuite
* Format pol-core modules
* Manual formatting for pol-core modules
* Additional format pol-core modules
Use FormatterLineWidth=10000 since module functions must be on one line
because of the parse_modules target
* Address Discord comments
- Support multi-line module function declarations in parse_modules
* Format on df07831
68 lines
2.3 KiB
Text
68 lines
2.3 KiB
Text
// Has `unused` parameters make sure ordering of used parameters is correct.
|
|
//
|
|
// The most-inner function will create a local (circumstantially, inside an
|
|
// `if`-block) to test returning locals.
|
|
|
|
var level1 := @( a, b, c ) {
|
|
return struct{ fnA1 := @( d, e, f ) {
|
|
return struct{ fnB1 := @( g, h, i ) {
|
|
return struct{ fnC1 := @( j, unused k, l ) {
|
|
var res := a + b + c + d + e + f + g + h + i + j;
|
|
if ( res > 0 )
|
|
var out_local := res * l;
|
|
return out_local;
|
|
endif
|
|
return res;
|
|
}, fnC2 := @( j, unused k, l ) {
|
|
var res := a * b * c * d * e * f * g * h * i * j;
|
|
if ( res > 0 )
|
|
var out_local := res / l;
|
|
return out_local;
|
|
endif
|
|
return res;
|
|
}, fnC3 := @( j, unused k, l ) {
|
|
var res := a - b - c - d - e - f - g - h - i - j;
|
|
if ( res > 0 )
|
|
var out_local := res + l;
|
|
return out_local;
|
|
endif
|
|
return res;
|
|
} };
|
|
}, fnB2 := @( g, h, i ) {
|
|
return struct{ fnC1 := @( j, unused k, l ) {
|
|
var res := a * b + c + d + e + f + g + h + i + j;
|
|
if ( res > 0 )
|
|
var out_local := res * l;
|
|
return out_local;
|
|
endif
|
|
return res;
|
|
}, fnC2 := @( j, unused k, l ) {
|
|
var res := a + b * c * d * e * f * g * h * i * j;
|
|
if ( res > 0 )
|
|
var out_local := res / l;
|
|
return out_local;
|
|
endif
|
|
return res;
|
|
}, fnC3 := @( j, unused k, l ) {
|
|
var res := a - b * c - d - e - f - g - h - i - j;
|
|
if ( res > 0 )
|
|
var out_local := res + l;
|
|
return out_local;
|
|
endif
|
|
return res;
|
|
} };
|
|
} };
|
|
} };
|
|
};
|
|
|
|
// (a + b + c + d + e + f + g + h + i + j) * l since inner expression is >0
|
|
// (-7 + -6 + -1 + 4 + -4 + 17 + 9 + 3 + 15 + -10) * -7 = -140
|
|
print( level1( -7, -6, -1 ).fnA1.call( 4, -4, 17 ).fnB1.call( 9, 3, 15 ).fnC1.call( -10, -7, -7 ) );
|
|
|
|
// a * b + c + d + e + f + g + h + i + j
|
|
// -3 * -1 + 2 + -7 + -4 + -5 + -2 + 7 + 1 + -1 = -6
|
|
print( level1( -3, -1, 2 ).fnA1.call( -7, -4, -5 ).fnB2.call( -2, 7, 1 ).fnC1.call( -1, 1, 5 ) );
|
|
|
|
// a - b * c - d - e - f - g - h - i - j
|
|
// 10 - 2 * 11 - 10 - 2 - 4 - -8 - -1 - -5 - 10 = -24
|
|
print( level1( 10, 2, 11 ).fnA1.call( 10, 2, 4 ).fnB2.call( -8, -1, -5 ).fnC3.call( 10, -3, 1 ) );
|