/src/libsass/src/source.hpp
Line | Count | Source |
1 | | #ifndef SASS_SOURCE_H |
2 | | #define SASS_SOURCE_H |
3 | | |
4 | | #include "sass.hpp" |
5 | | #include "memory.hpp" |
6 | | #include "position.hpp" |
7 | | #include "source_data.hpp" |
8 | | |
9 | | namespace Sass { |
10 | | |
11 | | class SourceFile : |
12 | | public SourceData { |
13 | | protected: |
14 | | char* path; |
15 | | char* data; |
16 | | size_t length; |
17 | | size_t srcid; |
18 | | public: |
19 | | |
20 | | SourceFile( |
21 | | const char* path, |
22 | | const char* data, |
23 | | size_t srcid); |
24 | | |
25 | | ~SourceFile(); |
26 | | |
27 | | const char* end() const override final; |
28 | | const char* begin() const override final; |
29 | | virtual const char* getRawData() const override; |
30 | | virtual SourceSpan getSourceSpan() override; |
31 | | |
32 | 0 | size_t size() const override final { |
33 | 0 | return length; |
34 | 0 | } |
35 | | |
36 | 37.4k | virtual const char* getPath() const override { |
37 | 37.4k | return path; |
38 | 37.4k | } |
39 | | |
40 | 6.78k | virtual size_t getSrcId() const override { |
41 | 6.78k | return srcid; |
42 | 6.78k | } |
43 | | |
44 | | }; |
45 | | |
46 | | class SynthFile : |
47 | | public SourceData { |
48 | | protected: |
49 | | const char* path; |
50 | | public: |
51 | | |
52 | | SynthFile( |
53 | | const char* path) : |
54 | 25 | path(path) |
55 | 25 | {} |
56 | | |
57 | 0 | ~SynthFile() {} |
58 | | |
59 | 0 | const char* end() const override final { return nullptr; } |
60 | 0 | const char* begin() const override final { return nullptr; }; |
61 | 0 | virtual const char* getRawData() const override { return nullptr; }; |
62 | 0 | virtual SourceSpan getSourceSpan() override { return SourceSpan(path); }; |
63 | | |
64 | 0 | size_t size() const override final { |
65 | 0 | return 0; |
66 | 0 | } |
67 | | |
68 | 0 | virtual const char* getPath() const override { |
69 | 0 | return path; |
70 | 0 | } |
71 | | |
72 | 0 | virtual size_t getSrcId() const override { |
73 | 0 | return std::string::npos; |
74 | 0 | } |
75 | | |
76 | | }; |
77 | | |
78 | | |
79 | | class ItplFile : |
80 | | public SourceFile { |
81 | | private: |
82 | | SourceSpan pstate; |
83 | | public: |
84 | | |
85 | | ItplFile(const char* data, |
86 | | const SourceSpan& pstate); |
87 | | |
88 | | // Offset getPosition() const override final; |
89 | | const char* getRawData() const override final; |
90 | | SourceSpan getSourceSpan() override final; |
91 | | }; |
92 | | |
93 | | } |
94 | | |
95 | | #endif |