1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 #ifndef nsHtml5TokenizerLoopPolicies_h 6 #define nsHtml5TokenizerLoopPolicies_h 7 8 /** 9 * This policy does not report tokenizer transitions anywhere. To be used 10 * when _not_ viewing source. 11 */ 12 struct nsHtml5SilentPolicy 13 { 14 static const bool reportErrors = false; transitionnsHtml5SilentPolicy15 static int32_t transition(nsHtml5Highlighter* aHighlighter, 16 int32_t aState, 17 bool aReconsume, 18 int32_t aPos) 19 { 20 return aState; 21 } completedNamedCharacterReferencensHtml5SilentPolicy22 static void completedNamedCharacterReference(nsHtml5Highlighter* aHighlighter) 23 { 24 } 25 }; 26 27 /** 28 * This policy reports the tokenizer transitions to a highlighter. To be used 29 * when viewing source. 30 */ 31 struct nsHtml5ViewSourcePolicy 32 { 33 static const bool reportErrors = true; transitionnsHtml5ViewSourcePolicy34 static int32_t transition(nsHtml5Highlighter* aHighlighter, 35 int32_t aState, 36 bool aReconsume, 37 int32_t aPos) 38 { 39 return aHighlighter->Transition(aState, aReconsume, aPos); 40 } completedNamedCharacterReferencensHtml5ViewSourcePolicy41 static void completedNamedCharacterReference(nsHtml5Highlighter* aHighlighter) 42 { 43 aHighlighter->CompletedNamedCharacterReference(); 44 } 45 }; 46 47 #endif // nsHtml5TokenizerLoopPolicies_h 48