changeset ef5fae93a3b2 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=ef5fae93a3b2
description:
        slicc: Pure python implementation of slicc.
        This is simply a translation of the C++ slicc into python with very 
minimal
        reorganization of the code.  The output can be verified as nearly 
identical
        by doing a "diff -wBur".

        Slicc can easily be run manually by using util/slicc

diffstat:

177 files changed, 6517 insertions(+), 15233 deletions(-)
src/mem/protocol/SConscript                     |   86 -
src/mem/slicc/SConscript                        |  129 -
src/mem/slicc/__init__.py                       |   25 
src/mem/slicc/ast/AST.cc                        |   39 
src/mem/slicc/ast/AST.hh                        |   94 -
src/mem/slicc/ast/AST.py                        |   63 
src/mem/slicc/ast/ASTs.hh                       |   91 -
src/mem/slicc/ast/ActionDeclAST.cc              |   98 -
src/mem/slicc/ast/ActionDeclAST.hh              |   86 -
src/mem/slicc/ast/ActionDeclAST.py              |   72 
src/mem/slicc/ast/AssignStatementAST.cc         |   76 -
src/mem/slicc/ast/AssignStatementAST.hh         |   85 -
src/mem/slicc/ast/AssignStatementAST.py         |   59 
src/mem/slicc/ast/CheckAllocateStatementAST.cc  |   72 
src/mem/slicc/ast/CheckAllocateStatementAST.hh  |   82 -
src/mem/slicc/ast/CheckAllocateStatementAST.py  |   47 
src/mem/slicc/ast/CheckStopSlotsStatementAST.cc |  115 -
src/mem/slicc/ast/CheckStopSlotsStatementAST.hh |   85 -
src/mem/slicc/ast/CheckStopSlotsStatementAST.py |   74 
src/mem/slicc/ast/ChipComponentAccessAST.cc     |  244 ---
src/mem/slicc/ast/ChipComponentAccessAST.hh     |  101 -
src/mem/slicc/ast/ChipComponentAccessAST.py     |  161 ++
src/mem/slicc/ast/CopyHeadStatementAST.cc       |   85 -
src/mem/slicc/ast/CopyHeadStatementAST.hh       |   87 -
src/mem/slicc/ast/CopyHeadStatementAST.py       |   52 
src/mem/slicc/ast/DeclAST.cc                    |   39 
src/mem/slicc/ast/DeclAST.hh                    |   85 -
src/mem/slicc/ast/DeclAST.py                    |   38 
src/mem/slicc/ast/DeclListAST.cc                |   86 -
src/mem/slicc/ast/DeclListAST.hh                |   84 -
src/mem/slicc/ast/DeclListAST.py                |   51 
src/mem/slicc/ast/EnqueueStatementAST.cc        |  111 -
src/mem/slicc/ast/EnqueueStatementAST.hh        |   93 -
src/mem/slicc/ast/EnqueueStatementAST.py        |   86 +
src/mem/slicc/ast/EnumDeclAST.cc                |   98 -
src/mem/slicc/ast/EnumDeclAST.hh                |   86 -
src/mem/slicc/ast/EnumDeclAST.py                |   71 
src/mem/slicc/ast/EnumExprAST.cc                |   76 -
src/mem/slicc/ast/EnumExprAST.hh                |   85 -
src/mem/slicc/ast/EnumExprAST.py                |   53 
src/mem/slicc/ast/ExprAST.cc                    |   39 
src/mem/slicc/ast/ExprAST.hh                    |   84 -
src/mem/slicc/ast/ExprAST.py                    |   45 
src/mem/slicc/ast/ExprStatementAST.cc           |   73 
src/mem/slicc/ast/ExprStatementAST.hh           |   83 -
src/mem/slicc/ast/ExprStatementAST.py           |   52 
src/mem/slicc/ast/FormalParamAST.cc             |   72 
src/mem/slicc/ast/FormalParamAST.hh             |   88 -
src/mem/slicc/ast/FormalParamAST.py             |   52 
src/mem/slicc/ast/FuncCallExprAST.cc            |  224 --
src/mem/slicc/ast/FuncCallExprAST.hh            |   89 -
src/mem/slicc/ast/FuncCallExprAST.py            |  168 ++
src/mem/slicc/ast/FuncDeclAST.cc                |  112 -
src/mem/slicc/ast/FuncDeclAST.hh                |   91 -
src/mem/slicc/ast/FuncDeclAST.py                |   88 +
src/mem/slicc/ast/IfStatementAST.cc             |   98 -
src/mem/slicc/ast/IfStatementAST.hh             |   89 -
src/mem/slicc/ast/IfStatementAST.py             |   74 
src/mem/slicc/ast/InPortDeclAST.cc              |  149 -
src/mem/slicc/ast/InPortDeclAST.hh              |   91 -
src/mem/slicc/ast/InPortDeclAST.py              |  130 +
src/mem/slicc/ast/InfixOperatorExprAST.cc       |  121 -
src/mem/slicc/ast/InfixOperatorExprAST.hh       |   85 -
src/mem/slicc/ast/InfixOperatorExprAST.py       |   89 +
src/mem/slicc/ast/LiteralExprAST.cc             |   55 
src/mem/slicc/ast/LiteralExprAST.hh             |   83 -
src/mem/slicc/ast/LiteralExprAST.py             |   55 
src/mem/slicc/ast/Location.cc                   |   87 -
src/mem/slicc/ast/Location.hh                   |   93 -
src/mem/slicc/ast/MachineAST.cc                 |   99 -
src/mem/slicc/ast/MachineAST.hh                 |   93 -
src/mem/slicc/ast/MachineAST.py                 |   81 +
src/mem/slicc/ast/MemberExprAST.cc              |   72 
src/mem/slicc/ast/MemberExprAST.hh              |   83 -
src/mem/slicc/ast/MemberExprAST.py              |   55 
src/mem/slicc/ast/MethodCallExprAST.cc          |  160 --
src/mem/slicc/ast/MethodCallExprAST.hh          |   93 -
src/mem/slicc/ast/MethodCallExprAST.py          |  127 +
src/mem/slicc/ast/NewExprAST.cc                 |    9 
src/mem/slicc/ast/NewExprAST.hh                 |   20 
src/mem/slicc/ast/NewExprAST.py                 |   47 
src/mem/slicc/ast/ObjDeclAST.cc                 |  137 -
src/mem/slicc/ast/ObjDeclAST.hh                 |   86 -
src/mem/slicc/ast/ObjDeclAST.py                 |   94 +
src/mem/slicc/ast/OutPortDeclAST.cc             |   79 -
src/mem/slicc/ast/OutPortDeclAST.hh             |   89 -
src/mem/slicc/ast/OutPortDeclAST.py             |   57 
src/mem/slicc/ast/PairAST.cc                    |   72 
src/mem/slicc/ast/PairAST.hh                    |   86 -
src/mem/slicc/ast/PairAST.py                    |   36 
src/mem/slicc/ast/PairListAST.cc                |   49 
src/mem/slicc/ast/PairListAST.hh                |   82 -
src/mem/slicc/ast/PairListAST.py                |   37 
src/mem/slicc/ast/PeekStatementAST.cc           |  115 -
src/mem/slicc/ast/PeekStatementAST.hh           |   91 -
src/mem/slicc/ast/PeekStatementAST.py           |   73 
src/mem/slicc/ast/ReturnStatementAST.cc         |   79 -
src/mem/slicc/ast/ReturnStatementAST.hh         |   83 -
src/mem/slicc/ast/ReturnStatementAST.py         |   54 
src/mem/slicc/ast/StatementAST.cc               |   60 
src/mem/slicc/ast/StatementAST.hh               |   88 -
src/mem/slicc/ast/StatementAST.py               |   34 
src/mem/slicc/ast/StatementListAST.cc           |   86 -
src/mem/slicc/ast/StatementListAST.hh           |   85 -
src/mem/slicc/ast/StatementListAST.py           |   46 
src/mem/slicc/ast/TransitionDeclAST.cc          |   89 -
src/mem/slicc/ast/TransitionDeclAST.hh          |   89 -
src/mem/slicc/ast/TransitionDeclAST.py          |   54 
src/mem/slicc/ast/TypeAST.cc                    |   67 
src/mem/slicc/ast/TypeAST.hh                    |   83 -
src/mem/slicc/ast/TypeAST.py                    |   53 
src/mem/slicc/ast/TypeDeclAST.cc                |   86 -
src/mem/slicc/ast/TypeDeclAST.hh                |   86 -
src/mem/slicc/ast/TypeDeclAST.py                |   62 
src/mem/slicc/ast/TypeFieldAST.cc               |   44 
src/mem/slicc/ast/TypeFieldAST.hh               |   83 -
src/mem/slicc/ast/TypeFieldAST.py               |   32 
src/mem/slicc/ast/TypeFieldEnumAST.cc           |   82 -
src/mem/slicc/ast/TypeFieldEnumAST.hh           |   86 -
src/mem/slicc/ast/TypeFieldEnumAST.py           |   59 
src/mem/slicc/ast/TypeFieldMemberAST.cc         |   84 -
src/mem/slicc/ast/TypeFieldMemberAST.hh         |   91 -
src/mem/slicc/ast/TypeFieldMemberAST.py         |   57 
src/mem/slicc/ast/TypeFieldMethodAST.cc         |   81 -
src/mem/slicc/ast/TypeFieldMethodAST.hh         |   87 -
src/mem/slicc/ast/TypeFieldMethodAST.py         |   50 
src/mem/slicc/ast/VarExprAST.cc                 |   76 -
src/mem/slicc/ast/VarExprAST.hh                 |   86 -
src/mem/slicc/ast/VarExprAST.py                 |   66 
src/mem/slicc/ast/__init__.py                   |   69 
src/mem/slicc/generate/dot.py                   |   42 
src/mem/slicc/generate/html.py                  |   80 +
src/mem/slicc/generate/tex.py                   |   71 
src/mem/slicc/generator/fileio.cc               |   66 
src/mem/slicc/generator/fileio.hh               |   46 
src/mem/slicc/generator/html_gen.cc             |  125 -
src/mem/slicc/generator/html_gen.hh             |   49 
src/mem/slicc/generator/mif_gen.cc              | 1718 -----------------------
src/mem/slicc/generator/mif_gen.hh              |   45 
src/mem/slicc/main.cc                           |  246 ---
src/mem/slicc/main.hh                           |   48 
src/mem/slicc/main.py                           |  108 +
src/mem/slicc/parser.py                         |  669 ++++++++
src/mem/slicc/parser/lexer.ll                   |  125 -
src/mem/slicc/parser/parser.py                  |  563 -------
src/mem/slicc/parser/parser.yy                  |  360 ----
src/mem/slicc/slicc_global.hh                   |  125 -
src/mem/slicc/symbols/Action.hh                 |   52 
src/mem/slicc/symbols/Action.py                 |   38 
src/mem/slicc/symbols/Event.hh                  |   45 
src/mem/slicc/symbols/Event.py                  |   34 
src/mem/slicc/symbols/Func.cc                   |  143 -
src/mem/slicc/symbols/Func.hh                   |   96 -
src/mem/slicc/symbols/Func.py                   |  107 +
src/mem/slicc/symbols/State.hh                  |   45 
src/mem/slicc/symbols/State.py                  |   34 
src/mem/slicc/symbols/StateMachine.cc           | 1534 --------------------
src/mem/slicc/symbols/StateMachine.hh           |  156 --
src/mem/slicc/symbols/StateMachine.py           | 1222 ++++++++++++++++
src/mem/slicc/symbols/Symbol.cc                 |   72 
src/mem/slicc/symbols/Symbol.hh                 |  100 -
src/mem/slicc/symbols/Symbol.py                 |   78 +
src/mem/slicc/symbols/SymbolTable.cc            |  327 ----
src/mem/slicc/symbols/SymbolTable.hh            |  121 -
src/mem/slicc/symbols/SymbolTable.py            |  218 ++
src/mem/slicc/symbols/Transition.cc             |  173 --
src/mem/slicc/symbols/Transition.hh             |  120 -
src/mem/slicc/symbols/Transition.py             |   61 
src/mem/slicc/symbols/Type.cc                   |  779 ----------
src/mem/slicc/symbols/Type.hh                   |  155 --
src/mem/slicc/symbols/Type.py                   |  650 ++++++++
src/mem/slicc/symbols/Var.cc                    |   57 
src/mem/slicc/symbols/Var.hh                    |   98 -
src/mem/slicc/symbols/Var.py                    |   50 
src/mem/slicc/symbols/__init__.py               |   38 
src/mem/slicc/util.py                           |   75 +
util/slicc                                      |   38 

