/******************************************************************************
* Copyright (C) 2014 Brainwy Software Ltda
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Fabio Zadrozny <fabiofz@gmail.com> - initial API and implementation
******************************************************************************/
package org.python.pydev.parser.grammarcommon;
/**
* Important: note that accessing level/indentation vars is allowed, but raising the indent level should
* always be done through pushLevel (decreasing should be done directly through changing the level var).
*/
public final class IndentLevel {
public int indentation[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; //Initially allocate for 10 indentation levels.
/**
* The current indentation level.
*/
public int level = 0;
public void pushLevel(int indent) {
level += 1;
if (indentation.length <= level) {
int[] newstack = new int[indentation.length * 2];
System.arraycopy(indentation, 0, newstack, 0, indentation.length);
indentation = newstack;
}
this.indentation[level] = indent;
}
public int atLevel() {
return this.indentation[level];
}
}