summaryrefslogtreecommitdiff
path: root/toolkit
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2012-10-02 16:21:32 +0100
committerMichael Meeks <michael.meeks@suse.com>2012-10-03 16:56:05 +0100
commit258548ca8116a233e91900709ed7ce7ef1804ecd (patch)
treec99f09aa13aa1fe3c6f9cde18158ba3d5bae68cc /toolkit
parent3448a0e50e2ed3a0c2e8424e85aae6bd5f8a218a (diff)
toolkit: cleanup unit test, and remove obsolete src2xml.
Diffstat (limited to 'toolkit')
-rw-r--r--[-rwxr-xr-x]toolkit/JunitTest_toolkit_complex.mk10
-rw-r--r--toolkit/src2xml/README16
-rw-r--r--toolkit/src2xml/dryrunall.sh2
-rw-r--r--toolkit/src2xml/include-sc.lst8
-rw-r--r--toolkit/src2xml/include-sd.lst6
-rw-r--r--toolkit/src2xml/include-sw.lst5
-rw-r--r--toolkit/src2xml/include.lst298
-rw-r--r--toolkit/src2xml/sc.sh3
-rw-r--r--toolkit/src2xml/sd.sh3
-rw-r--r--toolkit/src2xml/source/boxer.py90
-rw-r--r--toolkit/src2xml/source/expression.py128
-rw-r--r--toolkit/src2xml/source/expression_test.py41
-rw-r--r--toolkit/src2xml/source/globals.py133
-rw-r--r--toolkit/src2xml/source/macroexpander_test.py88
-rw-r--r--toolkit/src2xml/source/macroparser.py147
-rw-r--r--toolkit/src2xml/source/macroparser_test.py37
-rw-r--r--toolkit/src2xml/source/src2xml.py244
-rw-r--r--toolkit/src2xml/source/srclexer.py506
-rw-r--r--toolkit/src2xml/source/srcparser.py434
-rw-r--r--toolkit/src2xml/src-sc.lst57
-rw-r--r--toolkit/src2xml/src-sd.lst112
-rw-r--r--toolkit/src2xml/src-sw.lst119
-rw-r--r--toolkit/src2xml/src.lst665
-rw-r--r--toolkit/src2xml/sw.sh3
24 files changed, 5 insertions, 3150 deletions
diff --git a/toolkit/JunitTest_toolkit_complex.mk b/toolkit/JunitTest_toolkit_complex.mk
index 77bf7544afc1..2a64b2b986ff 100755..100644
--- a/toolkit/JunitTest_toolkit_complex.mk
+++ b/toolkit/JunitTest_toolkit_complex.mk
@@ -27,11 +27,11 @@
$(eval $(call gb_JunitTest_JunitTest,toolkit_complex))
-$(eval $(call gb_JunitTest_add_jars,toolkit_complex,\
- $(OUTDIR)/bin/OOoRunner.jar \
- $(OUTDIR)/bin/ridl.jar \
- $(OUTDIR)/bin/test.jar \
- $(OUTDIR)/bin/unoil.jar \
+$(eval $(call gb_JunitTest_use_jars,toolkit_complex,\
+ OOoRunner \
+ ridl \
+ test \
+ unoil \
))
$(eval $(call gb_JunitTest_add_sourcefiles,toolkit_complex,\
diff --git a/toolkit/src2xml/README b/toolkit/src2xml/README
deleted file mode 100644
index ef30040f2133..000000000000
--- a/toolkit/src2xml/README
+++ /dev/null
@@ -1,16 +0,0 @@
-SRC2XML: Convert OO.o resource to Layout XML.
-
-This directory contains a Python script to convert OO.o's existing dialog
-resource files into XML layout files.
-
-The main executable file is located in ./source/src2xml.py. Run
-
- source/src2xml.py --help
-
-for more information.
-
-See also: source/dryrunall.sh and ../workben/run-s2x
-
-
-Author: Kohei Yoshida <kyoshida@novell.com>
-Modifications: Jan Nieuwenhuizen <jnieuwenhuizen@novell.com>
diff --git a/toolkit/src2xml/dryrunall.sh b/toolkit/src2xml/dryrunall.sh
deleted file mode 100644
index a2bd803cc7fb..000000000000
--- a/toolkit/src2xml/dryrunall.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#! /bin/bash
-source/src2xml.py --dry-run --includes-from=include.lst $(cat src.lst) "$@"
diff --git a/toolkit/src2xml/include-sc.lst b/toolkit/src2xml/include-sc.lst
deleted file mode 100644
index 7b821a2a8407..000000000000
--- a/toolkit/src2xml/include-sc.lst
+++ /dev/null
@@ -1,8 +0,0 @@
-../../solver/680/unxlngi6.pro/inc
-../../sc
-../../sc/inc
-../../sc/addin/inc
-../../sc/source/ui/inc
-../../sc/source/core/inc
-../../sc/source/filter/inc
-../../sc/unxlngi6.pro/inc
diff --git a/toolkit/src2xml/include-sd.lst b/toolkit/src2xml/include-sd.lst
deleted file mode 100644
index 44b1f66a5ffc..000000000000
--- a/toolkit/src2xml/include-sd.lst
+++ /dev/null
@@ -1,6 +0,0 @@
-../../solver/680/unxlngi6.pro/inc
-../../sd
-../../sd/inc
-../../sd/source/ui/inc
-../../sd/source/ui/slidesorter/inc
-../../sd/unxlngi6.pro/inc
diff --git a/toolkit/src2xml/include-sw.lst b/toolkit/src2xml/include-sw.lst
deleted file mode 100644
index 44fa8951eecb..000000000000
--- a/toolkit/src2xml/include-sw.lst
+++ /dev/null
@@ -1,5 +0,0 @@
-../../solver/680/unxlngi6.pro/inc
-../../sw/source/ui/inc
-../../sw/source/core/inc
-../../sw/source/filter/inc
-../../sw/unxlngi6.pro/inc
diff --git a/toolkit/src2xml/include.lst b/toolkit/src2xml/include.lst
deleted file mode 100644
index dc15fe7592b6..000000000000
--- a/toolkit/src2xml/include.lst
+++ /dev/null
@@ -1,298 +0,0 @@
-../../solver/680/unxlngi6.pro/inc
-../../io/inc
-../../io/unxlngi6.pro/inc
-../../sc/inc
-../../sc/addin/inc
-../../sc/source/ui/inc
-../../sc/source/core/inc
-../../sc/source/filter/inc
-../../sc/unxlngi6.pro/inc
-../../sd/inc
-../../sd/source/ui/inc
-../../sd/source/ui/slidesorter/inc
-../../sd/unxlngi6.pro/inc
-../../sw/inc
-../../sw/source/ui/inc
-../../sw/source/core/inc
-../../sw/source/filter/inc
-../../sw/unxlngi6.pro/inc
-../../xt/unxlngi6.pro/inc
-../../agg/inc
-../../icu/unxlngi6.pro/inc
-../../idl/inc
-../../idl/unxlngi6.pro/inc
-../../nas/unxlngi6.pro/inc
-../../odk/inc
-../../sal/qa/inc
-../../sal/inc
-../../sal/unxlngi6.pro/inc
-../../sax/unxlngi6.pro/inc
-../../sch/inc
-../../sch/source/ui/inc
-../../sch/unxlngi6.pro/inc
-../../sj2/inc
-../../sj2/source/inc
-../../sj2/unxlngi6.pro/inc
-../../rsc/inc
-../../rsc/unxlngi6.pro/inc
-../../so3/inc
-../../so3/unxlngi6.pro/inc
-../../sot/inc
-../../sot/unxlngi6.pro/inc
-../../svx/inc
-../../svx/source/inc
-../../svx/source/unodialogs/inc
-../../svx/unxlngi6.pro/inc
-../../ucb/inc
-../../ucb/source/inc
-../../ucb/unxlngi6.pro/inc
-../../udm/inc
-../../udm/source/inc
-../../vcl/inc
-../../vcl/unx/inc
-../../vcl/unx/source/inc
-../../vcl/win/inc
-../../vcl/aqua/inc
-../../vcl/unxlngi6.pro/inc
-../../ure/unxlngi6.pro/inc
-../../uui/unxlngi6.pro/inc
-../../dbaccess/inc
-../../dbaccess/source/ui/inc
-../../dbaccess/source/inc
-../../dbaccess/source/core/inc
-../../dbaccess/source/sdbtools/inc
-../../dbaccess/unxlngi6.pro/inc
-../../transex3/inc
-../../transex3/unxlngi6.pro/inc
-../../bean/unxlngi6.pro/inc
-../../cosv/inc
-../../cosv/source/inc
-../../cppu/inc
-../../cppu/unxlngi6.pro/inc
-../../idlc/inc
-../../idlc/unxlngi6.pro/inc
-../../o3tl/inc
-../../o3tl/unxlngi6.pro/inc
-../../jurt/unxlngi6.pro/inc
-../../sane/inc
-../../scp2/inc
-../../scp2/unxlngi6.pro/inc
-../../sfx2/inc
-../../sfx2/source/inc
-../../sfx2/unxlngi6.pro/inc
-../../stoc/inc
-../../stoc/unxlngi6.pro/inc
-../../framework/inc
-../../framework/source/inc
-../../framework/unxlngi6.pro/inc
-../../desktop/inc
-../../desktop/source/inc
-../../desktop/source/deployment/inc
-../../desktop/source/deployment/registry/inc
-../../desktop/unxlngi6.pro/inc
-../../external/unxlngi6.pro/inc
-../../xml2cmp/source/inc
-../../xml2cmp/unxlngi6.pro/inc
-../../xmlhelp/inc
-../../xmlhelp/unxlngi6.pro/inc
-../../soltools/inc
-../../soltools/testSHL/inc
-../../soltools/unxlngi6.pro/inc
-../../unixODBC/inc
-../../basic/inc
-../../basic/source/inc
-../../basic/unxlngi6.pro/inc
-../../boost/unxlngi6.pro/inc
-../../XmlSearch/unxlngi6.pro/inc
-../../forms/inc
-../../forms/source/inc
-../../forms/source/solar/inc
-../../forms/unxlngi6.pro/inc
-../../ridljar/unxlngi6.pro/inc
-../../offuh/unxlngi6.pro/inc
-../../pyuno/inc
-../../pyuno/unxlngi6.pro/inc
-../../shell/inc
-../../shell/unxlngi6.pro/inc
-../../store/inc
-../../store/unxlngi6.pro/inc
-../../sysui/unxlngi6.pro/inc
-../../tools/inc
-../../tools/win/inc
-../../tools/unxlngi6.pro/inc
-../../twain/inc
-../../unoil/unxlngi6.pro/inc
-../../cppcanvas/inc
-../../cppcanvas/source/inc
-../../cppcanvas/unxlngi6.pro/inc
-../../eventattacher/unxlngi6.pro/inc
-../../unotools/inc
-../../unotools/unxlngi6.pro/inc
-../../scaddins/unxlngi6.pro/inc
-../../javaunohelper/inc
-../../javaunohelper/unxlngi6.pro/inc
-../../configmgr/inc
-../../configmgr/source/inc
-../../configmgr/unxlngi6.pro/inc
-../../hwpfilter/inc
-../../hwpfilter/unxlngi6.pro/inc
-../../libxmlsec/unxlngi6.pro/inc
-../../jvmaccess/inc
-../../jvmaccess/unxlngi6.pro/inc
-../../comphelper/inc
-../../comphelper/unxlngi6.pro/inc
-../../helpcontent2/unxlngi6.pro/inc
-../../animations/inc
-../../animations/unxlngi6.pro/inc
-../../fileaccess/unxlngi6.pro/inc
-../../i18npool/inc
-../../i18npool/unxlngi6.pro/inc
-../../i18nutil/inc
-../../i18nutil/unxlngi6.pro/inc
-../../accessibility/inc
-../../accessibility/unxlngi6.pro/inc
-../../testshl2/inc
-../../testshl2/source/inc
-../../testshl2/unxlngi6.pro/inc
-../../lpsolve/unxlngi6.pro/inc
-../../setup_native/inc
-../../setup_native/unxlngi6.pro/inc
-../../embedserv/source/inc
-../../psprint_config/unxlngi6.pro/inc
-../../basctl/inc
-../../basctl/source/inc
-../../basctl/unxlngi6.pro/inc
-../../cpputools/unxlngi6.pro/inc
-../../stlport/unxlngi6.pro/inc
-../../canvas/inc
-../../canvas/unxlngi6.pro/inc
-../../embeddedobj/inc
-../../embeddedobj/source/inc
-../../embeddedobj/unxlngi6.pro/inc
-../../chart2/inc
-../../chart2/source/inc
-../../chart2/source/view/inc
-../../chart2/source/model/inc
-../../chart2/source/controller/inc
-../../chart2/unxlngi6.pro/inc
-../../scsolver/source/inc
-../../scsolver/unxlngi6.pro/inc
-../../automation/inc
-../../automation/source/inc
-../../automation/unxlngi6.pro/inc
-../../portaudio/unxlngi6.pro/inc
-../../svtools/inc
-../../svtools/unx/inc
-../../svtools/source/inc
-../../svtools/unxlngi6.pro/inc
-../../dtrans/inc
-../../dtrans/source/inc
-../../dtrans/unxlngi6.pro/inc
-../../x11_extensions/inc
-../../fpicker/inc
-../../fpicker/unxlngi6.pro/inc
-../../filter/inc
-../../filter/unxlngi6.pro/inc
-../../extras/unxlngi6.pro/inc
-../../writerperfect/unxlngi6.pro/inc
-../../toolkit/inc
-../../toolkit/unxlngi6.pro/inc
-../../officecfg/unxlngi6.pro/inc
-../../unodevtools/inc
-../../unodevtools/unxlngi6.pro/inc
-../../cppuhelper/inc
-../../cppuhelper/unxlngi6.pro/inc
-../../jvmfwk/inc
-../../jvmfwk/unxlngi6.pro/inc
-../../layout/inc
-../../layout/unxlngi6.pro/inc
-../../linguistic/inc
-../../linguistic/unxlngi6.pro/inc
-../../libegg/inc
-../../libegg/unxlngi6.pro/inc
-../../libwpd/unxlngi6.pro/inc
-../../libwpg/unxlngi6.pro/inc
-../../libwps/unxlngi6.pro/inc
-../../lingucomponent/inc
-../../lingucomponent/unxlngi6.pro/inc
-../../np_sdk/unxlngi6.pro/inc
-../../offapi/unxlngi6.pro/inc
-../../xmlsecurity/inc
-../../xmlsecurity/unxlngi6.pro/inc
-../../padmin/unxlngi6.pro/inc
-../../regexp/inc
-../../regexp/unxlngi6.pro/inc
-../../ucbhelper/inc
-../../ucbhelper/unxlngi6.pro/inc
-../../berkeleydb/unxlngi6.pro/inc
-../../UnoControls/inc
-../../UnoControls/source/inc
-../../UnoControls/unxlngi6.pro/inc
-../../msfontextract/unxlngi6.pro/inc
-../../solenv/inc
-../../solenv/unxmacxp/inc
-../../solver/680/unxlngi6.pro/inc
-../../postprocess/unxlngi6.pro/inc
-../../udkapi/unxlngi6.pro/inc
-../../unoxml/unxlngi6.pro/inc
-../../starmath/inc
-../../starmath/unxlngi6.pro/inc
-../../mdbtools/unxlngi6.pro/inc
-../../basebmp/inc
-../../basegfx/inc
-../../basegfx/source/inc
-../../basegfx/unxlngi6.pro/inc
-../../xmerge/inc
-../../xmerge/source/inc
-../../xmerge/unxlngi6.pro/inc
-../../xmloff/inc
-../../xmloff/unxlngi6.pro/inc
-../../oovbaapi/unxlngi6.pro/inc
-../../package/inc
-../../package/unxlngi6.pro/inc
-../../extensions/inc
-../../extensions/source/inc
-../../extensions/source/plugin/inc
-../../extensions/unxlngi6.pro/inc
-../../codemaker/inc
-../../codemaker/unxlngi6.pro/inc
-../../salhelper/inc
-../../salhelper/unxlngi6.pro/inc
-../../rdbmaker/inc
-../../rdbmaker/unxlngi6.pro/inc
-../../instsetoo_native/unxlngi6.pro/inc
-../../autodoc/inc
-../../autodoc/source/ary/inc
-../../autodoc/source/inc
-../../autodoc/source/display/inc
-../../autodoc/source/parser_i/inc
-../../autodoc/source/parser/inc
-../../avmedia/inc
-../../avmedia/source/inc
-../../avmedia/unxlngi6.pro/inc
-../../lotuswordpro/unxlngi6.pro/inc
-../../remotebridges/unxlngi6.pro/inc
-../../slideshow/inc
-../../slideshow/source/inc
-../../slideshow/unxlngi6.pro/inc
-../../connectivity/inc
-../../connectivity/source/inc
-../../connectivity/unxlngi6.pro/inc
-../../readlicense_oo/unxlngi6.pro/inc
-../../scripting/inc
-../../scripting/source/inc
-../../scripting/unxlngi6.pro/inc
-../../wizards/unxlngi6.pro/inc
-../../xmlscript/inc
-../../xmlscript/source/inc
-../../xmlscript/unxlngi6.pro/inc
-../../bridges/inc
-../../bridges/unxlngi6.pro/inc
-../../testtools/inc
-../../testtools/unxlngi6.pro/inc
-../../registry/inc
-../../registry/unxlngi6.pro/inc
-../../cli_ure/inc
-../../cli_ure/unxlngi6.pro/inc
-../../psprint/inc
-../../psprint/unxlngi6.pro/inc
diff --git a/toolkit/src2xml/sc.sh b/toolkit/src2xml/sc.sh
deleted file mode 100644
index 1bfb213ccf12..000000000000
--- a/toolkit/src2xml/sc.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-source/src2xml.py --include-path=$(tr '\n' ':' < include-sc.lst) --dry-run $(cat src-sc.lst) "$@"
diff --git a/toolkit/src2xml/sd.sh b/toolkit/src2xml/sd.sh
deleted file mode 100644
index 78b47201fc00..000000000000
--- a/toolkit/src2xml/sd.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-source/src2xml.py --include-path=$(tr '\n' ':' < include-sd.lst) --dry-run $(cat src-sd.lst) "$@"
diff --git a/toolkit/src2xml/source/boxer.py b/toolkit/src2xml/source/boxer.py
deleted file mode 100644
index e0bc9d4cb5f0..000000000000
--- a/toolkit/src2xml/source/boxer.py
+++ /dev/null
@@ -1,90 +0,0 @@
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-from globals import *
-
-
-class DlgLayoutBuilder(object):
- def __init__ (self, dlgnode):
- self.dlgnode = dlgnode
- self.rows = {}
-
- def addWidget (self, elem):
- x, y = int(elem.getAttr('x')), int(elem.getAttr('y'))
- self.rows[y] = self.rows.get (y, {})
- while self.rows[y].has_key(x):
- y += 1
- self.rows[y] = self.rows.get (y, {})
- self.rows[y][x] = elem
-
- def build (self):
- root = Element('vbox')
- ys = self.rows.keys()
- ys.sort()
- for y in ys:
- xs = self.rows[y].keys()
- xs.sort()
-
- if len(xs) == 1:
- root.appendChild(self.rows[y][xs[0]])
- continue
-
- hbox = Element('hbox')
- root.appendChild(hbox)
- for x in xs:
- elem = self.rows[y][x]
- hbox.appendChild(elem)
-
- return root
-
-
-class Boxer(object):
- def __init__ (self, root):
- self.root = root
-
- def layout (self):
-
- newroot = RootNode()
- for dlgnode in self.root.children:
- newdlgnode = self.__walkDlgNode(dlgnode)
- newroot.children.append(newdlgnode)
-
- return newroot
-
- def __walkDlgNode (self, dlgnode):
-
- newnode = Element(dlgnode.name)
- newnode.clone(dlgnode)
- if dlgnode.name == 'string':
- return newnode
- newnode.setAttr("xmlns", "http://openoffice.org/2007/layout")
- newnode.setAttr("xmlns:cnt", "http://openoffice.org/2007/layout/container")
- mx = DlgLayoutBuilder(newnode)
-
- # Each dialog node is expected to have a flat list of widgets.
- for widget in dlgnode.children:
- if widget.hasAttr('x') and widget.hasAttr('y'):
- mx.addWidget(widget)
- else:
- newnode.appendChild(widget)
-
- vbox = mx.build()
- if len(vbox.children) > 0:
- newnode.appendChild(vbox)
-
- return newnode
diff --git a/toolkit/src2xml/source/expression.py b/toolkit/src2xml/source/expression.py
deleted file mode 100644
index aaf48daddaa2..000000000000
--- a/toolkit/src2xml/source/expression.py
+++ /dev/null
@@ -1,128 +0,0 @@
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-import sys
-import globals
-
-def toString (node):
-
- if node == None:
- return ''
-
- chars = '('
-
- if type(node.left) == type(0):
- chars += "%d"%node.left
- else:
- chars += toString(node.left)
-
- chars += node.op
-
- if type(node.right) == type(0):
- chars += "%d"%node.right
- else:
- chars += toString(node.right)
-
- chars += ")"
-
- return chars
-
-class Node(object):
- def __init__ (self):
- self.left = None
- self.right = None
- self.parent = None
- self.op = None
-
-class ExpParser(object):
-
- def __init__ (self, tokens):
- self.tokens = tokens
-
- def jumpToRoot (self):
- while self.ptr.parent != None:
- self.ptr = self.ptr.parent
-
- def build (self):
- self.ptr = Node()
-
- for token in self.tokens:
-
- if token in '+-':
- if self.ptr.left == None:
- raise globals.ParseError ('')
- if self.ptr.right == None:
- self.ptr.op = token
- else:
- self.jumpToRoot()
- self.ptr.parent = Node()
- self.ptr.parent.left = self.ptr
- self.ptr = self.ptr.parent
- self.ptr.op = token
-
- elif token in '*/':
- if self.ptr.left == None:
- raise globals.ParseError ('')
- elif self.ptr.right == None:
- self.ptr.op = token
- else:
- num = self.ptr.right
- self.ptr.right = Node()
- self.ptr.right.parent = self.ptr
- self.ptr.right.left = num
- self.ptr.right.op = token
- self.ptr = self.ptr.right
-
- elif token == '(':
- if self.ptr.left == None:
- self.ptr.left = Node()
- self.ptr.left.parent = self.ptr
- self.ptr = self.ptr.left
- elif self.ptr.right == None:
- self.ptr.right = Node()
- self.ptr.right.parent = self.ptr
- self.ptr = self.ptr.right
- else:
- raise globals.ParseError ('')
-
- elif token == ')':
- if self.ptr.left == None:
- raise globals.ParseError ('')
- elif self.ptr.right == None:
- raise globals.ParseError ('')
- elif self.ptr.parent == None:
- pass
- else:
- self.ptr = self.ptr.parent
-
- else:
- num = int(token)
- if self.ptr.left == None:
- self.ptr.left = num
- elif self.ptr.right == None:
- self.ptr.right = num
- else:
- raise globals.ParseError ('')
-
- def dumpTree (self):
- self.jumpToRoot()
- print toString(self.ptr)
-
-
-
-
diff --git a/toolkit/src2xml/source/expression_test.py b/toolkit/src2xml/source/expression_test.py
deleted file mode 100644
index 235cd1d124be..000000000000
--- a/toolkit/src2xml/source/expression_test.py
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env python
-
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-import sys
-import expression
-
-def run (exp):
- tokens = exp.split()
- expparser = expression.ExpParser(tokens)
- expparser.build()
- expparser.dumpTree()
-
-def main ():
- run("6 + 34")
- run("6 + 34 - 10")
- run("6 + 34 - 10 + 200")
- run("6 + 34 - 10 * 200")
- run("6 + 34 - 10 * 200 + 18")
- run("6 + 34 - 10 * 200 + 18 / 2")
-
- run("6 * ( ( 10 + 2 ) - 10 ) * 33")
-
-if __name__ == '__main__':
- main()
diff --git a/toolkit/src2xml/source/globals.py b/toolkit/src2xml/source/globals.py
deleted file mode 100644
index 34d8269402db..000000000000
--- a/toolkit/src2xml/source/globals.py
+++ /dev/null
@@ -1,133 +0,0 @@
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-import sys
-
-class ParseError (Exception):
- pass
-
-def error (msg, exit=0):
- sys.stderr.write (msg)
- if exit:
- sys.exit (exit)
-
-def progress (msg):
- sys.stderr.write(msg)
-
-
-def removeQuote (text):
- """Remove quotes from a literal.
-"""
- if len(text) >= 2 and text[0] == text[len(text)-1] == '"':
- text = text[1:-1]
- return text
-
-
-class Macro(object):
- def __init__ (self, name):
- self.name = name
- self.tokens = []
- self.vars = {}
-
-
-class Node(object):
- def __init__ (self):
- self.children = []
-
- def appendChild (self, childnode):
- self.children.append(childnode)
- childnode.parent = self
-
- def getChildren (self):
- return self.children
-
-
-class RootNode(Node):
- def __init__ (self):
- Node.__init__(self)
-
- def dump (self):
- chars = ''
- for child in self.getChildren():
- chars += child.dump()
- return chars
-
-
-class Element(Node):
-
- INDENT = " "
-
- def __init__ (self, name, rid = None):
- Node.__init__(self)
- self.name = name
- self.parent = None
-# print "name: " + self.name - stats ...
-
- # The following attributes are copied when 'clone'ed.
- self.rid = rid
- self.attrs = {}
-
- def dump (self, level = 0):
- chars = ''
- chars += "\n" + Element.INDENT*level
- chars += '<%s'%self.name
-
- if self.rid != None:
- self.setAttr("rid", self.rid)
-
- chars += self.__dumpAttrs()
-
- if len(self.children) == 0:
- chars += '/>'
- else:
- chars += '>'
- for child in self.getChildren():
- chars += child.dump(level+1)
-
- chars += "\n"+Element.INDENT*level
- chars += "</%s>"%self.name
-
- return chars
-
- def hasAttr (self, name):
- return self.attrs.has_key(name)
-
- def getAttr (self, name):
- return self.attrs[name]
-
- def setAttr (self, name, value):
- if type(value) == type(0):
- value = "%d"%value
- self.attrs[name] = removeQuote(value)
-# print "attr: " + self.name + "." + name - stats ...
- return
-
- def clone (self, elem):
- keys = elem.attrs.keys()
- for key in keys:
- self.attrs[key] = elem.attrs[key]
- self.rid = elem.rid
-
- def __dumpAttrs (self):
- text = ''
- keys = self.attrs.keys()
- keys.sort()
- for key in keys:
- value = self.attrs[key]
- text += ' %s="%s"'%(key, value)
- return text
diff --git a/toolkit/src2xml/source/macroexpander_test.py b/toolkit/src2xml/source/macroexpander_test.py
deleted file mode 100644
index e97848a0df6b..000000000000
--- a/toolkit/src2xml/source/macroexpander_test.py
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/env python
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-import srclexer, srcparser, globals
-
-class TestCase:
-
- @staticmethod
- def run (tokens, defines):
- mcExpander = srcparser.MacroExpander(tokens, defines)
- mcExpander.debug = True
- mcExpander.expand()
- tokens = mcExpander.getTokens()
- print tokens
-
- @staticmethod
- def simpleNoArgs ():
- tokens = ['FUNC_FOO', '(', 'left', ',', 'right', ')']
- defines = {}
- macro = globals.Macro('FUNC_FOO')
- macro.tokens = ['Here', 'comes', 'X', 'and', 'Y']
- defines['FUNC_FOO'] = macro
- TestCase.run(tokens, defines)
-
- @staticmethod
- def simpleArgs ():
- tokens = ['FUNC_FOO', '(', 'left', ',', 'right', ')']
- defines = {}
- macro = globals.Macro('FUNC_FOO')
- macro.tokens = ['Here', 'comes', 'X', 'and', 'Y']
- macro.vars['X'] = 0
- macro.vars['Y'] = 1
- defines['FUNC_FOO'] = macro
- TestCase.run(tokens, defines)
-
- @staticmethod
- def multiTokenArgs ():
- tokens = ['FUNC_FOO', '(', 'left1', 'left2', 'left3', ',', 'right', ')']
- defines = {}
- macro = globals.Macro('FUNC_FOO')
- macro.tokens = ['Here', 'comes', 'X', 'and', 'Y']
- macro.vars['X'] = 0
- macro.vars['Y'] = 1
- defines['FUNC_FOO'] = macro
- TestCase.run(tokens, defines)
-
- @staticmethod
- def nestedTokenArgs ():
- tokens = ['FUNC_BAA', '(', 'left', ',', 'right', ')']
- defines = {}
- macro = globals.Macro('FUNC_FOO')
- macro.tokens = ['Here', 'comes', 'X', 'and', 'Y']
- macro.vars['X'] = 0
- macro.vars['Y'] = 1
- defines['FUNC_FOO'] = macro
- macro = globals.Macro('FUNC_BAA')
- macro.tokens = ['FUNC_FOO']
- defines['FUNC_BAA'] = macro
- TestCase.run(tokens, defines)
-
-def main ():
- print "simple expansion with no arguments"
- TestCase.simpleNoArgs()
- print "simple argument expansion"
- TestCase.simpleArgs()
- print "multi-token argument expansion"
- TestCase.multiTokenArgs()
- print "nested argument expansion"
- TestCase.nestedTokenArgs()
-
-if __name__ == '__main__':
- main()
diff --git a/toolkit/src2xml/source/macroparser.py b/toolkit/src2xml/source/macroparser.py
deleted file mode 100644
index 1cad3d7a04e3..000000000000
--- a/toolkit/src2xml/source/macroparser.py
+++ /dev/null
@@ -1,147 +0,0 @@
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-import sys
-from globals import *
-import srclexer
-
-class MacroParser(object):
-
- def __init__ (self, buf):
- self.buffer = buf
- self.macro = None
- self.debug = False
-
- def parse (self):
- """
-A macro with arguments must have its open paren immediately following
-its name without any whitespace.
-"""
- if self.debug:
- print "-"*68
- print "parsing '%s'"%self.buffer
-
- i = 0
- bufSize = len(self.buffer)
- name, buf = '', ''
- while i < bufSize:
- c = self.buffer[i]
- if c in [' ', "\t"] and len(name) == 0:
- # This is a simple macro with no arguments.
- name = buf
- vars = []
- content = self.buffer[i:]
- self.setMacro(name, vars, content)
- return
- elif c == '(' and len(name) == 0:
- # This one has arguments.
- name = buf
- buf = self.buffer[i:]
- vars, content = self.parseArgs(buf)
- self.setMacro(name, vars, content)
- return
- else:
- buf += c
- i += 1
-
- def parseArgs (self, buffer):
- """Parse arguments.
-
-The buffer is expected to be formatted like '(a, b, c)' where the first
-character is the open paren.
-"""
- scope = 0
- buf = ''
- vars = []
- content = ''
- bufSize = len(buffer)
- i = 0
- while i < bufSize:
- c = buffer[i]
- if c == '(':
- scope += 1
- elif c == ')':
- scope -= 1
- if len(buf) > 0:
- vars.append(buf)
- if scope == 0:
- break
- elif c == ',':
- if len(buf) == 0:
- raise globals.ParseError ('')
- vars.append(buf)
- buf = ''
- elif c in " \t" and scope > 0:
- pass
- else:
- buf += c
-
- i += 1
-
- if scope > 0:
- raise globals.ParseError ('')
-
- return vars, buffer[i+1:]
-
-
- def setMacro (self, name, vars, content):
- if self.debug:
- print "-"*68
- print "name: %s"%name
- for var in vars:
- print "var: %s"%var
- if len(vars) == 0:
- print "no vars"
- print "content: '%s'"%content
-
- if len(content) > 0:
- self.macro = Macro(name)
- for i in xrange(0, len(vars)):
- self.macro.vars[vars[i]] = i
-
- # tokinize it using lexer.
- mclexer = srclexer.SrcLexer(content)
- mclexer.expandHeaders = False
- mclexer.inMacroDefine = True
- mclexer.tokenize()
- self.macro.tokens = mclexer.getTokens()
- if self.debug:
- print self.macro.tokens
-
- if not self.isValidMacro(self.macro):
- self.macro = None
-
- if self.debug:
- if self.macro != None:
- print "macro registered!"
- else:
- print "macro not registered"
-
- def isValidMacro (self, macro):
-
- n = len(macro.tokens)
- if n == 0:
- return False
- elif len(macro.name) > 4 and macro.name[1:4] == 'ID_':
- # We don't want to expand macros like HID_, SID_, WID_, etc.
- return False
- return True
-
-
- def getMacro (self):
- return self.macro
diff --git a/toolkit/src2xml/source/macroparser_test.py b/toolkit/src2xml/source/macroparser_test.py
deleted file mode 100644
index d1e6f6cba7dd..000000000000
--- a/toolkit/src2xml/source/macroparser_test.py
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env python
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-import macroparser
-
-def runParser (buf):
- mparser = macroparser.MacroParser(buf)
- mparser.debug = True
- mparser.parse()
-
-def main ():
- buf = 'FOO (asdfsdaf)'
- runParser(buf)
- buf = 'FOO (x, y) (x) + (y)'
- runParser(buf)
- buf = 'FOO(x, y) (x) + (y)'
- runParser(buf)
-
-
-if __name__ == '__main__':
- main()
diff --git a/toolkit/src2xml/source/src2xml.py b/toolkit/src2xml/source/src2xml.py
deleted file mode 100644
index 16d143fdd5eb..000000000000
--- a/toolkit/src2xml/source/src2xml.py
+++ /dev/null
@@ -1,244 +0,0 @@
-#!/usr/bin/env python
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-import getopt
-import os
-import re
-import sys
-#
-from srclexer import SrcLexer
-from srcparser import SrcParser
-from boxer import Boxer
-# FIXME
-from globals import *
-
-def option_parser ():
- import optparse
- p = optparse.OptionParser ()
-
- p.usage = '''src2xml.py [OPTION]... SRC-FILE...'''
-
- examples = '''
-Examples:
- src2xml.py --output-dir=. --post-process --ignore-includes zoom.src
- src2xml.py --dry-run -I svx/inc -I svx/source/dialog zoom.src
-'''
-
- def format_examples (self):
- return examples
-
- if 'epilog' in p.__dict__:
- p.formatter.format_epilog = format_examples
- p.epilog = examples
- else:
- p.formatter.format_description = format_examples
- p.description = examples
-
- p.description = '''OOo SRC To Layout XML Converter.
-
-Convert OO.o's existing dialog resource files into XML layout files.
-'''
-
- p.add_option ('-l', '--debug-lexer', action='store_true',
- dest='debug_lexer', default=False,
- help='debug lexer')
-
- p.add_option ('-p', '--debug-parser', action='store_true',
- dest='debug_parser', default=False,
- help='debug parser')
-
- p.add_option ('-m', '--debug-macro', action='store_true',
- dest='debug_macro', default=False,
- help='debug macro')
-
- p.add_option ('-n', '--dry-run', action='store_true',
- dest='dry_run', default=False,
- help='dry run')
-
- p.add_option ('-k', '--keep-going', action='store_true',
- dest='keep_going', default=False,
- help='continue after error')
-
- p.add_option ('-i', '--ignore-includes', action='store_true',
- dest='ignore_includes', default=False,
- help='ignore #include directives')
-
- p.add_option ('-I', '--include-dir', action='append',
- dest='include_path',
- default=[],
- metavar='DIR',
- help='append DIR to include path')
-
- def from_file (option, opt_str, value, parser):
- lst = getattr (parser.values, option.dest)
- lst += file (value).read ().split ('\n')
- setattr (parser.values, option.dest, lst)
-
- def from_path (option, opt_str, value, parser):
- lst = getattr (parser.values, option.dest)
- lst += value.split (':')
- setattr (parser.values, option.dest, lst)
-
- # Junk me?
- p.add_option ('--includes-from-file', action='callback', callback=from_file,
- dest='include_path',
- default=[],
- type='string',
- metavar='FILE',
- help='append directory list from FILE to include path')
-
- p.add_option ('--include-path', action='callback', callback=from_path,
- dest='include_path',
- type='string',
- default=[],
- metavar='PATH',
- help='append PATH to include path')
-
- p.add_option ('--only-expand-macros', action='store_true',
- dest='only_expand_macros', default=False,
- help='FIXME: better to say what NOT to expand?')
-
- p.add_option ('-o', '--output-dir', action='store',
- dest='output_dir', default=None,
- metavar='DIR',
- help='Output to DIR')
-
- p.add_option ('-s', '--post-process', action='store_true',
- dest='post_process', default=False,
- help='post process output for use in Layout')
-
- p.add_option ('--stop-on-header', action='store_true',
- dest='stopOnHeader', default=False,
- help='FIXME: remove this?')
-
- return p
-
-
-def convert (file_name, options):
- progress ("parsing %(file_name)s ..." % locals ())
- fullpath = os.path.abspath(file_name)
- if not os.path.isfile(fullpath):
- error("no such file", exit=True)
-
- ##options.include_path.append (os.path.dirname (fullpath))
-
- input = file (fullpath, 'r').read()
- lexer = SrcLexer(input, fullpath)
- lexer.expandHeaders = not options.ignore_includes
- lexer.includeDirs = options.include_path
- lexer.stopOnHeader = options.stopOnHeader
- lexer.debugMacro = options.debug_macro
- if options.debug_lexer:
- lexer.debug = True
- lexer.tokenize()
- progress ("-"*68 + "\n")
- progress ("** token dump\n")
- lexer.dumpTokens()
- progress ("** end of token dump\n")
- return
-
- # Tokenize it using lexer
- lexer.tokenize()
-
- parser = SrcParser(lexer.getTokens(), lexer.getDefines())
- parser.only_expand_macros = options.only_expand_macros
- if options.debug_parser:
- parser.debug = True
- root = parser.parse()
- s = root.dump()
- return s
-
- # Parse the tokens.
- root = parser.parse()
-
- # Box it, and return the XML tree.
- root = Boxer(root).layout()
- output = root.dump()
- if not options.dry_run:
- progress ("\n")
- return output
-
-def dry_one_file (file_name, options):
- try:
- str = convert(file_name, options)
- progress (" SUCCESS\n")
- except Exception, e:
- if options.keep_going:
- progress (" FAILED\n")
- else:
- import traceback
- print traceback.format_exc (None)
- raise e
-
-def post_process (s):
- """Make output directly usable by layout module."""
- s = re.sub ('(</?)([a-z]+)-([a-z]+)-([a-z]+)', r'\1\2\3\4', s)
- s = re.sub ('(</?)([a-z]+)-([a-z]+)', r'\1\2\3', s)
- s = re.sub ('(<(checkbox|(cancel|help|ignore|ok|push|more|no|radio|reset|retry|yes)button|(fixed(info|text)))[^>]*) text=', r'\1 label=', s)
- s = re.sub (' (height|width|x|y)="[0-9]*"', '', s)
- s = re.sub (' (label|text|title)="', r' _\1="', s)
- s = re.sub ('&([^m][^p]*[^;]*)', r'&amp;\1', s)
- s = re.sub (' hide="(TRUE|true|1)"', ' show="false"', s)
-
- s = s.replace ('<modaldialog', '<modaldialog sizeable="true"')
- s = s.replace (' rid=', ' id=')
- s = s.replace (' border="true"', ' has_border="true"')
- s = s.replace (' def-button="true"', ' defbutton="true"')
- s = s.replace (' drop-down="', ' dropdown="')
- s = s.replace (' tab-stop="', ' tabstop="')
- return s
-
-XML_HEADER = '''<?xml version="1.0" encoding="UTF-8"?>
-<!-- This is a template. i18n translation is not performed in-place;
- i18n translated XML files are generated from this template by
- transex3/layout/tralay. !-->
-'''
-
-def do_one_file (file_name, options):
- str = XML_HEADER
- str += convert(file_name, options)
- str += '\n'
-
- if options.post_process:
- str = post_process (str)
- h = sys.stdout
- if options.output_dir:
- base = os.path.basename (file_name)
- root, ext = os.path.splitext (base)
- out_name = options.output_dir + '/' + root + '.xml'
- progress ("writing %(out_name)s ..." % locals ())
- h = file (out_name, 'w')
- h.write (str)
- h.flush ()
- progress ("\n")
-
-def main ():
- p = option_parser ()
- (options, files) = option_parser ().parse_args ()
- if not files:
- p.error ("no input files")
-
- for f in files:
- if options.dry_run:
- dry_one_file (f, options)
- else:
- do_one_file (f, options)
-
-if __name__ == '__main__':
- main ()
diff --git a/toolkit/src2xml/source/srclexer.py b/toolkit/src2xml/source/srclexer.py
deleted file mode 100644
index c79923293c69..000000000000
--- a/toolkit/src2xml/source/srclexer.py
+++ /dev/null
@@ -1,506 +0,0 @@
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-import sys, os.path
-from globals import *
-import macroparser
-
-class EOF(Exception):
- def __init__ (self):
- pass
-
- def str (self):
- return "end of file"
-
-class BOF(Exception):
- def __init__ (self):
- pass
-
- def str (self):
- return "beginning of file"
-
-
-def removeHeaderQuotes (orig):
- if len(orig) <= 2:
- return orig
- elif orig[0] == orig[-1] == '"':
- return orig[1:-1]
- elif orig[0] == '<' and orig[-1] == '>':
- return orig[1:-1]
-
- return orig
-
-
-def dumpTokens (tokens, toError=False):
-
- scope = 0
- indent = " "
- line = ''
- chars = ''
-
- for token in tokens:
- if token in '{<':
- if len(line) > 0:
- chars += indent*scope + line + "\n"
- line = ''
- chars += indent*scope + token + "\n"
- scope += 1
-
- elif token in '}>':
- if len(line) > 0:
- chars += indent*scope + line + "\n"
- line = ''
- scope -= 1
- chars += indent*scope + token
-
- elif token == ';':
- if len(line) > 0:
- chars += indent*scope + line + ";\n"
- line = ''
- else:
- chars += ";\n"
- elif len(token) > 0:
- line += token + ' '
-
- if len(line) > 0:
- chars += line
- chars += "\n"
- if toError:
- sys.stderr.write(chars)
- else:
- sys.stdout.write(chars)
-
-
-class HeaderData(object):
- def __init__ (self):
- self.defines = {}
- self.tokens = []
-
-
-class SrcLexer(object):
- """Lexicographical analyzer for .src format.
-
-The role of a lexer is to parse the source file and break it into
-appropriate tokens. Such tokens are later passed to a parser to
-build the syntax tree.
-"""
- headerCache = {}
-
- VISIBLE = 0
- INVISIBLE_PRE = 1
- INVISIBLE_POST = 2
-
- def __init__ (self, chars, filepath = None):
- self.filepath = filepath
- self.parentLexer = None
- self.chars = chars
- self.bufsize = len(self.chars)
-
- # TODO: use parameters for this
- # Properties that can be copied.
- self.headerDict = dict ()
- self.debug = False
- self.debugMacro = False
- self.includeDirs = list ()
- self.expandHeaders = True
- self.inMacroDefine = False
- self.stopOnHeader = False
-
- def copyProperties (self, other):
- """Copy properties from another instance of SrcLexer."""
-
- # TODO: use parameters for this
- self.headerDict = other.headerDict
- self.debug = other.debug
- self.debugMacro = other.debugMacro
- self.includeDirs = other.includeDirs[:]
- self.expandHeaders = other.expandHeaders
- self.inMacroDefine = other.inMacroDefine
- self.stopOnHeader = other.stopOnHeader
-
- def init (self):
- self.firstNonBlank = ''
- self.token = ''
- self.tokens = []
- self.defines = {}
- self.visibilityStack = []
-
- def getTokens (self):
- return self.tokens
-
- def getDefines (self):
- return self.defines
-
- def nextPos (self, i):
- while True:
- i += 1
- try:
- c = self.chars[i]
- except IndexError:
- raise EOF
-
- if ord(c) in [0x0D]:
- continue
- break
- return i
-
- def prevPos (self, i):
- while True:
- i -= 1
- try:
- c = self.chars[i]
- except IndexError:
- raise BOF
-
- if ord(c) in [0x0D]:
- continue
- break
- return i
-
- def isCodeVisible (self):
- if len(self.visibilityStack) == 0:
- return True
- for item in self.visibilityStack:
- if item != SrcLexer.VISIBLE:
- return False
- return True
-
- def tokenize (self):
- self.init()
-
- i = 0
- while True:
- c = self.chars[i]
-
- if self.firstNonBlank == '' and not c in [' ', "\n", "\t"]:
- # Store the first non-blank in a line.
- self.firstNonBlank = c
- elif c == "\n":
- self.firstNonBlank = ''
-
- if c == '#':
- i = self.pound(i)
- elif c == '/':
- i = self.slash(i)
- elif c == "\n":
- i = self.lineBreak(i)
- elif c == '"':
- i = self.doubleQuote(i)
- elif c in [' ', "\t"]:
- i = self.blank(i)
- elif c in ";()[]{}<>,=+-*":
- # Any outstanding single-character token.
- i = self.anyToken(i, c)
- elif self.isCodeVisible():
- self.token += c
-
- try:
- i = self.nextPos(i)
- except EOF:
- break
-
- if len(self.token):
- self.tokens.append(self.token)
-
- if not self.parentLexer and self.debug:
- progress ("-"*68 + "\n")
- progress ("All defines found in this translation unit:\n")
- keys = self.defines.keys()
- keys.sort()
- for key in keys:
- progress ("@ %s\n"%key)
-
- def dumpTokens (self, toError=False):
- dumpTokens(self.tokens, toError)
-
-
- def maybeAddToken (self):
- if len(self.token) > 0:
- self.tokens.append(self.token)
- self.token = ''
-
-
- #--------------------------------------------------------------------
- # character handlers
-
- def blank (self, i):
- if not self.isCodeVisible():
- return i
-
- self.maybeAddToken()
- return i
-
-
- def pound (self, i):
-
- if self.inMacroDefine:
- return i
-
- if not self.firstNonBlank == '#':
- return i
-
- self.maybeAddToken()
- # We are in preprocessing mode.
-
- # Get the macro command name '#<command> .....'
-
- command, define, buf = '', '', ''
- firstNonBlank = False
- while True:
- try:
- i = self.nextPos(i)
- c = self.chars[i]
- if c == '\\' and self.chars[self.nextPos(i)] == "\n":
- i = self.nextPos(i)
- continue
- except EOF:
- break
-
- if c == "\n":
- if len(buf) > 0 and len(command) == 0:
- command = buf
- i = self.prevPos(i)
- break
- elif c in [' ', "\t"]:
- if not firstNonBlank:
- # Ignore any leading blanks after the '#'.
- continue
-
- if len(command) == 0:
- command = buf
- buf = ''
- else:
- buf += ' '
- elif c == '(':
- if len(buf) > 0 and len(command) == 0:
- command = buf
- buf += c
- else:
- if not firstNonBlank:
- firstNonBlank = True
- buf += c
-
- if command == 'define':
- self.handleMacroDefine(buf)
- elif command == 'include':
- self.handleMacroInclude(buf)
- elif command == 'ifdef':
- defineName = buf.strip()
- if self.defines.has_key(defineName):
- self.visibilityStack.append(SrcLexer.VISIBLE)
- else:
- self.visibilityStack.append(SrcLexer.INVISIBLE_PRE)
-
- elif command == 'ifndef':
- defineName = buf.strip()
- if self.defines.has_key(defineName):
- self.visibilityStack.append(SrcLexer.INVISIBLE_PRE)
- else:
- self.visibilityStack.append(SrcLexer.VISIBLE)
-
- elif command == 'if':
- if self.evalCodeVisibility(buf):
- self.visibilityStack.append(SrcLexer.VISIBLE)
- else:
- self.visibilityStack.append(SrcLexer.INVISIBLE_PRE)
-
- elif command == 'elif':
- if len(self.visibilityStack) == 0:
- raise ParseError ('')
-
- if self.visibilityStack[-1] == SrcLexer.VISIBLE:
- self.visibilityStack[-1] = SrcLexer.INVISIBLE_POST
- elif self.visibilityStack[-1] == SrcLexer.INVISIBLE_PRE:
- # Evaluate only if the current visibility is false.
- if self.evalCodeVisibility(buf):
- self.visibilityStack[-1] = SrcLexer.VISIBLE
-
- elif command == 'else':
- if len(self.visibilityStack) == 0:
- raise ParseError ('')
-
- if self.visibilityStack[-1] == SrcLexer.VISIBLE:
- self.visibilityStack[-1] = SrcLexer.INVISIBLE_POST
- if self.visibilityStack[-1] == SrcLexer.INVISIBLE_PRE:
- self.visibilityStack[-1] = SrcLexer.VISIBLE
-
- elif command == 'endif':
- if len(self.visibilityStack) == 0:
- raise ParseError ('')
- self.visibilityStack.pop()
-
- elif command == 'undef':
- pass
- elif command in ['error', 'pragma']:
- pass
- else:
- print "'%s' '%s'"%(command, buf)
- print self.filepath
- sys.exit(0)
-
- return i
-
-
- def evalCodeVisibility (self, buf):
- try:
- return eval(buf)
- except:
- return True
-
- def handleMacroDefine (self, buf):
-
- mparser = macroparser.MacroParser(buf)
- mparser.debug = self.debugMacro
- mparser.parse()
- macro = mparser.getMacro()
- if macro:
- self.defines[macro.name] = macro
-
- def handleMacroInclude (self, buf):
-
- # Strip excess string if any.
- pos = buf.find(' ')
- if pos >= 0:
- buf = buf[:pos]
- headerSub = removeHeaderQuotes(buf)
-
- if not self.expandHeaders:
- # We don't want to expand headers. Bail out.
- if self.debug:
- progress ("%s ignored\n"%headerSub)
- return
-
- defines = {}
- headerPath = None
- for includeDir in self.includeDirs:
- hpath = includeDir + '/' + headerSub
- if os.path.isfile(hpath) and hpath != self.filepath:
- headerPath = hpath
- break
-
- if not headerPath:
- error("included header file " + headerSub + " not found\n", self.stopOnHeader)
- return
-
- if self.debug:
- progress ("%s found\n"%headerPath)
-
- if headerPath in self.headerDict:
- if self.debug:
- progress ("%s already included\n"%headerPath)
- return
-
- if SrcLexer.headerCache.has_key(headerPath):
- if self.debug:
- progress ("%s in cache\n"%headerPath)
- for key in SrcLexer.headerCache[headerPath].defines.keys():
- self.defines[key] = SrcLexer.headerCache[headerPath].defines[key]
- return
-
- chars = open(headerPath, 'r').read()
- mclexer = SrcLexer(chars, headerPath)
- mclexer.copyProperties(self)
- mclexer.parentLexer = self
- mclexer.tokenize()
- hdrData = HeaderData()
- hdrData.tokens = mclexer.getTokens()
- headerDefines = mclexer.getDefines()
- for key in headerDefines.keys():
- defines[key] = headerDefines[key]
- hdrData.defines[key] = headerDefines[key]
-
- self.headerDict[headerPath] = True
- SrcLexer.headerCache[headerPath] = hdrData
-
- # Update the list of headers that have already been expaneded.
- for key in mclexer.headerDict.keys():
- self.headerDict[key] = True
-
- if self.debug:
- progress ("defines found in header %s:\n"%headerSub)
- for key in defines.keys():
- progress (" '%s'\n"%key)
-
- for key in defines.keys():
- self.defines[key] = defines[key]
-
-
- def slash (self, i):
- if not self.isCodeVisible():
- return i
-
- if i < self.bufsize - 1 and self.chars[i+1] == '/':
- # Parse line comment.
- line = ''
- i += 2
- while i < self.bufsize:
- c = self.chars[i]
- if ord(c) in [0x0A, 0x0D]:
- return i - 1
- line += c
- i += 1
- self.token = ''
- elif i < self.bufsize - 1 and self.chars[i+1] == '*':
- comment = ''
- i += 2
- while i < self.bufsize:
- c = self.chars[i]
- if c == '/' and self.chars[i-1] == '*':
- return i
- comment += c
- i += 1
- else:
- return self.anyToken(i, '/')
-
- return i
-
-
- def lineBreak (self, i):
- if not self.isCodeVisible():
- return i
-
- self.maybeAddToken()
-
- return i
-
-
- def doubleQuote (self, i):
- if not self.isCodeVisible():
- return i
-
- literal = ''
- i += 1
- while i < self.bufsize:
- c = self.chars[i]
- if c == '"':
- self.tokens.append('"'+literal+'"')
- break
- literal += c
- i += 1
-
- return i
-
-
- def anyToken (self, i, token):
- if not self.isCodeVisible():
- return i
-
- self.maybeAddToken()
- self.token = token
- self.maybeAddToken()
- return i
diff --git a/toolkit/src2xml/source/srcparser.py b/toolkit/src2xml/source/srcparser.py
deleted file mode 100644
index 3dcd9c63ed0c..000000000000
--- a/toolkit/src2xml/source/srcparser.py
+++ /dev/null
@@ -1,434 +0,0 @@
-#
-# This file is part of the LibreOffice project.
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This file incorporates work covered by the following license notice:
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed
-# with this work for additional information regarding copyright
-# ownership. The ASF licenses this file to you under the Apache
-# License, Version 2.0 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.apache.org/licenses/LICENSE-2.0 .
-#
-
-import sys
-from globals import *
-import srclexer
-
-# simple name translation map
-postTransMap = {"ok-button": "okbutton",
- "cancel-button": "cancelbutton",
- "help-button": "helpbutton"}
-
-def transName (name):
- """Translate a mixed-casing name to dash-separated name.
-
-Translate a mixed-casing name (e.g. MyLongName) to a dash-separated name
-(e.g. my-long-name).
-"""
- def isUpper (c):
- return c >= 'A' and c <= 'Z'
-
- newname = ''
- parts = []
- buf = ''
- for c in name:
- if isUpper(c) and len(buf) > 1:
- parts.append(buf)
- buf = c
- else:
- buf += c
-
- if len(buf) > 0:
- parts.append(buf)
-
- first = True
- for part in parts:
- if first:
- first = False
- else:
- newname += '-'
- newname += part.lower()
-
- # special-case mapping ...
- if 0: #postTransMap.has_key(newname):
- newname = postTransMap[newname]
-
- return newname
-
-
-def transValue (value):
- """Translate certain values.
-
-Examples of translated values include TRUE -> true, FALSE -> false.
-"""
- if value.lower() in ["true", "false"]:
- value = value.lower()
- return value
-
-
-def renameAttribute (name, elemName):
-
- # TODO: all manner of evil special cases ...
- if elemName == 'metric-field' and name == 'spin-size':
- return 'step-size'
-
- return name
-
-
-class Statement(object):
- """Container to hold information for a single statement.
-
-Each statement consists of the left-hand-side token(s), and right-hand-side
-tokens, separated by a '=' token. This class stores the information on the
-left-hand-side tokens.
-"""
- def __init__ (self):
- self.leftTokens = []
- self.leftScope = None
-
-
-class MacroExpander(object):
- def __init__ (self, tokens, defines):
- self.tokens = tokens
- self.defines = defines
-
- def expand (self):
- self.pos = 0
- while self.pos < len(self.tokens):
- self.expandToken()
-
- def expandToken (self):
- token = self.tokens[self.pos]
- if not self.defines.has_key(token):
- self.pos += 1
- return
-
- macro = self.defines[token]
- nvars = len(macro.vars.keys())
- if nvars == 0:
- # Simple expansion
- self.tokens[self.pos:self.pos+1] = macro.tokens
- return
- else:
- # Expansion with arguments.
- values, lastPos = self.parseValues()
- newtokens = []
- for mtoken in macro.tokens:
- if macro.vars.has_key(mtoken):
- # variable
- pos = macro.vars[mtoken]
- valtokens = values[pos]
- for valtoken in valtokens:
- newtokens.append(valtoken)
- else:
- # not a variable
- newtokens.append(mtoken)
-
- self.tokens[self.pos:self.pos+lastPos+1] = newtokens
-
-
- def parseValues (self):
- """Parse tokens to get macro function variable values.
-
-Be aware that there is an implicit quotes around the text between the open
-paren, the comma(s), and the close paren. For instance, if a macro is defined
-as FOO(a, b) and is used as FOO(one two three, and four), then the 'a' must be
-replaced with 'one two three', and the 'b' replaced with 'and four'. In other
-words, whitespace does not end a token.
-
-"""
- values = []
- i = 1
- scope = 0
- value = []
- while True:
- try:
- tk = self.tokens[self.pos+i]
- except IndexError:
- progress ("error parsing values (%d)\n"%i)
- for j in xrange(0, i):
- print self.tokens[self.pos+j],
- print ''
- srclexer.dumpTokens(self.tokens)
- srclexer.dumpTokens(self.newtokens)
- print "tokens expanded so far:"
- for tk in self.expandedTokens:
- print "-"*20
- print tk
- srclexer.dumpTokens(self.defines[tk].tokens)
- sys.exit(1)
- if tk == '(':
- value = []
- scope += 1
- elif tk == ',':
- values.append(value)
- value = []
- elif tk == ')':
- scope -= 1
- values.append(value)
- value = []
- if scope == 0:
- break
- else:
- raise ParseError ('')
- else:
- value.append(tk)
- i += 1
-
- return values, i
-
- def getTokens (self):
- return self.tokens
-
-
-class SrcParser(object):
-
- def __init__ (self, tokens, defines = None):
- self.tokens = tokens
- self.defines = defines
- self.debug = False
- self.onlyExpandMacros = False
-
- def init (self):
- self.elementStack = [RootNode()]
- self.stmtData = Statement()
- self.tokenBuf = []
- self.leftTokens = []
-
- # Expand defined macros.
- if self.debug:
- progress ("-"*68+"\n")
- for key in self.defines.keys():
- progress ("define: %s\n"%key)
-
- self.expandMacro()
- self.tokenSize = len(self.tokens)
-
- def expandMacro (self):
- macroExp = MacroExpander(self.tokens, self.defines)
- macroExp.expand()
- self.tokens = macroExp.getTokens()
- if self.onlyExpandMacros:
- srclexer.dumpTokens(self.tokens)
- sys.exit(0)
-
- def parse (self):
- """Parse it!
-
-This is the main loop for the parser. This is where it all begins and ends.
-"""
- self.init()
-
- i = 0
- while i < self.tokenSize:
- tk = self.tokens[i]
- if tk == '{':
- i = self.openBrace(i)
- elif tk == '}':
- i = self.closeBrace(i)
- elif tk == ';':
- i = self.semiColon(i)
- elif tk == '=':
- i = self.assignment(i)
- else:
- self.tokenBuf.append(tk)
-
- i += 1
-
- return self.elementStack[0]
-
- #-------------------------------------------------------------------------
- # Token Handlers
-
- """
-Each token handler takes the current token position and returns the position
-of the last token processed. For the most part, the current token position
-and the last processed token are one and the same, in which case the handler
-can simply return the position value it receives without incrementing it.
-
-If you need to read ahead to process more tokens than just the current token,
-make sure that the new token position points to the last token that has been
-processed, not the next token that has not yet been processed. This is
-because the main loop increments the token position when it returns from the
-handler.
-"""
-
- # assignment token '='
- def assignment (self, i):
- self.leftTokens = self.tokenBuf[:]
- if self.stmtData.leftScope == None:
- # Keep track of lhs data in case of compound statement.
- self.stmtData.leftTokens = self.tokenBuf[:]
- self.stmtData.leftScope = len(self.elementStack) - 1
-
- self.tokenBuf = []
- return i
-
- # open brace token '{'
- def openBrace (self, i):
- bufSize = len(self.tokenBuf)
- leftSize = len(self.leftTokens)
- obj = None
- if bufSize == 0 and leftSize > 0:
- # Name = { ...
- obj = Element(self.leftTokens[0])
-
- elif bufSize > 0 and leftSize == 0:
- # Type Name { ...
- wgtType = self.tokenBuf[0]
- wgtRID = None
- if bufSize >= 2:
- wgtRID = self.tokenBuf[1]
- obj = Element(wgtType, wgtRID)
-
- else:
- # LeftName = Name { ...
- obj = Element(self.leftTokens[0])
- obj.setAttr("type", self.tokenBuf[0])
-
- obj.name = transName(obj.name)
-
- if obj.name == 'string-list':
- i = self.parseStringList(i)
- elif obj.name == 'filter-list':
- i = self.parseFilterList(i, obj)
- else:
- self.elementStack[-1].appendChild(obj)
- self.elementStack.append(obj)
-
- self.tokenBuf = []
- self.leftTokens = []
-
- return i
-
- # close brace token '}'
- def closeBrace (self, i):
- if len(self.tokenBuf) > 0:
- if self.debug:
- print self.tokenBuf
- raise ParseError ('')
- self.elementStack.pop()
- return i
-
- # semi colon token ';'
- def semiColon (self, i):
- stackSize = len(self.elementStack)
- scope = stackSize - 1
- if len(self.tokenBuf) == 0:
- pass
- elif scope == 0:
- # We are not supposed to have any statment in global scope.
- # Just ignore this statement.
- pass
- else:
- # Statement within a scope. Import it as an attribute for the
- # current element.
- elem = self.elementStack[-1]
-
- name = "none"
- if len(self.leftTokens) > 0:
- # Use the leftmost token as the name for now. If we need to
- # do more complex parsing of lhs, add more code here.
- name = self.leftTokens[0]
- name = transName(name)
-
- if name == 'pos':
- i = self.parsePosAttr(i)
- elif name == 'size':
- i = self.parseSizeAttr(i)
- elif len (self.tokenBuf) == 1:
- # Simple value
- value = transValue(self.tokenBuf[0])
- name = renameAttribute(name, elem.name)
- elem.setAttr(name, value)
-
- if not self.stmtData.leftScope == None and self.stmtData.leftScope < scope:
- # This is a nested scope within a statement. Do nothing for now.
- pass
-
- if self.stmtData.leftScope == scope:
- # end of (nested) statement.
- self.stmtData.leftScope = None
-
- self.tokenBuf = []
- self.leftTokens = []
-
- return i
-
- def parseStringList (self, i):
-
- i += 1
- while i < self.tokenSize:
- tk = self.tokens[i]
- if tk == '}':
- break
- i += 1
-
- return i
-
- def parseFilterList (self, i, obj):
- self.elementStack[-1].appendChild(obj)
- self.elementStack.append(obj)
-
- return i
-
- def parsePosAttr (self, i):
-
- # MAP_APPFONT ( 6 , 5 )
- elem = self.elementStack[-1]
- x, y = self.parseMapAppfont(self.tokenBuf)
- elem.setAttr("x", x)
- elem.setAttr("y", y)
-
- return i
-
- def parseSizeAttr (self, i):
-
- # MAP_APPFONT ( 6 , 5 )
- elem = self.elementStack[-1]
- width, height = self.parseMapAppfont(self.tokenBuf)
- elem.setAttr("width", width)
- elem.setAttr("height", height)
-
- return i
-
- def parseMapAppfont (self, tokens):
- values = []
- scope = 0
- val = ''
- for tk in tokens:
- if tk == '(':
- scope += 1
- if scope == 1:
- val = ''
- else:
- val += tk
- elif tk == ')':
- scope -= 1
- if scope == 0:
- if len(val) == 0:
- raise ParseError ('')
- values.append(val)
- break
- else:
- val += tk
- elif tk == ',':
- if len(val) == 0:
- raise ParseError ('')
- values.append(val)
- val = ''
- elif scope > 0:
- val += tk
-
- if len(values) != 2:
- raise ParseError ('')
-
- return eval(values[0]), eval(values[1])
-
-
diff --git a/toolkit/src2xml/src-sc.lst b/toolkit/src2xml/src-sc.lst
deleted file mode 100644
index bb2417d47da8..000000000000
--- a/toolkit/src2xml/src-sc.lst
+++ /dev/null
@@ -1,57 +0,0 @@
-../../sc/util/hidother.src
-../../sc/addin/datefunc/dfa.src
-../../sc/addin/rot13/rot13.src
-../../sc/source/ui/src/crnrdlg.src
-../../sc/source/ui/src/hdrcont.src
-../../sc/source/ui/src/solvrdlg.src
-../../sc/source/ui/src/miscdlgs.src
-../../sc/source/ui/src/tabopdlg.src
-../../sc/source/ui/src/popup.src
-../../sc/source/ui/src/autofmt.src
-../../sc/source/ui/src/toolbox.src
-../../sc/source/ui/src/opredlin.src
-../../sc/source/ui/src/namedlg.src
-../../sc/source/ui/src/sortdlg.src
-../../sc/source/ui/src/textdlgs.src
-../../sc/source/ui/src/optdlg.src
-../../sc/source/ui/src/scwarngs.src
-../../sc/source/ui/src/scfuncs.src
-../../sc/source/ui/src/filter.src
-../../sc/source/ui/src/simpref.src
-../../sc/source/ui/src/attrdlg.src
-../../sc/source/ui/src/sc.src
-../../sc/source/ui/src/globstr.src
-../../sc/source/ui/src/scstring.src
-../../sc/source/ui/src/dbnamdlg.src
-../../sc/source/ui/src/subtdlg.src
-../../sc/source/ui/src/pseudo.src
-../../sc/source/ui/src/condfrmt.src
-../../sc/source/ui/src/chartdlg.src
-../../sc/source/ui/src/scerrors.src
-../../sc/source/ui/dbgui/outline.src
-../../sc/source/ui/dbgui/pvfundlg.src
-../../sc/source/ui/dbgui/scendlg.src
-../../sc/source/ui/dbgui/pivot.src
-../../sc/source/ui/dbgui/dpgroupdlg.src
-../../sc/source/ui/dbgui/dapitype.src
-../../sc/source/ui/dbgui/imoptdlg.src
-../../sc/source/ui/dbgui/consdlg.src
-../../sc/source/ui/dbgui/validate.src
-../../sc/source/ui/dbgui/asciiopt.src
-../../sc/source/ui/drawfunc/objdraw.src
-../../sc/source/ui/drawfunc/drformsh.src
-../../sc/source/ui/styleui/scstyles.src
-../../sc/source/ui/styleui/styledlg.src
-../../sc/source/ui/formdlg/parawin.src
-../../sc/source/ui/formdlg/dwfunctr.src
-../../sc/source/ui/formdlg/formdlgs.src
-../../sc/source/ui/navipi/navipi.src
-../../sc/source/ui/miscdlgs/acredlin.src
-../../sc/source/ui/miscdlgs/highred.src
-../../sc/source/ui/miscdlgs/linkarea.src
-../../sc/source/ui/miscdlgs/instbdlg.src
-../../sc/source/ui/pagedlg/pagedlg.src
-../../sc/source/ui/pagedlg/tphf.src
-../../sc/source/ui/pagedlg/hfedtdlg.src
-../../sc/source/ui/docshell/tpstat.src
-../../sc/source/core/src/compiler.src
diff --git a/toolkit/src2xml/src-sd.lst b/toolkit/src2xml/src-sd.lst
deleted file mode 100644
index 041f426a69e6..000000000000
--- a/toolkit/src2xml/src-sd.lst
+++ /dev/null
@@ -1,112 +0,0 @@
-../../sd/util/hidother.src
-../../sd/source/ui/app/tbxids_tmpl.src
-../../sd/source/ui/app/popup2_tmpl.src
-../../sd/source/ui/app/popup.src
-../../sd/source/ui/app/toolbox.src
-../../sd/source/ui/app/sdstring.src
-../../sd/source/ui/app/strings.src
-../../sd/source/ui/app/menuids_tmpl.src
-../../sd/source/ui/app/accel_tmpl.src
-../../sd/source/ui/app/menuids3_tmpl.src
-../../sd/source/ui/app/app.src
-../../sd/source/ui/app/res_bmp.src
-../../sd/source/ui/app/pseudo.src
-../../sd/source/ui/app/toolbox2_tmpl.src
-../../sd/source/ui/dlg/headerfooterdlg.src
-../../sd/source/ui/dlg/dlgfield.src
-../../sd/source/ui/dlg/sdobjpal.src
-../../sd/source/ui/dlg/morphdlg.src
-../../sd/source/ui/dlg/PaneDockingWindow.src
-../../sd/source/ui/dlg/dlgsnap.src
-../../sd/source/ui/dlg/tpoption.src
-../../sd/source/ui/dlg/present.src
-../../sd/source/ui/dlg/sdpreslt.src
-../../sd/source/ui/dlg/dlgass.src
-../../sd/source/ui/dlg/tpaction.src
-../../sd/source/ui/dlg/prntopts.src
-../../sd/source/ui/dlg/prltempl.src
-../../sd/source/ui/dlg/custsdlg.src
-../../sd/source/ui/dlg/inspagob.src
-../../sd/source/ui/dlg/paragr.src
-../../sd/source/ui/dlg/dlgpage.src
-../../sd/source/ui/dlg/vectdlg.src
-../../sd/source/ui/dlg/dlgolbul.src
-../../sd/source/ui/dlg/copydlg.src
-../../sd/source/ui/dlg/dlg_char.src
-../../sd/source/ui/dlg/printdlg.src
-../../sd/source/ui/dlg/ins_page.src
-../../sd/source/ui/dlg/animobjs.src
-../../sd/source/ui/dlg/ins_paste.src
-../../sd/source/ui/dlg/tabtempl.src
-../../sd/source/ui/dlg/LayerDialog.src
-../../sd/source/ui/dlg/masterlayoutdlg.src
-../../sd/source/ui/dlg/navigatr.src
-../../sd/source/ui/dlg/brkdlg.src
-../../sd/source/ui/slidesorter/shell/SlideSorterChildWindow.src
-../../sd/source/ui/notes/NotesChildWindow.src
-../../sd/source/ui/toolpanel/ToolPanelChildWindow.src
-../../sd/source/ui/animations/CustomAnimationCreateDialog.src
-../../sd/source/ui/animations/CustomAnimationDialog.src
-../../sd/source/ui/animations/CustomAnimation.src
-../../sd/source/ui/animations/CustomAnimationSchemesPane.src
-../../sd/source/ui/animations/SlideTransitionPane.src
-../../sd/source/ui/animations/AnimationSchemesPane.src
-../../sd/source/ui/animations/CustomAnimationPane.src
-../../sd/source/ui/accessibility/accessibility.src
-../../sd/source/ui/slideshow/slideshow.src
-../../sd/source/core/glob.src
-../../sd/source/filter/html/pubdlg.src
-../../sd/unxlngi6.pro/inc/menuids3.src
-../../sd/unxlngi6.pro/inc/popup2.src
-../../sd/unxlngi6.pro/inc/toolbox2.src
-../../sd/unxlngi6.pro/inc/accel.src
-../../sd/unxlngi6.pro/inc/menuids.src
-../../sd/unxlngi6.pro/inc/tbxids.src
-../../sd/unxlngi6.pro/misc/app/popup.src
-../../sd/unxlngi6.pro/misc/app/toolbox.src
-../../sd/unxlngi6.pro/misc/app/sdstring.src
-../../sd/unxlngi6.pro/misc/app/strings.src
-../../sd/unxlngi6.pro/misc/app/app.src
-../../sd/unxlngi6.pro/misc/app/res_bmp.src
-../../sd/unxlngi6.pro/misc/app/pseudo.src
-../../sd/unxlngi6.pro/misc/dlg/headerfooterdlg.src
-../../sd/unxlngi6.pro/misc/dlg/dlgfield.src
-../../sd/unxlngi6.pro/misc/dlg/morphdlg.src
-../../sd/unxlngi6.pro/misc/dlg/PaneDockingWindow.src
-../../sd/unxlngi6.pro/misc/dlg/dlgsnap.src
-../../sd/unxlngi6.pro/misc/dlg/tpoption.src
-../../sd/unxlngi6.pro/misc/dlg/present.src
-../../sd/unxlngi6.pro/misc/dlg/sdpreslt.src
-../../sd/unxlngi6.pro/misc/dlg/dlgass.src
-../../sd/unxlngi6.pro/misc/dlg/tpaction.src
-../../sd/unxlngi6.pro/misc/dlg/prntopts.src
-../../sd/unxlngi6.pro/misc/dlg/prltempl.src
-../../sd/unxlngi6.pro/misc/dlg/custsdlg.src
-../../sd/unxlngi6.pro/misc/dlg/inspagob.src
-../../sd/unxlngi6.pro/misc/dlg/paragr.src
-../../sd/unxlngi6.pro/misc/dlg/dlgpage.src
-../../sd/unxlngi6.pro/misc/dlg/vectdlg.src
-../../sd/unxlngi6.pro/misc/dlg/dlgolbul.src
-../../sd/unxlngi6.pro/misc/dlg/copydlg.src
-../../sd/unxlngi6.pro/misc/dlg/dlg_char.src
-../../sd/unxlngi6.pro/misc/dlg/printdlg.src
-../../sd/unxlngi6.pro/misc/dlg/ins_page.src
-../../sd/unxlngi6.pro/misc/dlg/animobjs.src
-../../sd/unxlngi6.pro/misc/dlg/ins_paste.src
-../../sd/unxlngi6.pro/misc/dlg/tabtempl.src
-../../sd/unxlngi6.pro/misc/dlg/LayerDialog.src
-../../sd/unxlngi6.pro/misc/dlg/masterlayoutdlg.src
-../../sd/unxlngi6.pro/misc/dlg/navigatr.src
-../../sd/unxlngi6.pro/misc/dlg/brkdlg.src
-../../sd/unxlngi6.pro/misc/core/glob.src
-../../sd/unxlngi6.pro/misc/html/pubdlg.src
-../../sd/unxlngi6.pro/misc/notes/NotesChildWindow.src
-../../sd/unxlngi6.pro/misc/accessibility/accessibility.src
-../../sd/unxlngi6.pro/misc/animui/CustomAnimationCreateDialog.src
-../../sd/unxlngi6.pro/misc/animui/CustomAnimationDialog.src
-../../sd/unxlngi6.pro/misc/animui/CustomAnimation.src
-../../sd/unxlngi6.pro/misc/animui/CustomAnimationSchemesPane.src
-../../sd/unxlngi6.pro/misc/animui/SlideTransitionPane.src
-../../sd/unxlngi6.pro/misc/animui/AnimationSchemesPane.src
-../../sd/unxlngi6.pro/misc/animui/CustomAnimationPane.src
-../../sd/unxlngi6.pro/misc/slideshow/slideshow.src
diff --git a/toolkit/src2xml/src-sw.lst b/toolkit/src2xml/src-sw.lst
deleted file mode 100644
index 9e8c875fdb1a..000000000000
--- a/toolkit/src2xml/src-sw.lst
+++ /dev/null
@@ -1,119 +0,0 @@
-../../sw/sdi/swslots.src
-../../sw/util/hidother.src
-../../sw/source/ui/app/mn.src
-../../sw/source/ui/app/app.src
-../../sw/source/ui/app/error.src
-../../sw/source/ui/web/web.src
-../../sw/source/ui/dbui/addresslistdialog.src
-../../sw/source/ui/dbui/customizeaddresslistdialog.src
-../../sw/source/ui/dbui/mailmergewizard.src
-../../sw/source/ui/dbui/mmlayoutpage.src
-../../sw/source/ui/dbui/dbui.src
-../../sw/source/ui/dbui/createaddresslistdialog.src
-../../sw/source/ui/dbui/mmoutputpage.src
-../../sw/source/ui/dbui/dbtablepreviewdialog.src
-../../sw/source/ui/dbui/mmmergepage.src
-../../sw/source/ui/dbui/dbinsdlg.src
-../../sw/source/ui/dbui/selectdbtabledialog.src
-../../sw/source/ui/dbui/mmoutputtypepage.src
-../../sw/source/ui/dbui/mailmergechildwindow.src
-../../sw/source/ui/dbui/mmpreparemergepage.src
-../../sw/source/ui/dbui/mmdocselectpage.src
-../../sw/source/ui/dbui/mmgreetingspage.src
-../../sw/source/ui/dbui/mmaddressblockpage.src
-../../sw/source/ui/misc/linenum.src
-../../sw/source/ui/misc/outline.src
-../../sw/source/ui/misc/glosbib.src
-../../sw/source/ui/misc/pgfnote.src
-../../sw/source/ui/misc/redlndlg.src
-../../sw/source/ui/misc/glossary.src
-../../sw/source/ui/misc/numberingtypelistbox.src
-../../sw/source/ui/misc/autocorr.src
-../../sw/source/ui/misc/insfnote.src
-../../sw/source/ui/misc/srtdlg.src
-../../sw/source/ui/misc/num.src
-../../sw/source/ui/misc/pggrid.src
-../../sw/source/ui/misc/bookmark.src
-../../sw/source/ui/misc/docfnote.src
-../../sw/source/ui/misc/insrule.src
-../../sw/source/ui/docvw/docvw.src
-../../sw/source/ui/docvw/access.src
-../../sw/source/ui/fldui/javaedit.src
-../../sw/source/ui/fldui/fldref.src
-../../sw/source/ui/fldui/fldtdlg.src
-../../sw/source/ui/fldui/fldfunc.src
-../../sw/source/ui/fldui/flddok.src
-../../sw/source/ui/fldui/flddinf.src
-../../sw/source/ui/fldui/inpdlg.src
-../../sw/source/ui/fldui/flddb.src
-../../sw/source/ui/fldui/changedb.src
-../../sw/source/ui/fldui/fldvar.src
-../../sw/source/ui/fldui/DropDownFieldDialog.src
-../../sw/source/ui/fldui/fldui.src
-../../sw/source/ui/fmtui/tmpdlg.src
-../../sw/source/ui/index/cnttab.src
-../../sw/source/ui/index/multmrk.src
-../../sw/source/ui/index/idxmrk.src
-../../sw/source/ui/lingu/olmenu.src
-../../sw/source/ui/table/colwd.src
-../../sw/source/ui/table/rowht.src
-../../sw/source/ui/table/tautofmt.src
-../../sw/source/ui/table/splittbl.src
-../../sw/source/ui/table/chartins.src
-../../sw/source/ui/table/tabledlg.src
-../../sw/source/ui/table/split.src
-../../sw/source/ui/table/convert.src
-../../sw/source/ui/table/insrc.src
-../../sw/source/ui/table/table.src
-../../sw/source/ui/table/mergetbl.src
-../../sw/source/ui/table/instable.src
-../../sw/source/ui/utlui/utlui.src
-../../sw/source/ui/utlui/initui.src
-../../sw/source/ui/utlui/navipi.src
-../../sw/source/ui/utlui/attrdesc.src
-../../sw/source/ui/utlui/gloslst.src
-../../sw/source/ui/utlui/poolfmt.src
-../../sw/source/ui/utlui/unotools.src
-../../sw/source/ui/wrtsh/wrtsh.src
-../../sw/source/ui/chrdlg/chardlg.src
-../../sw/source/ui/chrdlg/swbreak.src
-../../sw/source/ui/chrdlg/ccoll.src
-../../sw/source/ui/chrdlg/paradlg.src
-../../sw/source/ui/chrdlg/drpcps.src
-../../sw/source/ui/chrdlg/chrdlg.src
-../../sw/source/ui/chrdlg/numpara.src
-../../sw/source/ui/config/mailconfigpage.src
-../../sw/source/ui/config/optcomp.src
-../../sw/source/ui/config/optdlg.src
-../../sw/source/ui/config/optload.src
-../../sw/source/ui/config/redlopt.src
-../../sw/source/ui/dialog/abstract.src
-../../sw/source/ui/dialog/docstdlg.src
-../../sw/source/ui/dialog/ascfldlg.src
-../../sw/source/ui/dialog/dialog.src
-../../sw/source/ui/dialog/regionsw.src
-../../sw/source/ui/dialog/wordcountdialog.src
-../../sw/source/ui/dochdl/dochdl.src
-../../sw/source/ui/dochdl/selglos.src
-../../sw/source/ui/envelp/mailmrge.src
-../../sw/source/ui/envelp/envelp.src
-../../sw/source/ui/envelp/labprt.src
-../../sw/source/ui/envelp/envlop.src
-../../sw/source/ui/envelp/label.src
-../../sw/source/ui/envelp/envfmt.src
-../../sw/source/ui/envelp/labfmt.src
-../../sw/source/ui/envelp/envprt.src
-../../sw/source/ui/smartmenu/stmenu.src
-../../sw/source/ui/frmdlg/frmpage.src
-../../sw/source/ui/frmdlg/cption.src
-../../sw/source/ui/frmdlg/column.src
-../../sw/source/ui/frmdlg/wrap.src
-../../sw/source/ui/frmdlg/frmui.src
-../../sw/source/ui/globdoc/globdoc.src
-../../sw/source/ui/ribbar/tbxanchr.src
-../../sw/source/ui/ribbar/workctrl.src
-../../sw/source/ui/ribbar/inputwin.src
-../../sw/source/ui/shells/shells.src
-../../sw/source/ui/uiview/pview.src
-../../sw/source/ui/uiview/view.src
-../../sw/source/core/undo/undo.src
diff --git a/toolkit/src2xml/src.lst b/toolkit/src2xml/src.lst
deleted file mode 100644
index fdfe91f8b2be..000000000000
--- a/toolkit/src2xml/src.lst
+++ /dev/null
@@ -1,665 +0,0 @@
-../../sc/util/hidother.src
-../../sc/addin/datefunc/dfa.src
-../../sc/addin/rot13/rot13.src
-../../sc/source/ui/src/crnrdlg.src
-../../sc/source/ui/src/hdrcont.src
-../../sc/source/ui/src/solvrdlg.src
-../../sc/source/ui/src/miscdlgs.src
-../../sc/source/ui/src/tabopdlg.src
-../../sc/source/ui/src/popup.src
-../../sc/source/ui/src/autofmt.src
-../../sc/source/ui/src/toolbox.src
-../../sc/source/ui/src/opredlin.src
-../../sc/source/ui/src/namedlg.src
-../../sc/source/ui/src/sortdlg.src
-../../sc/source/ui/src/textdlgs.src
-../../sc/source/ui/src/optdlg.src
-../../sc/source/ui/src/scwarngs.src
-../../sc/source/ui/src/scfuncs.src
-../../sc/source/ui/src/filter.src
-../../sc/source/ui/src/simpref.src
-../../sc/source/ui/src/attrdlg.src
-../../sc/source/ui/src/sc.src
-../../sc/source/ui/src/globstr.src
-../../sc/source/ui/src/scstring.src
-../../sc/source/ui/src/dbnamdlg.src
-../../sc/source/ui/src/subtdlg.src
-../../sc/source/ui/src/pseudo.src
-../../sc/source/ui/src/condfrmt.src
-../../sc/source/ui/src/scerrors.src
-../../sc/source/ui/dbgui/outline.src
-../../sc/source/ui/dbgui/pvfundlg.src
-../../sc/source/ui/dbgui/scendlg.src
-../../sc/source/ui/dbgui/pivot.src
-../../sc/source/ui/dbgui/dpgroupdlg.src
-../../sc/source/ui/dbgui/dapitype.src
-../../sc/source/ui/dbgui/imoptdlg.src
-../../sc/source/ui/dbgui/consdlg.src
-../../sc/source/ui/dbgui/validate.src
-../../sc/source/ui/dbgui/asciiopt.src
-../../sc/source/ui/drawfunc/objdraw.src
-../../sc/source/ui/drawfunc/drformsh.src
-../../sc/source/ui/styleui/scstyles.src
-../../sc/source/ui/styleui/styledlg.src
-../../sc/source/ui/formdlg/parawin.src
-../../sc/source/ui/formdlg/dwfunctr.src
-../../sc/source/ui/formdlg/formdlgs.src
-../../sc/source/ui/navipi/navipi.src
-../../sc/source/ui/miscdlgs/acredlin.src
-../../sc/source/ui/miscdlgs/highred.src
-../../sc/source/ui/miscdlgs/linkarea.src
-../../sc/source/ui/miscdlgs/instbdlg.src
-../../sc/source/ui/pagedlg/pagedlg.src
-../../sc/source/ui/pagedlg/tphf.src
-../../sc/source/ui/pagedlg/hfedtdlg.src
-../../sc/source/ui/docshell/tpstat.src
-../../sc/source/core/src/compiler.src
-../../sd/util/hidother.src
-../../sd/source/ui/app/tbxids_tmpl.src
-../../sd/source/ui/app/popup2_tmpl.src
-../../sd/source/ui/app/popup.src
-../../sd/source/ui/app/toolbox.src
-../../sd/source/ui/app/sdstring.src
-../../sd/source/ui/app/strings.src
-../../sd/source/ui/app/menuids_tmpl.src
-../../sd/source/ui/app/accel_tmpl.src
-../../sd/source/ui/app/menuids3_tmpl.src
-../../sd/source/ui/app/app.src
-../../sd/source/ui/app/res_bmp.src
-../../sd/source/ui/app/pseudo.src
-../../sd/source/ui/app/toolbox2_tmpl.src
-../../sd/source/ui/dlg/headerfooterdlg.src
-../../sd/source/ui/dlg/dlgfield.src
-../../sd/source/ui/dlg/sdobjpal.src
-../../sd/source/ui/dlg/morphdlg.src
-../../sd/source/ui/dlg/PaneDockingWindow.src
-../../sd/source/ui/dlg/dlgsnap.src
-../../sd/source/ui/dlg/tpoption.src
-../../sd/source/ui/dlg/present.src
-../../sd/source/ui/dlg/sdpreslt.src
-../../sd/source/ui/dlg/dlgass.src
-../../sd/source/ui/dlg/tpaction.src
-../../sd/source/ui/dlg/prntopts.src
-../../sd/source/ui/dlg/prltempl.src
-../../sd/source/ui/dlg/custsdlg.src
-../../sd/source/ui/dlg/inspagob.src
-../../sd/source/ui/dlg/paragr.src
-../../sd/source/ui/dlg/dlgpage.src
-../../sd/source/ui/dlg/vectdlg.src
-../../sd/source/ui/dlg/dlgolbul.src
-../../sd/source/ui/dlg/copydlg.src
-../../sd/source/ui/dlg/dlg_char.src
-../../sd/source/ui/dlg/printdlg.src
-../../sd/source/ui/dlg/animobjs.src
-../../sd/source/ui/dlg/ins_paste.src
-../../sd/source/ui/dlg/tabtempl.src
-../../sd/source/ui/dlg/LayerDialog.src
-../../sd/source/ui/dlg/masterlayoutdlg.src
-../../sd/source/ui/dlg/navigatr.src
-../../sd/source/ui/dlg/brkdlg.src
-../../sd/source/ui/slidesorter/shell/SlideSorterChildWindow.src
-../../sd/source/ui/notes/NotesChildWindow.src
-../../sd/source/ui/toolpanel/ToolPanelChildWindow.src
-../../sd/source/ui/animations/CustomAnimationCreateDialog.src
-../../sd/source/ui/animations/CustomAnimationDialog.src
-../../sd/source/ui/animations/CustomAnimation.src
-../../sd/source/ui/animations/CustomAnimationSchemesPane.src
-../../sd/source/ui/animations/SlideTransitionPane.src
-../../sd/source/ui/animations/AnimationSchemesPane.src
-../../sd/source/ui/animations/CustomAnimationPane.src
-../../sd/source/ui/accessibility/accessibility.src
-../../sd/source/ui/slideshow/slideshow.src
-../../sd/source/core/glob.src
-../../sd/source/filter/html/pubdlg.src
-../../sw/sdi/swslots.src
-../../sw/util/hidother.src
-../../sw/source/ui/app/mn.src
-../../sw/source/ui/app/app.src
-../../sw/source/ui/app/error.src
-../../sw/source/ui/web/web.src
-../../sw/source/ui/dbui/addresslistdialog.src
-../../sw/source/ui/dbui/customizeaddresslistdialog.src
-../../sw/source/ui/dbui/mailmergewizard.src
-../../sw/source/ui/dbui/mmlayoutpage.src
-../../sw/source/ui/dbui/dbui.src
-../../sw/source/ui/dbui/createaddresslistdialog.src
-../../sw/source/ui/dbui/mmoutputpage.src
-../../sw/source/ui/dbui/dbtablepreviewdialog.src
-../../sw/source/ui/dbui/mmmergepage.src
-../../sw/source/ui/dbui/dbinsdlg.src
-../../sw/source/ui/dbui/selectdbtabledialog.src
-../../sw/source/ui/dbui/mmoutputtypepage.src
-../../sw/source/ui/dbui/mailmergechildwindow.src
-../../sw/source/ui/dbui/mmpreparemergepage.src
-../../sw/source/ui/dbui/mmdocselectpage.src
-../../sw/source/ui/dbui/mmgreetingspage.src
-../../sw/source/ui/dbui/mmaddressblockpage.src
-../../sw/source/ui/misc/linenum.src
-../../sw/source/ui/misc/outline.src
-../../sw/source/ui/misc/glosbib.src
-../../sw/source/ui/misc/pgfnote.src
-../../sw/source/ui/misc/redlndlg.src
-../../sw/source/ui/misc/glossary.src
-../../sw/source/ui/misc/numberingtypelistbox.src
-../../sw/source/ui/misc/autocorr.src
-../../sw/source/ui/misc/insfnote.src
-../../sw/source/ui/misc/srtdlg.src
-../../sw/source/ui/misc/num.src
-../../sw/source/ui/misc/pggrid.src
-../../sw/source/ui/misc/bookmark.src
-../../sw/source/ui/misc/docfnote.src
-../../sw/source/ui/misc/insrule.src
-../../sw/source/ui/docvw/docvw.src
-../../sw/source/ui/docvw/access.src
-../../sw/source/ui/fldui/javaedit.src
-../../sw/source/ui/fldui/fldref.src
-../../sw/source/ui/fldui/fldtdlg.src
-../../sw/source/ui/fldui/fldfunc.src
-../../sw/source/ui/fldui/flddok.src
-../../sw/source/ui/fldui/flddinf.src
-../../sw/source/ui/fldui/inpdlg.src
-../../sw/source/ui/fldui/flddb.src
-../../sw/source/ui/fldui/changedb.src
-../../sw/source/ui/fldui/fldvar.src
-../../sw/source/ui/fldui/DropDownFieldDialog.src
-../../sw/source/ui/fldui/fldui.src
-../../sw/source/ui/fmtui/tmpdlg.src
-../../sw/source/ui/index/cnttab.src
-../../sw/source/ui/index/multmrk.src
-../../sw/source/ui/index/idxmrk.src
-../../sw/source/ui/lingu/olmenu.src
-../../sw/source/ui/table/colwd.src
-../../sw/source/ui/table/rowht.src
-../../sw/source/ui/table/tautofmt.src
-../../sw/source/ui/table/splittbl.src
-../../sw/source/ui/table/chartins.src
-../../sw/source/ui/table/tabledlg.src
-../../sw/source/ui/table/split.src
-../../sw/source/ui/table/convert.src
-../../sw/source/ui/table/insrc.src
-../../sw/source/ui/table/table.src
-../../sw/source/ui/table/mergetbl.src
-../../sw/source/ui/table/instable.src
-../../sw/source/ui/utlui/utlui.src
-../../sw/source/ui/utlui/initui.src
-../../sw/source/ui/utlui/navipi.src
-../../sw/source/ui/utlui/attrdesc.src
-../../sw/source/ui/utlui/gloslst.src
-../../sw/source/ui/utlui/poolfmt.src
-../../sw/source/ui/utlui/unotools.src
-../../sw/source/ui/wrtsh/wrtsh.src
-../../sw/source/ui/chrdlg/chardlg.src
-../../sw/source/ui/chrdlg/swbreak.src
-../../sw/source/ui/chrdlg/ccoll.src
-../../sw/source/ui/chrdlg/paradlg.src
-../../sw/source/ui/chrdlg/drpcps.src
-../../sw/source/ui/chrdlg/chrdlg.src
-../../sw/source/ui/chrdlg/numpara.src
-../../sw/source/ui/config/mailconfigpage.src
-../../sw/source/ui/config/optcomp.src
-../../sw/source/ui/config/optdlg.src
-../../sw/source/ui/config/optload.src
-../../sw/source/ui/config/redlopt.src
-../../sw/source/ui/dialog/abstract.src
-../../sw/source/ui/dialog/docstdlg.src
-../../sw/source/ui/dialog/ascfldlg.src
-../../sw/source/ui/dialog/dialog.src
-../../sw/source/ui/dialog/regionsw.src
-../../sw/source/ui/dialog/wordcountdialog.src
-../../sw/source/ui/dochdl/dochdl.src
-../../sw/source/ui/dochdl/selglos.src
-../../sw/source/ui/envelp/mailmrge.src
-../../sw/source/ui/envelp/envelp.src
-../../sw/source/ui/envelp/labprt.src
-../../sw/source/ui/envelp/envlop.src
-../../sw/source/ui/envelp/label.src
-../../sw/source/ui/envelp/envfmt.src
-../../sw/source/ui/envelp/labfmt.src
-../../sw/source/ui/envelp/envprt.src
-../../sw/source/ui/smartmenu/stmenu.src
-../../sw/source/ui/frmdlg/frmpage.src
-../../sw/source/ui/frmdlg/cption.src
-../../sw/source/ui/frmdlg/column.src
-../../sw/source/ui/frmdlg/wrap.src
-../../sw/source/ui/frmdlg/frmui.src
-../../sw/source/ui/globdoc/globdoc.src
-../../sw/source/ui/ribbar/tbxanchr.src
-../../sw/source/ui/ribbar/workctrl.src
-../../sw/source/ui/ribbar/inputwin.src
-../../sw/source/ui/shells/shells.src
-../../sw/source/ui/uiview/pview.src
-../../sw/source/ui/uiview/view.src
-../../sw/source/core/undo/undo.src
-../../sch/util/hidother.src
-../../sch/source/ui/app/res_hc_bmp.src
-../../sch/source/ui/app/menu_tmpl.src
-../../sch/source/ui/app/strings.src
-../../sch/source/ui/app/menuids_tmpl.src
-../../sch/source/ui/app/app.src
-../../sch/source/ui/app/res_bmp.src
-../../sch/source/ui/dlg/axisgrid.src
-../../sch/source/ui/dlg/attrib2.src
-../../sch/source/ui/dlg/attrib3.src
-../../sch/source/ui/dlg/attrib4.src
-../../sch/source/ui/dlg/tpappopt.src
-../../sch/source/ui/dlg/tplabel.src
-../../sch/source/ui/dlg/attrib.src
-../../sch/source/ui/dlg/title.src
-../../sch/source/ui/dlg/lightdlg.src
-../../sch/source/ui/dlg/viewdlg.src
-../../sch/source/ui/dlg/dgrdata.src
-../../sch/source/ui/dlg/dlggraut.src
-../../sch/source/ui/dlg/tpscaley.src
-../../sch/source/ui/dlg/datdescr.src
-../../sch/source/ui/dlg/legend.src
-../../sch/source/ui/dlg/diagrtyp.src
-../../sch/source/ui/dlg/datstat.src
-../../sch/source/core/glob.src
-../../so3/src/svuidlg.src
-../../so3/src/formats.src
-../../so3/src/nocode.src
-../../so3/util/hidother.src
-../../so3/workben/ddetest/ddetest.src
-../../so3/workben/paintdlg.src
-../../so3/workben/svser.src
-../../so3/workben/paint.src
-../../svx/util/hidother.src
-../../svx/source/src/app.src
-../../svx/source/form/fmstring.src
-../../svx/source/form/filtnav.src
-../../svx/source/form/fmexpl.src
-../../svx/source/form/fmsearch.src
-../../svx/source/form/tbxform.src
-../../svx/source/form/formshell.src
-../../svx/source/form/datanavi.src
-../../svx/source/intro/ooo.src
-../../svx/source/intro/iso.src
-../../svx/source/items/svxitems.src
-../../svx/source/items/svxerr.src
-../../svx/source/editeng/editeng.src
-../../svx/source/accessibility/accessibility.src
-../../svx/source/mnuctrls/mnuctrls.src
-../../svx/source/engine3d/float3d.src
-../../svx/source/engine3d/string3d.src
-../../svx/source/dialog/textanim.src
-../../svx/source/dialog/hyperdlg.src
-../../svx/source/dialog/textattr.src
-../../svx/source/dialog/tabarea.src
-../../svx/source/dialog/rubydialog.src
-../../svx/source/dialog/frmdirlbox.src
-../../svx/source/dialog/chardlg.src
-../../svx/source/dialog/numfmt.src
-../../svx/source/dialog/doclinkdialog.src
-../../svx/source/dialog/treeopt.src
-../../svx/source/dialog/page.src
-../../svx/source/dialog/opthtml.src
-../../svx/source/dialog/frmsel.src
-../../svx/source/dialog/ruler.src
-../../svx/source/dialog/optgdlg.src
-../../svx/source/dialog/fontwork.src
-../../svx/source/dialog/backgrnd.src
-../../svx/source/dialog/SpellDialog.src
-../../svx/source/dialog/labdlg.src
-../../svx/source/dialog/charmap.src
-../../svx/source/dialog/zoom.src
-../../svx/source/dialog/border.src
-../../svx/source/dialog/svuidlg.src
-../../svx/source/dialog/impgrf.src
-../../svx/source/dialog/dlgname.src
-../../svx/source/dialog/test.src
-../../svx/source/dialog/selector.src
-../../svx/source/dialog/optupdt.src
-../../svx/source/dialog/numpages.src
-../../svx/source/dialog/thesdlg.src
-../../svx/source/dialog/tabline.src
-../../svx/source/dialog/srchdlg.src
-../../svx/source/dialog/contdlg.src
-../../svx/source/dialog/paragrph.src
-../../svx/source/dialog/commonlingui.src
-../../svx/source/dialog/sdstring.src
-../../svx/source/dialog/optmemory.src
-../../svx/source/dialog/grfflt.src
-../../svx/source/dialog/langbox.src
-../../svx/source/dialog/bbdlg.src
-../../svx/source/dialog/hangulhanjadlg.src
-../../svx/source/dialog/txenctab.src
-../../svx/source/dialog/connpooloptions.src
-../../svx/source/dialog/dbregister.src
-../../svx/source/dialog/macropg.src
-../../svx/source/dialog/fontsubs.src
-../../svx/source/dialog/align.src
-../../svx/source/dialog/imapdlg.src
-../../svx/source/dialog/dlgctrl.src
-../../svx/source/dialog/tabstpge.src
-../../svx/source/dialog/readonlyimage.src
-../../svx/source/dialog/docrecovery.src
-../../svx/source/dialog/hlmarkwn.src
-../../svx/source/dialog/internationaloptions.src
-../../svx/source/dialog/optjava.src
-../../svx/source/dialog/language.src
-../../svx/source/dialog/hdft.src
-../../svx/source/dialog/lingu.src
-../../svx/source/dialog/grfpage.src
-../../svx/source/dialog/iconcdlg.src
-../../svx/source/dialog/swframeposstrings.src
-../../svx/source/dialog/connect.src
-../../svx/source/dialog/bmpmask.src
-../../svx/source/dialog/postdlg.src
-../../svx/source/dialog/checklbx.src
-../../svx/source/dialog/autocdlg.src
-../../svx/source/dialog/measure.src
-../../svx/source/dialog/cfg.src
-../../svx/source/dialog/scriptdlg.src
-../../svx/source/dialog/langtab.src
-../../svx/source/dialog/srchxtra.src
-../../svx/source/dialog/ctredlin.src
-../../svx/source/dialog/passwd.src
-../../svx/source/dialog/transfrm.src
-../../svx/source/dialog/optfltr.src
-../../svx/source/dialog/prtqry.src
-../../svx/source/dialog/eventdlg.src
-../../svx/source/dialog/hyphen.src
-../../svx/source/dialog/swpossizetabpage.src
-../../svx/source/dialog/dstribut.src
-../../svx/source/svxlink/linkmgr.src
-../../svx/source/fmcomp/gridctrl.src
-../../svx/source/fmcomp/showcols.src
-../../svx/source/outliner/outliner.src
-../../svx/source/unodraw/unodraw.src
-../../svx/source/svdraw/svdstr.src
-../../svx/source/stbctrls/stbctrls.src
-../../svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.src
-../../svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.src
-../../svx/source/toolbars/fontworkbar.src
-../../svx/source/toolbars/extrusionbar.src
-../../svx/source/options/optlingu.src
-../../svx/source/options/optasian.src
-../../svx/source/options/optdict.src
-../../svx/source/options/optinet2.src
-../../svx/source/options/optspell.src
-../../svx/source/options/optsave.src
-../../svx/source/options/optgrid.src
-../../svx/source/options/multipat.src
-../../svx/source/options/optcolor.src
-../../svx/source/options/optpath.src
-../../svx/source/options/optctl.src
-../../svx/source/options/optaccessibility.src
-../../svx/source/options/optjsearch.src
-../../svx/source/options/optgenrl.src
-../../svx/source/gallery2/gallery.src
-../../svx/source/gallery2/galtheme.src
-../../svx/source/tbxctrls/extrusioncontrols.src
-../../svx/source/tbxctrls/tbcontrl.src
-../../svx/source/tbxctrls/fontworkgallery.src
-../../svx/source/tbxctrls/lboxctrl.src
-../../svx/source/tbxctrls/linectrl.src
-../../svx/source/tbxctrls/tbxdraw.src
-../../svx/source/tbxctrls/grafctrl.src
-../../svx/source/tbxctrls/colrctrl.src
-../../vcl/source/src/menu.src
-../../vcl/source/src/stdtext.src
-../../vcl/source/src/images.src
-../../vcl/source/src/helptext.src
-../../vcl/source/src/btntext.src
-../../vcl/source/src/units.src
-../../uui/source/passworderrs.src
-../../uui/source/logindlg.src
-../../uui/source/passworddlg.src
-../../uui/source/ids.src
-../../uui/source/masterpassworddlg.src
-../../uui/source/passcrtdlg.src
-../../uui/source/cookiedg.src
-../../uui/source/fltdlg.src
-../../uui/source/masterpasscrtdlg.src
-../../dbaccess/util/hidother.src
-../../dbaccess/source/ui/app/app.src
-../../dbaccess/source/ui/dlg/indexdialog.src
-../../dbaccess/source/ui/dlg/RelationDlg.src
-../../dbaccess/source/ui/dlg/queryfilter.src
-../../dbaccess/source/ui/dlg/AdvancedPageDlg.src
-../../dbaccess/source/ui/dlg/queryorder.src
-../../dbaccess/source/ui/dlg/dbadmin.src
-../../dbaccess/source/ui/dlg/dsselect.src
-../../dbaccess/source/ui/dlg/paramdialog.src
-../../dbaccess/source/ui/dlg/CollectionView.src
-../../dbaccess/source/ui/dlg/sqlmessage.src
-../../dbaccess/source/ui/dlg/UserAdmin.src
-../../dbaccess/source/ui/dlg/ConnectionPage.src
-../../dbaccess/source/ui/dlg/dlgattr.src
-../../dbaccess/source/ui/dlg/AutoControls.src
-../../dbaccess/source/ui/dlg/dlgsave.src
-../../dbaccess/source/ui/dlg/UserAdminDlg.src
-../../dbaccess/source/ui/dlg/directsql.src
-../../dbaccess/source/ui/dlg/dlgsize.src
-../../dbaccess/source/ui/dlg/AdabasStat.src
-../../dbaccess/source/ui/dlg/dbfindex.src
-../../dbaccess/source/ui/dlg/dbadminsetup.src
-../../dbaccess/source/ui/dlg/AdabasStatDlg.src
-../../dbaccess/source/ui/dlg/adtabdlg.src
-../../dbaccess/source/ui/dlg/dbadmin2.src
-../../dbaccess/source/ui/uno/dbinteraction.src
-../../dbaccess/source/ui/misc/WizardPages.src
-../../dbaccess/source/ui/misc/dbumiscres.src
-../../dbaccess/source/ui/control/undosqledit.src
-../../dbaccess/source/ui/control/TableGrantCtrl.src
-../../dbaccess/source/ui/control/tabletree.src
-../../dbaccess/source/ui/imagelists/dbimagelists.src
-../../dbaccess/source/ui/relationdesign/relation.src
-../../dbaccess/source/ui/tabledesign/table.src
-../../dbaccess/source/ui/querydesign/querydlg.src
-../../dbaccess/source/ui/querydesign/query.src
-../../dbaccess/source/ui/browser/sbagrid.src
-../../dbaccess/source/ui/browser/sbabrw.src
-../../dbaccess/source/core/resource/strings.src
-../../dbaccess/source/sdbtools/resource/sdbt_strings.src
-../../sfx2/util/hidother.src
-../../sfx2/source/doc/sfxbasemodel.src
-../../sfx2/source/doc/doctempl.src
-../../sfx2/source/doc/doc.src
-../../sfx2/source/doc/secmacrowarnings.src
-../../sfx2/source/doc/new.src
-../../sfx2/source/doc/docvor.src
-../../sfx2/source/doc/graphhelp.src
-../../sfx2/source/doc/doctdlg.src
-../../sfx2/source/appl/dde.src
-../../sfx2/source/appl/newhelp.src
-../../sfx2/source/appl/sfx.src
-../../sfx2/source/appl/app.src
-../../sfx2/source/menu/menu.src
-../../sfx2/source/view/view.src
-../../sfx2/source/bastyp/fltfnc.src
-../../sfx2/source/bastyp/bastyp.src
-../../sfx2/source/config/config.src
-../../sfx2/source/dialog/recfloat.src
-../../sfx2/source/dialog/templdlg.src
-../../sfx2/source/dialog/newstyle.src
-../../sfx2/source/dialog/dinfdlg.src
-../../sfx2/source/dialog/alienwarn.src
-../../sfx2/source/dialog/dinfedt.src
-../../sfx2/source/dialog/printopt.src
-../../sfx2/source/dialog/srchdlg.src
-../../sfx2/source/dialog/mailwindow.src
-../../sfx2/source/dialog/dialog.src
-../../sfx2/source/dialog/macropg.src
-../../sfx2/source/dialog/versdlg.src
-../../sfx2/source/dialog/mgetempl.src
-../../sfx2/source/dialog/filedlghelper.src
-../../sfx2/source/dialog/cfg.src
-../../sfx2/source/dialog/passwd.src
-../../framework/util/hidother.src
-../../framework/source/classes/resource.src
-../../desktop/util/hidother.src
-../../desktop/source/app/desktop.src
-../../desktop/source/deployment/gui/dp_gui_dependencydialog.src
-../../desktop/source/deployment/gui/dp_gui_backend.src
-../../desktop/source/deployment/gui/dp_gui_versionboxes.src
-../../desktop/source/deployment/gui/dp_gui_updatedialog.src
-../../desktop/source/deployment/gui/dp_gui_updateinstalldialog.src
-../../desktop/source/deployment/gui/dp_gui_dialog.src
-../../desktop/source/deployment/misc/dp_misc.src
-../../desktop/source/deployment/manager/dp_manager.src
-../../desktop/source/deployment/unopkg/unopkg.src
-../../desktop/source/deployment/registry/sfwk/dp_sfwk.src
-../../desktop/source/deployment/registry/component/dp_component.src
-../../desktop/source/deployment/registry/dp_registry.src
-../../desktop/source/deployment/registry/configuration/dp_configuration.src
-../../desktop/source/deployment/registry/script/dp_script.src
-../../desktop/source/deployment/registry/package/dp_package.src
-../../desktop/source/migration/migration.src
-../../desktop/source/migration/wizard.src
-../../basic/source/app/basic.src
-../../basic/source/app/ttmsg.src
-../../basic/source/app/svtmsg.src
-../../basic/source/app/testtool.src
-../../basic/source/app/basmsg.src
-../../basic/source/sbx/format.src
-../../basic/source/classes/sb.src
-../../forms/source/resource/xforms.src
-../../forms/source/resource/strings.src
-../../scaddins/source/datefunc/datefunc.src
-../../scaddins/source/analysis/analysis_deffuncnames.src
-../../scaddins/source/analysis/analysis.src
-../../scaddins/source/analysis/analysis_funcnames.src
-../../basctl/util/hidother.src
-../../basctl/source/dlged/dlgresid.src
-../../basctl/source/dlged/managelang.src
-../../basctl/source/basicide/tbxctl.src
-../../basctl/source/basicide/moptions.src
-../../basctl/source/basicide/macrodlg.src
-../../basctl/source/basicide/objdlg.src
-../../basctl/source/basicide/basidesh.src
-../../basctl/source/basicide/moduldlg.src
-../../basctl/source/basicide/brkdlg.src
-../../chart2/source/controller/menu/ContextMenu.src
-../../chart2/source/controller/menu/MainMenu.src
-../../chart2/source/controller/dialogs/tp_DataLabel.src
-../../chart2/source/controller/dialogs/Strings_ChartTypes.src
-../../chart2/source/controller/dialogs/dlg_InsertTitle.src
-../../chart2/source/controller/dialogs/Strings.src
-../../chart2/source/controller/dialogs/tp_SeriesStatistic.src
-../../chart2/source/controller/dialogs/dlg_InsertDataLabel.src
-../../chart2/source/controller/dialogs/Strings_Statistic.src
-../../chart2/source/controller/dialogs/dlg_InsertLegend.src
-../../chart2/source/controller/dialogs/dlg_RotateDiagram.src
-../../chart2/source/controller/dialogs/tp_PointGeometry.src
-../../chart2/source/controller/dialogs/dlg_ObjectProperties.src
-../../chart2/source/controller/dialogs/tp_TitleRotation.src
-../../chart2/source/controller/dialogs/dlg_ChartType.src
-../../chart2/source/controller/dialogs/Bitmaps.src
-../../chart2/source/controller/dialogs/dlg_InsertStatistic.src
-../../chart2/source/controller/dialogs/Strings_Scale.src
-../../chart2/source/controller/dialogs/tp_LegendPosition.src
-../../chart2/source/controller/dialogs/dlg_InsertAxis_Grid.src
-../../chart2/source/controller/dialogs/tp_AxisLabel.src
-../../chart2/source/controller/dialogs/tp_SeriesToAxis.src
-../../chart2/source/controller/dialogs/tp_Scale.src
-../../scsolver/source/ui/scsolver.src
-../../automation/source/miniapp/servres.src
-../../svtools/util/hidother.src
-../../svtools/bmpmaker/bmp.src
-../../svtools/source/uno/unoifac2.src
-../../svtools/source/java/javaerror.src
-../../svtools/source/java/patchjavaerror.src
-../../svtools/source/misc/imagemgr.src
-../../svtools/source/misc/iniman.src
-../../svtools/source/misc/config.src
-../../svtools/source/misc/errtxt.src
-../../svtools/source/misc/ehdl.src
-../../svtools/source/misc/helpagent.src
-../../svtools/source/control/ctrlbox.src
-../../svtools/source/control/ctrltool.src
-../../svtools/source/control/calendar.src
-../../svtools/source/control/filectrl.src
-../../svtools/source/dialogs/colrdlg.src
-../../svtools/source/dialogs/addresstemplate.src
-../../svtools/source/dialogs/prnsetup.src
-../../svtools/source/dialogs/formats.src
-../../svtools/source/dialogs/filedlg2.src
-../../svtools/source/dialogs/so3res.src
-../../svtools/source/dialogs/printdlg.src
-../../svtools/source/dialogs/logindlg.src
-../../svtools/source/dialogs/wizardmachine.src
-../../svtools/source/misc1/mediatyp.src
-../../svtools/source/brwbox/editbrowsebox.src
-../../svtools/source/contnr/fileview.src
-../../svtools/source/contnr/svcontnr.src
-../../svtools/source/contnr/templwin.src
-../../svtools/source/items1/cstitem.src
-../../svtools/source/filter.vcl/filter/dlgepng.src
-../../svtools/source/filter.vcl/filter/dlgexpor.src
-../../svtools/source/filter.vcl/filter/dlgejpg.src
-../../svtools/source/filter.vcl/filter/strings.src
-../../svtools/source/Accessibility/accessiblelistboxentry.src
-../../svtools/source/plugapp/commtest.src
-../../svtools/source/plugapp/testtool.src
-../../fpicker/source/office/OfficeFilePicker.src
-../../fpicker/source/office/iodlg.src
-../../filter/source/pdf/impdialog.src
-../../filter/source/pdf/pdf.src
-../../filter/source/t602/t602filter.src
-../../filter/source/flash/impswfdialog.src
-../../filter/source/xsltdialog/xmlfiltertabdialog.src
-../../filter/source/xsltdialog/xmlfiltersettingsdialog.src
-../../filter/source/xsltdialog/xmlfileview.src
-../../filter/source/xsltdialog/xmlfilterdialogstrings.src
-../../filter/source/xsltdialog/hidother.src
-../../filter/source/xsltdialog/xmlfiltertabpagexslt.src
-../../filter/source/xsltdialog/xmlfiltertestdialog.src
-../../filter/source/xsltdialog/xmlfiltertabpagebasic.src
-../../toolkit/source/awt/accessiblestrings.src
-../../toolkit/source/awt/xthrobber.src
-../../xmlsecurity/source/dialogs/warnings.src
-../../xmlsecurity/source/dialogs/macrosecurity.src
-../../xmlsecurity/source/dialogs/certificatechooser.src
-../../xmlsecurity/source/dialogs/digitalsignaturesdialog.src
-../../xmlsecurity/source/dialogs/certificateviewer.src
-../../xmlsecurity/source/component/warnbox.src
-../../padmin/source/rtsetup.src
-../../padmin/source/padialog.src
-../../ucbhelper/workben/ucbexplorer/ucbexplorer.src
-../../starmath/util/hidother.src
-../../starmath/source/commands.src
-../../starmath/source/symbol.src
-../../starmath/source/menu_tmpl.src
-../../starmath/source/smres.src
-../../extensions/qa/complex/extensions/orl_de.src
-../../extensions/qa/complex/extensions/orl_en-US.src
-../../extensions/util/hidother.src
-../../extensions/source/bibliography/menu.src
-../../extensions/source/bibliography/toolbar.src
-../../extensions/source/bibliography/datman.src
-../../extensions/source/bibliography/sections.src
-../../extensions/source/bibliography/hidother.src
-../../extensions/source/bibliography/bib.src
-../../extensions/source/scanner/grid.src
-../../extensions/source/scanner/sanedlg.src
-../../extensions/source/dbpilots/dbpilots.src
-../../extensions/source/dbpilots/gridpages.src
-../../extensions/source/dbpilots/listcombopages.src
-../../extensions/source/dbpilots/groupboxpages.src
-../../extensions/source/dbpilots/commonpagesdbp.src
-../../extensions/source/abpilot/abspilot.src
-../../extensions/source/update/ui/updatecheckui.src
-../../extensions/source/propctrlr/taborder.src
-../../extensions/source/propctrlr/listselectiondlg.src
-../../extensions/source/propctrlr/formlinkdialog.src
-../../extensions/source/propctrlr/fontdialog.src
-../../extensions/source/propctrlr/selectlabeldialog.src
-../../extensions/source/propctrlr/pcrmiscres.src
-../../extensions/source/propctrlr/formres.src
-../../extensions/source/propctrlr/newdatatype.src
-../../extensions/source/propctrlr/propres.src
-../../extensions/source/preload/preload.src
-../../extensions/workben/testresource.src
-../../avmedia/util/hidother.src
-../../avmedia/source/framework/mediacontrol.src
-../../avmedia/source/viewer/mediawindow.src
-../../connectivity/source/resource/conn_shared_res.src
-../../connectivity/source/drivers/hsqldb/hsqlui.src
-../../scripting/source/runtimemgr/ScriptExecDialog.src
-../../wizards/util/hidother.src
-../../wizards/source/euro/euro.src
-../../wizards/source/imagelists/imagelists.src
-../../wizards/source/template/template.src
-../../wizards/source/importwizard/importwi.src
-../../wizards/source/formwizard/dbwizres.src
diff --git a/toolkit/src2xml/sw.sh b/toolkit/src2xml/sw.sh
deleted file mode 100644
index 22f16d4b6c57..000000000000
--- a/toolkit/src2xml/sw.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#! /bin/bash
-
-source/src2xml.py --include-path=$(tr '\n' ':' < include-sw.lst) --dry-run $(cat src-sw.lst) "$@"