cssLexer.d.ts 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. export declare enum CssTokenType {
  2. EOF = 0,
  3. String = 1,
  4. Comment = 2,
  5. Identifier = 3,
  6. Number = 4,
  7. IdentifierOrNumber = 5,
  8. AtKeyword = 6,
  9. Character = 7,
  10. Whitespace = 8,
  11. Invalid = 9
  12. }
  13. export declare enum CssLexerMode {
  14. ALL = 0,
  15. ALL_TRACK_WS = 1,
  16. SELECTOR = 2,
  17. PSEUDO_SELECTOR = 3,
  18. PSEUDO_SELECTOR_WITH_ARGUMENTS = 4,
  19. ATTRIBUTE_SELECTOR = 5,
  20. AT_RULE_QUERY = 6,
  21. MEDIA_QUERY = 7,
  22. BLOCK = 8,
  23. KEYFRAME_BLOCK = 9,
  24. STYLE_BLOCK = 10,
  25. STYLE_VALUE = 11,
  26. STYLE_VALUE_FUNCTION = 12,
  27. STYLE_CALC_FUNCTION = 13
  28. }
  29. export declare class LexedCssResult {
  30. error: Error | null;
  31. token: CssToken;
  32. constructor(error: Error | null, token: CssToken);
  33. }
  34. export declare function generateErrorMessage(input: string, message: string, errorValue: string, index: number, row: number, column: number): string;
  35. export declare function findProblemCode(input: string, errorValue: string, index: number, column: number): string;
  36. export declare class CssToken {
  37. index: number;
  38. column: number;
  39. line: number;
  40. type: CssTokenType;
  41. strValue: string;
  42. numValue: number;
  43. constructor(index: number, column: number, line: number, type: CssTokenType, strValue: string);
  44. }
  45. export declare class CssLexer {
  46. scan(text: string, trackComments?: boolean): CssScanner;
  47. }
  48. export declare function cssScannerError(token: CssToken, message: string): Error;
  49. export declare function getRawMessage(error: Error): string;
  50. export declare function getToken(error: Error): CssToken;
  51. export declare class CssScanner {
  52. input: string;
  53. private _trackComments;
  54. peek: number;
  55. peekPeek: number;
  56. length: number;
  57. index: number;
  58. column: number;
  59. line: number;
  60. _currentMode: CssLexerMode;
  61. _currentError: Error | null;
  62. constructor(input: string, _trackComments?: boolean);
  63. getMode(): CssLexerMode;
  64. setMode(mode: CssLexerMode): void;
  65. advance(): void;
  66. peekAt(index: number): number;
  67. consumeEmptyStatements(): void;
  68. consumeWhitespace(): void;
  69. consume(type: CssTokenType, value?: string | null): LexedCssResult;
  70. scan(): LexedCssResult | null;
  71. _scan(): CssToken | null;
  72. scanComment(): CssToken | null;
  73. scanWhitespace(): CssToken;
  74. scanString(): CssToken | null;
  75. scanNumber(): CssToken;
  76. scanIdentifier(): CssToken | null;
  77. scanCssValueFunction(): CssToken;
  78. scanCharacter(): CssToken | null;
  79. scanAtExpression(): CssToken | null;
  80. assertCondition(status: boolean, errorMessage: string): boolean;
  81. error(message: string, errorTokenValue?: string | null, doNotAdvance?: boolean): CssToken;
  82. }
  83. export declare function isNewline(code: number): boolean;