[Synopsis-changes] Synopsis/Synopsis/doc/Tutorial/examples/Paths Makefile.alt,NONE,1.1 synopsis.py,NONE,1.1

Stefan Seefeld stefan at synopsis.fresco.org
Tue Dec 16 04:58:12 UTC 2003


Update of /cvs/synopsis/Synopsis/doc/Tutorial/examples/Paths
In directory frida:/tmp/cvs-serv3046/examples/Paths

Added Files:
	Makefile.alt synopsis.py 
Log Message:
more on the Tutorial

--- NEW FILE: Makefile.alt ---
synopsis:= python synopsis.py

src	:= Path.h Polyline.h Bezier.h Nurbs.h
syn	:= $(patsubst %.h, %.syn, $(src))

all: Paths Paths.ps

Paths: Paths.syn
	$(synopsis) html --output=$@ $<

Paths.syn: $(syn)
	$(synopsis) link --output=$@ $^

Path.syn: Path.h
	$(synopsis) cxx_ssd_prev --output=$@ $<

Polyline.syn: Polyline.h
	$(synopsis) cxx_ss --output=$@ $<

Bezier.syn: Bezier.h
	$(synopsis) cxx_ssd --output=$@ $<

Nurbs.syn: Nurbs.h
	$(synopsis) cxx_javadoc --output=$@ $<

Paths.ps: Paths.syn
	$(synopsis) dot --title="class diagram" --format=ps \
          hide_operations=False hide_attributes=False \
          --output=$@ $<

clean:
	rm -rf *.syn

distclean: clean
	rm -rf Paths Paths.ps
--- NEW FILE: synopsis.py ---
from Synopsis.process import process
from Synopsis.Processor import Processor, Parameter, Composite
from Synopsis.Parsers import Cxx
from Synopsis.Processors import Linker
from Synopsis.Processors.Comments import SSComments
from Synopsis.Processors.Comments import SSDComments
from Synopsis.Processors.Comments import JavaComments
from Synopsis.Processors.Comments import Previous
from Synopsis.Processors.Comments import JavaTags
from Synopsis.Processors.Comments import Grouper1
from Synopsis.Formatters import HTML
from Synopsis.Formatters.HTML import Comments
from Synopsis.Formatters import Dot

cxx_ssd = Composite(Cxx.Parser(), SSDComments())

html = HTML.Formatter(comment_formatters = [Comments.QuoteHTML(),
                                            Comments.Section(),
                                            Comments.Javadoc()])

class Joker(Processor):
    
   parameter = Parameter(':-)', 'a friendly parameter')

   def process(self, ast, **keywords):
      # override default parameter values
      self.set_parameters(keywords)
      # merge in ast from 'input' parameter if given
      self.ast = self.merge_input(ast)

      print 'this processor is harmless...', self.parameter
      
      # write to output (if given) and return ast
      return self.output_and_return_ast()
        

process(cxx_ssd = cxx_ssd,
        cxx_ss = Composite(Cxx.Parser(), SSComments()),
        cxx_ssd_prev = Composite(Cxx.Parser(), SSDComments(), Previous()),
        cxx_javadoc = Composite(Cxx.Parser(), JavaComments(), JavaTags()),
        link = Linker(Grouper1()),
        html = html,
        dot = Dot.Formatter(),
        joker = Joker(parameter = '(-;'))





More information about the Synopsis-changes mailing list