/* * Copyright (c) 2012-2019 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. */ module antlr.v4.runtime.InsertBeforeOp; import antlr.v4.runtime.RewriteOperation; import antlr.v4.runtime.TokenConstantDefinition; import std.conv; import std.variant; /** * Rewriter operation */ class InsertBeforeOp : RewriteOperation { public this(size_t index, Variant text) { super(index, text); } /** * @uml * @override */ public override size_t execute(ref Variant buf) { Variant Null; buf is Null ? buf = text : (buf ~= text); if (tokens.get(to!int(index)).getType != TokenConstantDefinition.EOF) { buf ~= tokens.get(to!int(index)).getText; } return index+1; } }