Langserver fixes, vol 2 (#7401)

This commit is contained in:
Erki
2019-11-15 23:42:25 +02:00
committed by Werner
parent 444c0d5ea5
commit ff41b92e97
39 changed files with 100 additions and 159 deletions

View File

@@ -53,10 +53,9 @@
if(/token/word)
return new/node/expression/value/variable(T.value)
if(/token/accessor)
var
token/accessor/A=T
node/expression/value/variable/E//=new(A.member)
stack/S=new()
var/token/accessor/A = T
var/node/expression/value/variable/E
var/stack/S = new()
while(istype(A.object, /token/accessor))
S.Push(A)
A=A.object
@@ -181,11 +180,10 @@
- <ParseParamExpression()>
*/
ParseExpression(list/end=list(/token/end), list/ErrChars=list("{", "}"))
var/stack
opr=new
val=new
var/stack/opr = new
var/stack/val = new
src.expecting=VALUE
for()
while (1)
if(EndOfExpression(end))
break
if(istype(curToken, /token/symbol) && ErrChars.Find(curToken.value))
@@ -278,7 +276,7 @@
NextToken() //skip open parenthesis, already found
var/loops = 0
for()
while (1)
loops++
if(loops>=1000)
CRASH("Something TERRIBLE has gone wrong in ParseFunctionExpression ;__;")
@@ -311,4 +309,4 @@
- <ParseExpression()>
*/
ParseParamExpression()
return ParseExpression(list(",", ")"))
return ParseExpression(list(",", ")"))