blob: a89b1594ba08d16d983902a6ba99b1c7d0bb60bc [file] [log] [blame]
//===--- ParserPosition.h - Parser Position ---------------------*- C++ -*-===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
//
// Parser position where Parser can jump to.
//
//===----------------------------------------------------------------------===//
#ifndef SWIFT_PARSE_PARSERPOSITION_H
#define SWIFT_PARSE_PARSERPOSITION_H
#include "swift/Basic/SourceLoc.h"
#include "swift/Parse/LexerState.h"
namespace swift {
class ParserPosition {
LexerState LS;
SourceLoc PreviousLoc;
friend class Parser;
ParserPosition(LexerState LS, SourceLoc PreviousLoc)
: LS(LS), PreviousLoc(PreviousLoc) {}
public:
ParserPosition() = default;
ParserPosition &operator=(const ParserPosition &) = default;
bool isValid() const { return LS.isValid(); }
};
} // end namespace swift
#endif