diffs (truncated from 22490 to 300 lines):

diff -r 69714e675ee2 -r ef5fae93a3b2 src/mem/protocol/SConscript
--- a/src/mem/protocol/SConscript       Tue Sep 22 15:24:16 2009 -0700
+++ b/src/mem/protocol/SConscript       Tue Sep 22 18:12:39 2009 -0700
@@ -29,30 +29,56 @@
 # Authors: Nathan Binkert
 
 import os
-import re
-import string
 import sys
 
-from os.path import basename, dirname, exists, expanduser, isdir, isfile
-from os.path import join as joinpath
-
-import SCons
+from os.path import isdir, isfile, join as joinpath
 
 Import('*')
 
 if not env['RUBY']:
     Return()
 
-slicc_dir = Dir('../slicc')
 protocol_dir = Dir('.')
 html_dir = Dir('html')
+slicc_dir = Dir('../slicc')
+
+sys.path[1:1] = [ Dir('..').srcnode().abspath ]
+from slicc.parser import SLICC
+
+slicc_depends = []
+for root,dirs,files in os.walk(slicc_dir.srcnode().abspath):
+    for f in files:
+        if f.endswith('.py'):
+            slicc_depends.append(File(joinpath(root, f)))
 
 #
 # Use SLICC
 #
-def slicc_generator(target, source, env, for_signature):
-    slicc_bin = str(source[0])
-    protocol = source[1].get_contents()
+
+def slicc_scanner(node, env, path):
+    contents = node.get_contents()
+    files = [ line.strip() for line in contents.splitlines() ]
+    return files
+
+env.Append(SCANNERS=Scanner(function=slicc_scanner,skeys=['.slicc']))
+
+def slicc_emitter(target, source, env):
+    files = [s.srcnode().abspath for s in source[1:]]
+    slicc = SLICC(debug=True)
+    print "SLICC parsing..."
+    for name in slicc.load(files, verbose=True):
+        print "    %s" % name
+
+    hh,cc = slicc.files()
+    target.extend(sorted(hh))
+    target.extend(sorted(cc))
+    f = file('/tmp/asdf', 'w')
+    for t in target:
+        print >>f, t
+    return target, source
+
+def slicc_action(target, source, env):
+    protocol = source[0].get_contents()
     pdir = str(protocol_dir)
     hdir = str(html_dir)
 
