Backport from the lazutils version:
* The compare function can now be a method,
* you can write descendants,
* new property NodeClass,
* an optimized method to add presorted nodes,
* Node.Precessor/Successor methods.
git-svn-id: trunk@35518 -
- external vars
- untyped parameters
- varargs
- SetLength(s,len) is now converted to s.length=len
- destructor now clears references
- dynamic arrays now are never null.
- anArr:=nil becomes anArr = []
- anArr=nil becomes anArr.length==0
- passing nil to an array parameter passes []
- length(anArr) becomes anArr.length
- High(anArr) becomes anArr.length-1
- sets now uses references when assigning and passing to a parameter.
Far less clone operations.
git-svn-id: trunk@35505 -
- external vars
- untyped parameters
- varargs
- SetLength(s,len) is now converted to s.length=len
- destructor now clears references
- dynamic arrays now are never null.
- anArr:=nil becomes anArr = []
- anArr=nil becomes anArr.length==0
- passing nil to an array parameter passes []
- length(anArr) becomes anArr.length
- High(anArr) becomes anArr.length-1
- sets now uses references when assigning and passing to a parameter.
Far less clone operations.
git-svn-id: trunk@35504 -
pastree: changed TPasVariable.LibraryName and ExportName to TPasExpr.
It can be constants instead of string literals.
pscanner: fixed parsing floats 1.2, 1.2E3, 1.E2, 1E2, 1.2E-3, 1E+2
pparser: var modifier external with optional lib and symbol
pasresolver:
- untyped parameter
- added option proAllowPropertyAsVarParam allows to pass a property as a var/out argument
- varargs
git-svn-id: trunk@35503 -
- local const: declare as local var in singleton parent function
- give procedure overloads in module unique names by appending $1, $2, ...
- give nested procedure overloads unique names by appending $1, $2, ...
- give reintroduced/overloaded class members unique names by appending $1, $2, ...
- record operators = and <>
- static arrays
- range: enumtype
- init as arr = rtl.arrayNewMultiDim([dim1,dim2,...],value)
- init with expression from const array
- length(1-dim array)
- low(1-dim array), high(1-dim array)
- property TargetProcessor
- ECMAScript6:
- use 0b for binary literals, and 0o for octal literals
git-svn-id: trunk@35491 -
ad hoc set constants containing varying number cdecl-like calling
conventions
o added pocall_sysv_abi_cdecl and pocall_ms_abi_cdecl to cstylearrayofconst
o also allow C-style blocks with mwpascal instead of cdecl (mwpascal = cdecl
with "const" = "constref" for record parameters)
o did not touch cases related to name mangling and import/export names,
because those are a real mess and easily break things left and right :/
git-svn-id: trunk@35479 -