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

Unified Diff: grit/format/c_format.py

Issue 1442863002: Remove contents of grit's SVN repository. (Closed) Base URL: http://grit-i18n.googlecode.com/svn/trunk/
Patch Set: Created 5 years, 1 month 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
« no previous file with comments | « grit/format/android_xml_unittest.py ('k') | grit/format/c_format_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: grit/format/c_format.py
===================================================================
--- grit/format/c_format.py (revision 202)
+++ grit/format/c_format.py (working copy)
@@ -1,86 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 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.
-
-"""Formats as a .C file for compilation.
-"""
-
-import os
-import re
-import types
-
-from grit import util
-
-
-def _FormatHeader(root, output_dir):
- """Returns the required preamble for C files."""
- # Find the location of the resource header file, so that we can include
- # it.
- resource_header = 'resource.h' # fall back to this
- for output in root.GetOutputFiles():
- if output.attrs['type'] == 'rc_header':
- resource_header = os.path.abspath(output.GetOutputFilename())
- resource_header = util.MakeRelativePath(output_dir, resource_header)
- return """// This file is automatically generated by GRIT. Do not edit.
-
-#include "%s"
-
-// All strings are UTF-8
-""" % (resource_header)
-# end _FormatHeader() function
-
-
-def Format(root, lang='en', output_dir='.'):
- """Outputs a C switch statement representing the string table."""
- from grit.node import message
- assert isinstance(lang, types.StringTypes)
-
- yield _FormatHeader(root, output_dir)
-
- yield 'const char* GetString(int id) {\n switch (id) {'
-
- for item in root.ActiveDescendants():
- with item:
- if isinstance(item, message.MessageNode):
- yield _FormatMessage(item, lang)
-
- yield '\n default:\n return 0;\n }\n}'
-
-
-def _HexToOct(match):
- "Return the octal form of the hex numbers"
- hex = match.group("hex")
- result = ""
- while len(hex):
- next_num = int(hex[2:4], 16)
- result += "\\" + '%03d' % int(oct(next_num), 10)
- hex = hex[4:]
- return match.group("escaped_backslashes") + result
-
-
-def _FormatMessage(item, lang):
- """Format a single <message> element."""
-
- message = item.ws_at_start + item.Translate(lang) + item.ws_at_end
- # output message with non-ascii chars escaped as octal numbers
- # C's grammar allows escaped hexadecimal numbers to be infinite,
- # but octal is always of the form \OOO
- message = message.encode('utf-8').encode('string_escape')
- # an escaped char is (\xHH)+ but only if the initial
- # backslash is not escaped.
- not_a_backslash = r"(^|[^\\])" # beginning of line or a non-backslash char
- escaped_backslashes = not_a_backslash + r"(\\\\)*"
- hex_digits = r"((\\x)[0-9a-f]{2})+"
- two_digit_hex_num = re.compile(
- r"(?P<escaped_backslashes>%s)(?P<hex>%s)"
- % (escaped_backslashes, hex_digits))
- message = two_digit_hex_num.sub(_HexToOct, message)
- # unescape \ (convert \\ back to \)
- message = message.replace('\\\\', '\\')
- message = message.replace('"', '\\"')
- message = util.LINEBREAKS.sub(r'\\n', message)
-
- name_attr = item.GetTextualIds()[0]
-
- return '\n case %s:\n return "%s";' % (name_attr, message)
« no previous file with comments | « grit/format/android_xml_unittest.py ('k') | grit/format/c_format_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698