cssAst.d.ts 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. import { ParseLocation, ParseSourceSpan } from './parseUtil';
  2. import { CssToken } from './cssLexer';
  3. export declare enum BlockType {
  4. Import = 0,
  5. Charset = 1,
  6. Namespace = 2,
  7. Supports = 3,
  8. Keyframes = 4,
  9. MediaQuery = 5,
  10. Selector = 6,
  11. FontFace = 7,
  12. Page = 8,
  13. Document = 9,
  14. Viewport = 10,
  15. Unsupported = 11
  16. }
  17. export interface CssAstVisitor {
  18. visitCssValue(ast: CssStyleValueAst, context?: any): any;
  19. visitCssInlineRule(ast: CssInlineRuleAst, context?: any): any;
  20. visitCssAtRulePredicate(ast: CssAtRulePredicateAst, context?: any): any;
  21. visitCssKeyframeRule(ast: CssKeyframeRuleAst, context?: any): any;
  22. visitCssKeyframeDefinition(ast: CssKeyframeDefinitionAst, context?: any): any;
  23. visitCssMediaQueryRule(ast: CssMediaQueryRuleAst, context?: any): any;
  24. visitCssSelectorRule(ast: CssSelectorRuleAst, context?: any): any;
  25. visitCssSelector(ast: CssSelectorAst, context?: any): any;
  26. visitCssSimpleSelector(ast: CssSimpleSelectorAst, context?: any): any;
  27. visitCssPseudoSelector(ast: CssPseudoSelectorAst, context?: any): any;
  28. visitCssDefinition(ast: CssDefinitionAst, context?: any): any;
  29. visitCssBlock(ast: CssBlockAst, context?: any): any;
  30. visitCssStylesBlock(ast: CssStylesBlockAst, context?: any): any;
  31. visitCssStyleSheet(ast: CssStyleSheetAst, context?: any): any;
  32. visitCssUnknownRule(ast: CssUnknownRuleAst, context?: any): any;
  33. visitCssUnknownTokenList(ast: CssUnknownTokenListAst, context?: any): any;
  34. }
  35. export declare abstract class CssAst {
  36. location: ParseSourceSpan;
  37. constructor(location: ParseSourceSpan);
  38. get start(): ParseLocation;
  39. get end(): ParseLocation;
  40. abstract visit(visitor: CssAstVisitor, context?: any): any;
  41. }
  42. export declare class CssStyleValueAst extends CssAst {
  43. tokens: CssToken[];
  44. strValue: string;
  45. constructor(location: ParseSourceSpan, tokens: CssToken[], strValue: string);
  46. visit(visitor: CssAstVisitor, context?: any): any;
  47. }
  48. export declare abstract class CssRuleAst extends CssAst {
  49. constructor(location: ParseSourceSpan);
  50. }
  51. export declare class CssBlockRuleAst extends CssRuleAst {
  52. location: ParseSourceSpan;
  53. type: BlockType;
  54. block: CssBlockAst;
  55. name: CssToken | null;
  56. constructor(location: ParseSourceSpan, type: BlockType, block: CssBlockAst, name?: CssToken | null);
  57. visit(visitor: CssAstVisitor, context?: any): any;
  58. }
  59. export declare class CssKeyframeRuleAst extends CssBlockRuleAst {
  60. constructor(location: ParseSourceSpan, name: CssToken, block: CssBlockAst);
  61. visit(visitor: CssAstVisitor, context?: any): any;
  62. }
  63. export declare class CssKeyframeDefinitionAst extends CssBlockRuleAst {
  64. steps: CssToken[];
  65. constructor(location: ParseSourceSpan, steps: CssToken[], block: CssBlockAst);
  66. visit(visitor: CssAstVisitor, context?: any): any;
  67. }
  68. export declare class CssBlockDefinitionRuleAst extends CssBlockRuleAst {
  69. strValue: string;
  70. query: CssAtRulePredicateAst;
  71. constructor(location: ParseSourceSpan, strValue: string, type: BlockType, query: CssAtRulePredicateAst, block: CssBlockAst);
  72. visit(visitor: CssAstVisitor, context?: any): any;
  73. }
  74. export declare class CssMediaQueryRuleAst extends CssBlockDefinitionRuleAst {
  75. constructor(location: ParseSourceSpan, strValue: string, query: CssAtRulePredicateAst, block: CssBlockAst);
  76. visit(visitor: CssAstVisitor, context?: any): any;
  77. }
  78. export declare class CssAtRulePredicateAst extends CssAst {
  79. strValue: string;
  80. tokens: CssToken[];
  81. constructor(location: ParseSourceSpan, strValue: string, tokens: CssToken[]);
  82. visit(visitor: CssAstVisitor, context?: any): any;
  83. }
  84. export declare class CssInlineRuleAst extends CssRuleAst {
  85. type: BlockType;
  86. value: CssStyleValueAst;
  87. constructor(location: ParseSourceSpan, type: BlockType, value: CssStyleValueAst);
  88. visit(visitor: CssAstVisitor, context?: any): any;
  89. }
  90. export declare class CssSelectorRuleAst extends CssBlockRuleAst {
  91. selectors: CssSelectorAst[];
  92. strValue: string;
  93. constructor(location: ParseSourceSpan, selectors: CssSelectorAst[], block: CssBlockAst);
  94. visit(visitor: CssAstVisitor, context?: any): any;
  95. }
  96. export declare class CssDefinitionAst extends CssAst {
  97. property: CssToken;
  98. value: CssStyleValueAst;
  99. constructor(location: ParseSourceSpan, property: CssToken, value: CssStyleValueAst);
  100. visit(visitor: CssAstVisitor, context?: any): any;
  101. }
  102. export declare abstract class CssSelectorPartAst extends CssAst {
  103. constructor(location: ParseSourceSpan);
  104. }
  105. export declare class CssSelectorAst extends CssSelectorPartAst {
  106. selectorParts: CssSimpleSelectorAst[];
  107. strValue: string;
  108. constructor(location: ParseSourceSpan, selectorParts: CssSimpleSelectorAst[]);
  109. visit(visitor: CssAstVisitor, context?: any): any;
  110. }
  111. export declare class CssSimpleSelectorAst extends CssSelectorPartAst {
  112. tokens: CssToken[];
  113. strValue: string;
  114. pseudoSelectors: CssPseudoSelectorAst[];
  115. operator: CssToken;
  116. constructor(location: ParseSourceSpan, tokens: CssToken[], strValue: string, pseudoSelectors: CssPseudoSelectorAst[], operator: CssToken);
  117. visit(visitor: CssAstVisitor, context?: any): any;
  118. }
  119. export declare class CssPseudoSelectorAst extends CssSelectorPartAst {
  120. strValue: string;
  121. name: string;
  122. tokens: CssToken[];
  123. innerSelectors: CssSelectorAst[];
  124. constructor(location: ParseSourceSpan, strValue: string, name: string, tokens: CssToken[], innerSelectors: CssSelectorAst[]);
  125. visit(visitor: CssAstVisitor, context?: any): any;
  126. }
  127. export declare class CssBlockAst extends CssAst {
  128. entries: CssAst[];
  129. constructor(location: ParseSourceSpan, entries: CssAst[]);
  130. visit(visitor: CssAstVisitor, context?: any): any;
  131. }
  132. export declare class CssStylesBlockAst extends CssBlockAst {
  133. definitions: CssDefinitionAst[];
  134. constructor(location: ParseSourceSpan, definitions: CssDefinitionAst[]);
  135. visit(visitor: CssAstVisitor, context?: any): any;
  136. }
  137. export declare class CssStyleSheetAst extends CssAst {
  138. rules: CssAst[];
  139. constructor(location: ParseSourceSpan, rules: CssAst[]);
  140. visit(visitor: CssAstVisitor, context?: any): any;
  141. }
  142. export declare class CssUnknownRuleAst extends CssRuleAst {
  143. ruleName: string;
  144. tokens: CssToken[];
  145. constructor(location: ParseSourceSpan, ruleName: string, tokens: CssToken[]);
  146. visit(visitor: CssAstVisitor, context?: any): any;
  147. }
  148. export declare class CssUnknownTokenListAst extends CssRuleAst {
  149. name: string;
  150. tokens: CssToken[];
  151. constructor(location: ParseSourceSpan, name: string, tokens: CssToken[]);
  152. visit(visitor: CssAstVisitor, context?: any): any;
  153. }
  154. export declare function mergeTokens(tokens: CssToken[], separator?: string): CssToken;