public abstract void VisitVectorIndexElement(VectorIndexElement element);
public void setLhs(VectorIndexElement lhs) { mLhs = lhs; }
//----< VisitVectorIndexElementNew >------------------------------ public override void VisitVectorIndexElementNew(VectorIndexElement element) { Console.WriteLine("VisitVectorIndexElementNew"); }
//----< evaluate the index of a VectorIndexElement >------------------------------ private int setVectorIndexValue(VectorIndexElement element, Element var_elem) { int first_index_num = 0; if (var_elem is VariableElement) { VariableElement var = (VariableElement)var_elem; bool bRet = setIndexValue(var, element.getVariable(), element.getValue(), ref first_index_num); } else { if (var_elem is IntegerElement) { IntegerElement int_elem = (IntegerElement)var_elem; first_index_num = int.Parse(int_elem.getText()); } } return first_index_num; }
//----< visit VectorIndexElement New >------------------------------ public override void VisitVectorIndexElementNew(VectorIndexElement element) { }
//----< visit VectorIndexElement >------------------------------ public override void VisitVectorIndexElement(VectorIndexElement element) { Element first_index = element.getFirstIndexElement(); Element second_index = element.getSecondIndexElement(); int first_index_num = setVectorIndexValue(element, first_index); int second_index_num = setVectorIndexValue(element, second_index); VariableElement matrix_var = element.getVariableElement() as VariableElement; if (mVariableMap.ContainsKey(matrix_var.getText())) { MatrixElement element_value = (MatrixElement)mVariableMap[matrix_var.getText()]; List<RowElement> rows = element_value.getRows(); RowElement row = rows[first_index_num]; IntegerElement new_int = new IntegerElement(); new_int.setText(row.getElement(second_index_num).ToString()); mIntStack.Push(new_int); } }