Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Unified Diff: third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.h

Issue 2310823002: Skeleton implementation of CSS Properties and Values API (Closed)
Patch Set: fix stylevardata copy ctor Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.h
diff --git a/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.h b/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.h
new file mode 100644
index 0000000000000000000000000000000000000000..fef230697c1665313462b4307adfa01461c6d839
--- /dev/null
+++ b/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.h
@@ -0,0 +1,45 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CSSSyntaxDescriptor_h
+#define CSSSyntaxDescriptor_h
+
+#include "core/css/parser/CSSParserTokenRange.h"
+
+namespace blink {
+
+class CSSValue;
+
+enum class CSSSyntaxType {
+ TokenStream,
+ Length,
+ // TODO(timloh): Add all the other types
+};
+
+struct CSSSyntaxComponent {
+ CSSSyntaxComponent(CSSSyntaxType type)
+ : m_type(type)
+ {
+ }
+
+ CSSSyntaxType m_type;
+ // TODO(timloh): This will need to support arbitrary idents and list types
+};
+
+class CSSSyntaxDescriptor {
+public:
+ CSSSyntaxDescriptor(String syntax);
+
+ const CSSValue* parse(CSSParserTokenRange) const;
+ const CSSValue* parse(const String&) const;
+ bool isValid() const { return !m_syntaxComponents.isEmpty(); }
+ bool isTokenStream() const { return m_syntaxComponents.size() == 1 && m_syntaxComponents[0].m_type == CSSSyntaxType::TokenStream; }
+
+private:
+ Vector<CSSSyntaxComponent> m_syntaxComponents;
+};
+
+} // namespace blink
+
+#endif // CSSSyntaxDescriptor_h

Powered by Google App Engine
This is Rietveld 408576698