45 lines
1.4 KiB
C
45 lines
1.4 KiB
C
|
/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
|
|||
|
* Use of this file is governed by the BSD 3-clause license that
|
|||
|
* can be found in the LICENSE.txt file in the project root.
|
|||
|
*/
|
|||
|
|
|||
|
#pragma once
|
|||
|
|
|||
|
#include "antlr4-common.h"
|
|||
|
|
|||
|
namespace antlr4 {
|
|||
|
namespace tree {
|
|||
|
namespace pattern {
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// A chunk is either a token tag, a rule tag, or a span of literal text within a
|
|||
|
/// tree pattern.
|
|||
|
/// <p/>
|
|||
|
/// The method <seealso cref="ParseTreePatternMatcher#split(String)"/> returns a list of
|
|||
|
/// chunks in preparation for creating a token stream by
|
|||
|
/// <seealso cref="ParseTreePatternMatcher#tokenize(String)"/>. From there, we get a parse
|
|||
|
/// tree from with <seealso cref="ParseTreePatternMatcher#compile(String, int)"/>. These
|
|||
|
/// chunks are converted to <seealso cref="RuleTagToken"/>, <seealso cref="TokenTagToken"/>, or the
|
|||
|
/// regular tokens of the text surrounding the tags.
|
|||
|
/// </summary>
|
|||
|
class ANTLR4CPP_PUBLIC Chunk {
|
|||
|
public:
|
|||
|
Chunk() = default;
|
|||
|
Chunk(Chunk const&) = default;
|
|||
|
virtual ~Chunk();
|
|||
|
|
|||
|
Chunk& operator=(Chunk const&) = default;
|
|||
|
|
|||
|
/// This method returns a text representation of the tag chunk. Labeled tags
|
|||
|
/// are returned in the form {@code label:tag}, and unlabeled tags are
|
|||
|
/// returned as just the tag name.
|
|||
|
virtual std::string toString() {
|
|||
|
std::string str;
|
|||
|
return str;
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
} // namespace pattern
|
|||
|
} // namespace tree
|
|||
|
} // namespace antlr4
|