1/* tagletsince.vala 2 * 3 * Copyright (C) 2008-2009 Didier Villevalois 4 * Copyright (C) 2008-2012 Florian Brosch 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 * 20 * Author: 21 * Didier 'Ptitjes Villevalois <ptitjes@free.fr> 22 */ 23 24 25using Valadoc.Content; 26 27public class Valadoc.Taglets.Since : ContentElement, Taglet, Block { 28 public string version { get; internal set; } 29 30 public Rule? get_parser_rule (Rule run_rule) { 31 Rule optional_spaces = Rule.option ({ Rule.many ({ TokenType.SPACE }) }); 32 33 return Rule.seq ({ 34 optional_spaces, 35 TokenType.any_word ().action ((token) => { version = token.to_string (); }), 36 optional_spaces 37 }); 38 } 39 40 public override void check (Api.Tree api_root, Api.Node container, string file_path, 41 ErrorReporter reporter, Settings settings) 42 { 43 } 44 45 public override void accept (ContentVisitor visitor) { 46 visitor.visit_taglet (this); 47 } 48 49 public override bool is_empty () { 50 return false; 51 } 52 53 public override ContentElement copy (ContentElement? new_parent = null) { 54 Since since = new Since (); 55 since.parent = new_parent; 56 57 since.version = version; 58 59 return since; 60 } 61} 62 63