@@ -61,31 +87,31 @@
     if not isdir(hdir):
         os.mkdir(hdir)
 
-    do_html = "html"
-    cmdline = [ slicc_bin, pdir, hdir, protocol, do_html ]
-    cmdline += [ str(s) for s in source[2:] ]
-    cmdline = ' '.join(cmdline)
-    return cmdline
+    slicc = SLICC(debug=True)
+    files = [str(s) for s in source[1:]]
+    slicc.load(files, verbose=False)
 
-slicc_builder = Builder(generator=slicc_generator)
+    print "SLICC Generator pass 1..."
+    slicc.findMachines()
+
+    print "SLICC Generator pass 2..."
+    slicc.generate()
+
+    print "SLICC writing C++ files..."
+    slicc.writeCodeFiles(pdir)
+
+    print "SLICC writing HTML files..."
+    slicc.writeHTMLFiles(hdir)
+
+slicc_builder = Builder(action=slicc_action, emitter=slicc_emitter)
 
 protocol = env['PROTOCOL']
 sources = [ protocol_dir.File("RubySlicc_interfaces.slicc"),
             protocol_dir.File("%s.slicc" % protocol) ]
 
-execfile(slicc_dir.File('parser/parser.py').srcnode().abspath)
+env.Append(BUILDERS={'SLICC' : slicc_builder})
+nodes = env.SLICC([], [ Value(protocol) ] + sources)
+env.Depends(nodes, slicc_depends)
 
-sm_files = read_slicc([s.srcnode().abspath for s in sources])
-sm_files = [ protocol_dir.File(f) for f in sm_files ]
-
-hh, cc = scan([s.srcnode().abspath for s in sm_files])
-hh = [ protocol_dir.File(f) for f in hh ]
-cc = [ protocol_dir.File(f) for f in cc ]
-
-slicc_bin = slicc_dir.File("slicc")
-
-env.Append(BUILDERS={'SLICC' : slicc_builder})
-env.SLICC(hh + cc, [ slicc_bin, Value(protocol) ] + sm_files)
-
-for f in cc:
+for f in sorted(s for s in nodes if str(s).endswith('.cc')):
     Source(f)
diff -r 69714e675ee2 -r ef5fae93a3b2 src/mem/slicc/SConscript
--- a/src/mem/slicc/SConscript  Tue Sep 22 15:24:16 2009 -0700
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-# -*- mode:python -*-
-
-# Copyright (c) 2009 The Hewlett-Packard Development Company
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met: redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer;
-# redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution;
-# neither the name of the copyright holders nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# Authors: Nathan Binkert
-
-import os
-import re
-import string
-import sys
-
-from os.path import basename, dirname, exists, expanduser, isdir, isfile
-from os.path import join as joinpath
-
-import SCons
-
-Import('*')
-
-if not env['RUBY']:
-    Return()
-
-common_dir = Dir('../gems_common')
-
-#
-# Build SLICC
-#
-slicc_env = env.Clone()
-slicc_env['CPPDEFINES'] = ''
-slicc_env['CPPPATH'] = Dir('../..')
-slicc_env.Append(CCFLAGS=['-g', '-O0'])
-slicc_env.Append(CPPDEFINES=['DEBUG', 'TRACING_ON=1'])
-slicc_env['LIBS'] = ''
-slicc_env['LIBPATH'] = ''
-all_slicc_sources = []
-def SliccSource(filename):
-    if filename.endswith('.ll') or filename.endswith('.yy'):
-        slicc_env.CXXFile(filename)
-        filename = filename[:-2] + "cc"
-    x = slicc_env.StaticObject(filename)
-    all_slicc_sources.append(x)
-    return x
-
-# BE CAREFUL WITH THE ORDER OF FILENAMES HERE.  SLICC IS VERY FRAGILE
-# BECAUSE IT VIOLATES ESTABLISHED RULES ABOUT HOW YOU'RE ALLOWED TO
-# CREATE STATIC OBJECTS.  (SLICC HAS DEPENDENCIES DURING STATIC OBJECT
-# CONSTRUCTION ACROSS FILES.  THAT'S A NO-NO.)  WITH THIS FILE ORDER,
-# WE GET LUCKY AND OBJECTS GET CONSTRUCTED IN THE RIGHT ORDER.
-SliccSource('parser/parser.yy')
-SliccSource('parser/lexer.ll')
-SliccSource('main.cc')
-SliccSource('symbols/Func.cc')
-SliccSource('symbols/StateMachine.cc')
-SliccSource('symbols/Symbol.cc')
-SliccSource('symbols/SymbolTable.cc')
-SliccSource('symbols/Transition.cc')
-SliccSource('symbols/Type.cc')
-SliccSource('symbols/Var.cc')
-SliccSource('generator/fileio.cc')
-SliccSource('generator/html_gen.cc')
-SliccSource('generator/mif_gen.cc')
-SliccSource('ast/AST.cc')
-SliccSource('ast/ActionDeclAST.cc')
-SliccSource('ast/AssignStatementAST.cc')
-SliccSource('ast/CheckAllocateStatementAST.cc')
-SliccSource('ast/CheckStopSlotsStatementAST.cc')
-SliccSource('ast/ChipComponentAccessAST.cc')
-SliccSource('ast/CopyHeadStatementAST.cc')
-SliccSource('ast/DeclAST.cc')
-SliccSource('ast/DeclListAST.cc')
-SliccSource('ast/EnqueueStatementAST.cc')
-SliccSource('ast/EnumDeclAST.cc')
-SliccSource('ast/EnumExprAST.cc')
-SliccSource('ast/ExprAST.cc')
-SliccSource('ast/ExprStatementAST.cc')
-SliccSource('ast/FormalParamAST.cc')
-SliccSource('ast/FuncCallExprAST.cc')
-SliccSource('ast/FuncDeclAST.cc')
-SliccSource('ast/IfStatementAST.cc')
-SliccSource('ast/InPortDeclAST.cc')
-SliccSource('ast/InfixOperatorExprAST.cc')
-SliccSource('ast/LiteralExprAST.cc')
-SliccSource('ast/Location.cc')
-SliccSource('ast/MachineAST.cc')
-SliccSource('ast/MemberExprAST.cc')
-SliccSource('ast/MethodCallExprAST.cc')
-SliccSource('ast/NewExprAST.cc')
-SliccSource('ast/ObjDeclAST.cc')
-SliccSource('ast/OutPortDeclAST.cc')
-SliccSource('ast/PairAST.cc')
-SliccSource('ast/PairListAST.cc')
-SliccSource('ast/PeekStatementAST.cc')
-SliccSource('ast/ReturnStatementAST.cc')
-SliccSource('ast/StatementAST.cc')
-SliccSource('ast/StatementListAST.cc')
-SliccSource('ast/TransitionDeclAST.cc')
-SliccSource('ast/TypeAST.cc')
-SliccSource('ast/TypeDeclAST.cc')
-SliccSource('ast/TypeFieldAST.cc')
-SliccSource('ast/TypeFieldEnumAST.cc')
-SliccSource('ast/TypeFieldMemberAST.cc')
-SliccSource('ast/TypeFieldMethodAST.cc')
-SliccSource('ast/VarExprAST.cc')
-
-slicc_bin = File('slicc')
-slicc_env.Program(slicc_bin, all_slicc_sources + [ common_dir.File('util.o') ])
diff -r 69714e675ee2 -r ef5fae93a3b2 src/mem/slicc/__init__.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/src/mem/slicc/__init__.py Tue Sep 22 18:12:39 2009 -0700
@@ -0,0 +1,25 @@
+# Copyright (c) 2009 The Hewlett-Packard Development Company
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met: redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer;
+# redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution;
+# neither the name of the copyright holders nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff -r 69714e675ee2 -r ef5fae93a3b2 src/mem/slicc/ast/AST.cc
--- a/src/mem/slicc/ast/AST.cc  Tue Sep 22 15:24:16 2009 -0700
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-
-/*
- * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met: redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer;
- * redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution;
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to