# Copyright (c) 2016-2017 The Khronos Group Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. require 'asciidoctor/extensions' unless RUBY_ENGINE == 'opal' include ::Asciidoctor class VulkanInlineMacroBase < Extensions::InlineMacroProcessor use_dsl using_format :short end class NormativeInlineMacroBase < VulkanInlineMacroBase def text 'normative' end def process parent, target, attributes '' + text + '' end end class LinkInlineMacroBase < VulkanInlineMacroBase def process parent, target, attributes link = '' if parent.document.attributes['cross-file-links'] link = '' + target + '' else link = '' + target + '' end link end end class CodeInlineMacroBase < VulkanInlineMacroBase def process parent, target, attributes '' + target + '' end end class StrongInlineMacroBase < VulkanInlineMacroBase def process parent, target, attributes '' + target + '' end end class ParamInlineMacroBase < VulkanInlineMacroBase def process parent, target, attributes '' + target + '' end end class CanInlineMacro < NormativeInlineMacroBase named :can match /can:(\w*)/ def text 'can' end end class CannotInlineMacro < NormativeInlineMacroBase named :cannot match /cannot:(\w*)/ def text 'cannot' end end class MayInlineMacro < NormativeInlineMacroBase named :may match /may:(\w*)/ def text 'may' end end class MayNotInlineMacro < NormativeInlineMacroBase named :maynot match /maynot:(\w*)/ def text 'may not' end end class MustInlineMacro < NormativeInlineMacroBase named :must match /must:(\w*)/ def text 'must' end end class MustNotInlineMacro < NormativeInlineMacroBase named :mustnot match /mustnot:(\w*)/ def text 'must not' end end class OptionalInlineMacro < NormativeInlineMacroBase named :optional match /optional:(\w*)/ def text 'optional' end end class RecommendInlineMacro < NormativeInlineMacroBase named :recommend match /recommend:(\w*)/ def text 'recommend' end end class RequiredInlineMacro < NormativeInlineMacroBase named :required match /required:(\w*)/ def text 'required' end end class ShouldInlineMacro < NormativeInlineMacroBase named :should match /should:(\w*)/ def text 'should' end end class ShouldNotInlineMacro < NormativeInlineMacroBase named :shouldnot match /shouldnot:(\w*)/ def text 'should not' end end class FlinkInlineMacro < LinkInlineMacroBase named :flink match /flink:(\w+)/ end class FnameInlineMacro < StrongInlineMacroBase named :fname match /fname:(\w+)/ end class FtextInlineMacro < StrongInlineMacroBase named :ftext match /ftext:(\w+)/ end class SnameInlineMacro < CodeInlineMacroBase named :sname match /sname:(\w+)/ end class SlinkInlineMacro < LinkInlineMacroBase named :slink match /slink:(\w+)/ end class StextInlineMacro < CodeInlineMacroBase named :stext match /stext:(\w+)/ end class EnameInlineMacro < CodeInlineMacroBase named :ename match /ename:(\w+)/ end class ElinkInlineMacro < LinkInlineMacroBase named :elink match /elink:(\w+)/ end class EtextInlineMacro < CodeInlineMacroBase named :etext match /etext:([\w\*]+)/ end class PnameInlineMacro < ParamInlineMacroBase named :pname match /pname:((\w[\w.]*)*\w+)/ end class PtextInlineMacro < ParamInlineMacroBase named :ptext match /ptext:((\w[\w.]*)*\w+)/ end class DnameInlineMacro < CodeInlineMacroBase named :dname match /dname:(\w+)/ end class DlinkInlineMacro < LinkInlineMacroBase named :dlink match /dlink:(\w+)/ end class TnameInlineMacro < CodeInlineMacroBase named :tname match /tname:(\w+)/ end class TlinkInlineMacro < LinkInlineMacroBase named :tlink match /tlink:(\w+)/ end class BasetypeInlineMacro < CodeInlineMacroBase named :basetype match /basetype:(\w+)/ end class CodeInlineMacro < StrongInlineMacroBase named :code match /code:(\w+)/ end