All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sonar.python.lexer.LexerState Maven / Gradle / Ivy

The newest version!
/*
 * SonarQube Python Plugin
 * Copyright (C) 2011-2024 SonarSource SA
 * mailto:info AT sonarsource DOT com
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the Sonar Source-Available License Version 1, as published by SonarSource SA.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the Sonar Source-Available License for more details.
 *
 * You should have received a copy of the Sonar Source-Available License
 * along with this program; if not, see https://sonarsource.com/license/ssal/
 */
package org.sonar.python.lexer;

import java.util.ArrayDeque;
import java.util.Deque;

import org.sonar.python.lexer.FStringState.Mode;

public class LexerState {

  public final Deque indentationStack = new ArrayDeque<>();

  public final Deque fStringStateStack = new ArrayDeque<>();

  int brackets;
  boolean joined;
  int initialLine = 1;
  int initialColumn = 0;

  public void reset() {
    indentationStack.clear();
    indentationStack.push(0);

    brackets = 0;
    joined = false;
    fStringStateStack.clear();
    fStringStateStack.push(new FStringState(Mode.REGULAR_MODE, brackets, false));
  }

  public void reset(int initialLine, int initialColumn) {
    reset();
    this.initialLine = initialLine;
    this.initialColumn = initialColumn;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy