switch(exp.type)
{
case newExp:
- if(InsideIncl(&exp._new.size.loc, line, charPos))
+ if(exp._new.size && InsideIncl(&exp._new.size.loc, line, charPos))
{
idResult = FindParamsExpression(exp._new.size, line, charPos);
if(idResult) return idResult;
}
break;
case renewExp:
- if(InsideIncl(&exp._renew.exp.loc, line, charPos))
+ if(exp._renew.exp && InsideIncl(&exp._renew.exp.loc, line, charPos))
{
idResult = FindParamsExpression(exp._renew.exp, line, charPos);
if(idResult) return idResult;
}
- if(InsideIncl(&exp._renew.size.loc, line, charPos))
+ if(exp._renew.size && InsideIncl(&exp._renew.size.loc, line, charPos))
{
idResult = FindParamsExpression(exp._renew.size, line, charPos);
if(idResult) return idResult;
break;
case identifierExp:
case constantExp:
- idResult = FindParamsIdentifier(exp.identifier, line, charPos);
- if(idResult) return idResult;
+ if(exp.identifier)
+ {
+ idResult = FindParamsIdentifier(exp.identifier, line, charPos);
+ if(idResult) return idResult;
+ }
//return (void *)-1;
break;
case instanceExp:
- if(InsideIncl(&exp.instance.loc, line, charPos))
+ if(exp.instance && InsideIncl(&exp.instance.loc, line, charPos))
{
idResult = FindParamsInstance(exp.instance, line, charPos);
if(idResult) return idResult;
{
Expression expression;
- for(expression = exp.list->first; expression; expression = expression.next)
+ for(expression = exp.list ? exp.list->first : null; expression; expression = expression.next)
{
if(InsideIncl(&expression.loc, line, charPos))
{
case indexExp:
{
Expression expression;
- if(InsideIncl(&exp.index.exp.loc, line, charPos))
+ if(exp.index.exp && InsideIncl(&exp.index.exp.loc, line, charPos))
{
idResult = FindParamsExpression(exp.index.exp, line, charPos);
if(idResult) return idResult;
}
- for(expression = exp.index.index->first; expression; expression = expression.next)
+ for(expression = exp.index.index ? exp.index.index->first : null; expression; expression = expression.next)
{
if(InsideIncl(&expression.loc, line, charPos))
{
int arg;
Type type = exp.call.exp.expType;
- if(InsideIncl(&exp.call.exp.loc, line, charPos))
+ if(exp.call.exp && InsideIncl(&exp.call.exp.loc, line, charPos))
{
idResult = FindParamsExpression(exp.call.exp, line, charPos);
// Check for type here?
break;
}
case memberExp:
- if(InsideIncl(&exp.member.exp.loc, line, charPos))
+ if(exp.member.exp && InsideIncl(&exp.member.exp.loc, line, charPos))
{
idResult = FindParamsExpression(exp.member.exp, line, charPos);
if(idResult) return idResult;
}
break;
case pointerExp:
- if(InsideIncl(&exp.member.exp.loc, line, charPos))
+ if(exp.member.exp && InsideIncl(&exp.member.exp.loc, line, charPos))
{
idResult = FindParamsExpression(exp.member.exp, line, charPos);
if(idResult) return idResult;
case typeSizeExp:
break;
case castExp:
- if(InsideIncl(&exp.cast.exp.loc, line, charPos))
+ if(exp.cast.exp && InsideIncl(&exp.cast.exp.loc, line, charPos))
{
idResult = FindParamsExpression(exp.cast.exp, line, charPos);
if(idResult) return idResult;
}
break;
case conditionExp:
- if(Inside(&exp.cond.cond.loc, line, charPos))
+ if(exp.cond.cond && Inside(&exp.cond.cond.loc, line, charPos))
{
idResult = FindParamsExpression(exp.cond.cond, line, charPos);
if(idResult) return idResult;
{
Expression expression;
- for(expression = exp.cond.exp->first; expression; expression = expression.next)
+ for(expression = exp.cond.exp ? exp.cond.exp->first : null; expression; expression = expression.next)
{
if(InsideIncl(&expression.loc, line, charPos))
{
}
}
}
- if(InsideIncl(&exp.cond.elseExp.loc, line, charPos))
+ if(exp.cond.elseExp && InsideIncl(&exp.cond.elseExp.loc, line, charPos))
{
idResult = FindParamsExpression(exp.cond.elseExp, line, charPos);
if(idResult) return idResult;
switch(stmt.type)
{
case labeledStmt:
- if(InsideIncl(&stmt.labeled.stmt.loc, line, charPos))
+ if(stmt.labeled.stmt && InsideIncl(&stmt.labeled.stmt.loc, line, charPos))
return FindParamsStatement(stmt.labeled.stmt, line, charPos);
break;
case caseStmt:
case badDeclarationStmt:
{
Declaration decl = stmt.decl;
- if(InsideIncl(&decl.loc, line, charPos))
+ if(decl && InsideIncl(&decl.loc, line, charPos))
{
idResult = FindParamsDeclaration(decl, line, charPos);
if(idResult) return idResult;
case ifStmt:
{
Expression exp;
- for(exp = stmt.ifStmt.exp->first; exp; exp = exp.next)
+ for(exp = stmt.ifStmt.exp ? stmt.ifStmt.exp->first : null; exp; exp = exp.next)
{
if(InsideIncl(&exp.loc, line, charPos))
{
case switchStmt:
{
Expression exp;
- for(exp = stmt.switchStmt.exp->first; exp; exp = exp.next)
+ for(exp = stmt.switchStmt.exp ? stmt.switchStmt.exp->first : null; exp; exp = exp.next)
{
if(InsideIncl(&exp.loc, line, charPos))
{
Initializer init;
Identifier idResult;
- for(init = initializer.list->first; init; init = init.next)
+ for(init = initializer.list ? initializer.list->first : null; init; init = init.next)
{
if(InsideIncl(&init.loc, line, charPos))
{
break;
}
case expInitializer:
- if(InsideIncl(&initializer.exp.loc, line, charPos))
+ if(initializer.exp && InsideIncl(&initializer.exp.loc, line, charPos))
return FindParamsExpression(initializer.exp, line, charPos);
{
switch(def.type)
{
case declarationClassDef:
- if(InsideIncl(&def.decl.loc, line, charPos))
+ if(def.decl && InsideIncl(&def.decl.loc, line, charPos))
{
idResult = FindParamsDeclaration(def.decl, line, charPos);
if(idResult)
case defaultPropertiesClassDef:
{
MemberInit init;
- for(init = def.defProperties->first; init; init = init.next)
+ for(init = def.defProperties ? def.defProperties->first : null; init; init = init.next)
{
if(InsideIncl(&init.realLoc, line, charPos))
{
break;
}
case functionClassDef:
- if(InsideIncl(&def.function.loc, line, charPos))
+ if(def.function && InsideIncl(&def.function.loc, line, charPos))
{
idResult = FindParamsClassFunction(def.function, line, charPos);
break;
}
case instDeclaration:
- if(InsideIncl(&decl.inst.loc, line, charPos))
+ if(decl.inst && InsideIncl(&decl.inst.loc, line, charPos))
return FindParamsInstance(decl.inst, line, charPos);
break;
}
switch(def.type)
{
case declarationClassDef:
- if(Inside(&def.decl.loc, line, charPos))
+ if(def.decl && Inside(&def.decl.loc, line, charPos))
{
idResult = FindParamsDeclaration(def.decl, line, charPos);
if(idResult)
case defaultPropertiesClassDef:
{
MemberInit init;
- for(init = def.defProperties->first; init; init = init.next)
+ for(init = def.defProperties ? def.defProperties->first : null; init; init = init.next)
{
if(InsideIncl(&init.realLoc, line, charPos))
{
break;
}
case functionClassDef:
- if(Inside(&def.function.loc, line, charPos))
+ if(def.function && Inside(&def.function.loc, line, charPos))
{
idResult = FindParamsClassFunction(def.function, line, charPos);
if(idResult)
switch(external.type)
{
case functionExternal:
- if(Inside(&external.loc, line, charPos))
+ if(external.function && Inside(&external.loc, line, charPos))
{
idResult = FindParamsFunction(external.function, line, charPos);
if(idResult)
}
break;
case declarationExternal:
- if(InsideIncl(&external.loc, line, charPos))
+ if(external.declaration && InsideIncl(&external.loc, line, charPos))
{
idResult = FindParamsDeclaration(external.declaration, line, charPos);
if(idResult)
}
break;
case classExternal:
- if(Inside(&external._class.loc, line, charPos))
+ if(external._class && Inside(&external._class.loc, line, charPos))
{
currentClass = external._class.symbol.registered;
idResult = FindParamsClass(external._class, line, charPos);