/*
* Copyright 2011 Jon S Akhtar (Sylvanaar)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.sylvanaar.idea.Lua.lang.psi.util;
import com.sylvanaar.idea.Lua.lang.psi.expressions.LuaExpression;
import com.sylvanaar.idea.Lua.lang.psi.expressions.LuaExpressionList;
import com.sylvanaar.idea.Lua.lang.psi.expressions.LuaIdentifierList;
import com.sylvanaar.idea.Lua.lang.psi.impl.statements.LuaAssignmentStatementImpl;
import com.sylvanaar.idea.Lua.lang.psi.statements.LuaAssignmentStatement;
import com.sylvanaar.idea.Lua.lang.psi.symbols.LuaSymbol;
import org.jetbrains.annotations.NotNull;
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: Jon S Akhtar
* Date: 6/8/11
* Time: 12:49 PM
*/
public class LuaAssignmentUtil {
@NotNull
public static LuaAssignment[] getAssignments(LuaAssignmentStatement assignmentStatement) {
LuaExpressionList exprs = assignmentStatement.getRightExprs();
if (exprs == null)
return LuaAssignment.EMPTY_ARRAY;
List<LuaExpression> vals = exprs.getLuaExpressions();
if (vals.size() == 0)
return LuaAssignment.EMPTY_ARRAY;
LuaIdentifierList leftExprs = assignmentStatement.getLeftExprs();
if (leftExprs == null)
return LuaAssignment.EMPTY_ARRAY;
LuaSymbol[] defs = leftExprs.getSymbols();
LuaAssignment[] assignments = new LuaAssignment[Math.min(vals.size(), defs.length)];
for(int i=0;i<assignments.length; i++)
assignments[i]= new LuaAssignment(defs[i], vals.get(i));
return assignments;
}
public static LuaExpression[] getDefinedSymbolValues(LuaAssignmentStatementImpl assignmentStmt) {
LuaExpressionList exprs = assignmentStmt.getRightExprs();
if (exprs == null) return LuaExpression.EMPTY_ARRAY;
List<LuaExpression> vals = exprs.getLuaExpressions();
return vals.toArray(new LuaExpression[vals.size()]);
}
}