Importing textproc/ruby-treetop 1.4.8.

Languages can be split into two components, their *syntax* and their
*semantics*. It's your understanding of English syntax that tells you
the stream of words "Sleep furiously green ideas colorless" is not a
valid sentence. Semantics is deeper. Even if we rearrange the above
sentence to be "Colorless green ideas sleep furiously", which is
syntactically correct, it remains nonsensical on a semantic
level. With Treetop, you'll be dealing with languages that are much
simpler than English, but these basic concepts apply. Your programs
will need to address both the syntax and the semantics of the
languages they interpret.

Treetop equips you with powerful tools for each of these two aspects
of interpreter writing. You'll describe the syntax of your language
with a *parsing expression grammar*. From this description, Treetop
will generate a Ruby parser that transforms streams of characters
written into your language into *abstract syntax trees* representing
their structure. You'll then describe the semantics of your language
in Ruby by defining methods on the syntax trees the parser generates.
This commit is contained in:
taca 2010-09-12 01:53:43 +00:00
parent 003b98181d
commit 72dfacb9cd
4 changed files with 155 additions and 0 deletions

View file

@ -0,0 +1,18 @@
Languages can be split into two components, their *syntax* and their
*semantics*. It's your understanding of English syntax that tells you
the stream of words "Sleep furiously green ideas colorless" is not a
valid sentence. Semantics is deeper. Even if we rearrange the above
sentence to be "Colorless green ideas sleep furiously", which is
syntactically correct, it remains nonsensical on a semantic
level. With Treetop, you'll be dealing with languages that are much
simpler than English, but these basic concepts apply. Your programs
will need to address both the syntax and the semantics of the
languages they interpret.
Treetop equips you with powerful tools for each of these two aspects
of interpreter writing. You'll describe the syntax of your language
with a *parsing expression grammar*. From this description, Treetop
will generate a Ruby parser that transforms streams of characters
written into your language into *abstract syntax trees* representing
their structure. You'll then describe the semantics of your language
in Ruby by defining methods on the syntax trees the parser generates.

View file

@ -0,0 +1,16 @@
# $NetBSD: Makefile,v 1.1.1.1 2010/09/12 01:53:43 taca Exp $
DISTNAME= treetop-1.4.8
CATEGORIES= textproc
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://www.rubyonrails.org/
COMMENT= Ruby-based text parsing and interpretation DSL
LICENSE= mit
DEPENDS+= ${RUBY_PKGPREFIX}-polyglot>=0.3.1:../../devel/ruby-polyglot
CONFLICTS= ruby[1-9][0-9]-treetop-[0-9]*
.include "../../lang/ruby/gem.mk"
.include "../../mk/bsd.pkg.mk"

116
textproc/ruby-treetop/PLIST Normal file
View file

@ -0,0 +1,116 @@
@comment $NetBSD: PLIST,v 1.1.1.1 2010/09/12 01:53:43 taca Exp $
bin/tt
${GEM_HOME}/cache/${GEM_NAME}.gem
${GEM_LIBDIR}/LICENSE
${GEM_LIBDIR}/README.md
${GEM_LIBDIR}/Rakefile
${GEM_LIBDIR}/bin/tt
${GEM_LIBDIR}/doc/contributing_and_planned_features.markdown
${GEM_LIBDIR}/doc/grammar_composition.markdown
${GEM_LIBDIR}/doc/index.markdown
${GEM_LIBDIR}/doc/pitfalls_and_advanced_techniques.markdown
${GEM_LIBDIR}/doc/semantic_interpretation.markdown
${GEM_LIBDIR}/doc/site.rb
${GEM_LIBDIR}/doc/sitegen.rb
${GEM_LIBDIR}/doc/syntactic_recognition.markdown
${GEM_LIBDIR}/doc/using_in_ruby.markdown
${GEM_LIBDIR}/examples/lambda_calculus/arithmetic.rb
${GEM_LIBDIR}/examples/lambda_calculus/arithmetic.treetop
${GEM_LIBDIR}/examples/lambda_calculus/arithmetic_node_classes.rb
${GEM_LIBDIR}/examples/lambda_calculus/arithmetic_test.rb
${GEM_LIBDIR}/examples/lambda_calculus/lambda_calculus
${GEM_LIBDIR}/examples/lambda_calculus/lambda_calculus.rb
${GEM_LIBDIR}/examples/lambda_calculus/lambda_calculus.treetop
${GEM_LIBDIR}/examples/lambda_calculus/lambda_calculus_node_classes.rb
${GEM_LIBDIR}/examples/lambda_calculus/lambda_calculus_test.rb
${GEM_LIBDIR}/examples/lambda_calculus/test_helper.rb
${GEM_LIBDIR}/lib/treetop.rb
${GEM_LIBDIR}/lib/treetop/bootstrap_gen_1_metagrammar.rb
${GEM_LIBDIR}/lib/treetop/compiler.rb
${GEM_LIBDIR}/lib/treetop/compiler/grammar_compiler.rb
${GEM_LIBDIR}/lib/treetop/compiler/lexical_address_space.rb
${GEM_LIBDIR}/lib/treetop/compiler/metagrammar.rb
${GEM_LIBDIR}/lib/treetop/compiler/metagrammar.treetop
${GEM_LIBDIR}/lib/treetop/compiler/node_classes.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/anything_symbol.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/atomic_expression.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/character_class.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/choice.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/declaration_sequence.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/grammar.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/inline_module.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/nonterminal.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/optional.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/parenthesized_expression.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/parsing_expression.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/parsing_rule.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/predicate.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/predicate_block.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/repetition.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/sequence.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/terminal.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/transient_prefix.rb
${GEM_LIBDIR}/lib/treetop/compiler/node_classes/treetop_file.rb
${GEM_LIBDIR}/lib/treetop/compiler/ruby_builder.rb
${GEM_LIBDIR}/lib/treetop/polyglot.rb
${GEM_LIBDIR}/lib/treetop/ruby_extensions.rb
${GEM_LIBDIR}/lib/treetop/ruby_extensions/string.rb
${GEM_LIBDIR}/lib/treetop/runtime.rb
${GEM_LIBDIR}/lib/treetop/runtime/compiled_parser.rb
${GEM_LIBDIR}/lib/treetop/runtime/interval_skip_list.rb
${GEM_LIBDIR}/lib/treetop/runtime/interval_skip_list/head_node.rb
${GEM_LIBDIR}/lib/treetop/runtime/interval_skip_list/interval_skip_list.rb
${GEM_LIBDIR}/lib/treetop/runtime/interval_skip_list/node.rb
${GEM_LIBDIR}/lib/treetop/runtime/syntax_node.rb
${GEM_LIBDIR}/lib/treetop/runtime/terminal_parse_failure.rb
${GEM_LIBDIR}/lib/treetop/runtime/terminal_parse_failure_debug.rb
${GEM_LIBDIR}/lib/treetop/runtime/terminal_syntax_node.rb
${GEM_LIBDIR}/lib/treetop/version.rb
${GEM_LIBDIR}/spec/compiler/and_predicate_spec.rb
${GEM_LIBDIR}/spec/compiler/anything_symbol_spec.rb
${GEM_LIBDIR}/spec/compiler/character_class_spec.rb
${GEM_LIBDIR}/spec/compiler/choice_spec.rb
${GEM_LIBDIR}/spec/compiler/circular_compilation_spec.rb
${GEM_LIBDIR}/spec/compiler/failure_propagation_functional_spec.rb
${GEM_LIBDIR}/spec/compiler/grammar_compiler_spec.rb
${GEM_LIBDIR}/spec/compiler/grammar_spec.rb
${GEM_LIBDIR}/spec/compiler/multibyte_chars_spec.rb
${GEM_LIBDIR}/spec/compiler/nonterminal_symbol_spec.rb
${GEM_LIBDIR}/spec/compiler/not_predicate_spec.rb
${GEM_LIBDIR}/spec/compiler/occurrence_range_spec.rb
${GEM_LIBDIR}/spec/compiler/one_or_more_spec.rb
${GEM_LIBDIR}/spec/compiler/optional_spec.rb
${GEM_LIBDIR}/spec/compiler/parenthesized_expression_spec.rb
${GEM_LIBDIR}/spec/compiler/parsing_rule_spec.rb
${GEM_LIBDIR}/spec/compiler/repeated_subrule_spec.rb
${GEM_LIBDIR}/spec/compiler/semantic_predicate_spec.rb
${GEM_LIBDIR}/spec/compiler/sequence_spec.rb
${GEM_LIBDIR}/spec/compiler/terminal_spec.rb
${GEM_LIBDIR}/spec/compiler/terminal_symbol_spec.rb
${GEM_LIBDIR}/spec/compiler/test_grammar.treetop
${GEM_LIBDIR}/spec/compiler/test_grammar.tt
${GEM_LIBDIR}/spec/compiler/test_grammar_do.treetop
${GEM_LIBDIR}/spec/compiler/tt_compiler_spec.rb
${GEM_LIBDIR}/spec/compiler/zero_or_more_spec.rb
${GEM_LIBDIR}/spec/composition/a.treetop
${GEM_LIBDIR}/spec/composition/b.treetop
${GEM_LIBDIR}/spec/composition/c.treetop
${GEM_LIBDIR}/spec/composition/d.treetop
${GEM_LIBDIR}/spec/composition/f.treetop
${GEM_LIBDIR}/spec/composition/grammar_composition_spec.rb
${GEM_LIBDIR}/spec/composition/subfolder/e_includes_c.treetop
${GEM_LIBDIR}/spec/ruby_extensions/string_spec.rb
${GEM_LIBDIR}/spec/runtime/compiled_parser_spec.rb
${GEM_LIBDIR}/spec/runtime/interval_skip_list/delete_spec.rb
${GEM_LIBDIR}/spec/runtime/interval_skip_list/expire_range_spec.rb
${GEM_LIBDIR}/spec/runtime/interval_skip_list/insert_and_delete_node.rb
${GEM_LIBDIR}/spec/runtime/interval_skip_list/insert_spec.rb
${GEM_LIBDIR}/spec/runtime/interval_skip_list/interval_skip_list_spec.graffle
${GEM_LIBDIR}/spec/runtime/interval_skip_list/interval_skip_list_spec.rb
${GEM_LIBDIR}/spec/runtime/interval_skip_list/palindromic_fixture.rb
${GEM_LIBDIR}/spec/runtime/interval_skip_list/palindromic_fixture_spec.rb
${GEM_LIBDIR}/spec/runtime/interval_skip_list/spec_helper.rb
${GEM_LIBDIR}/spec/runtime/syntax_node_spec.rb
${GEM_LIBDIR}/spec/spec_helper.rb
${GEM_LIBDIR}/treetop.gemspec
${GEM_HOME}/specifications/${GEM_NAME}.gemspec

View file

@ -0,0 +1,5 @@
$NetBSD: distinfo,v 1.1.1.1 2010/09/12 01:53:43 taca Exp $
SHA1 (treetop-1.4.8.gem) = b107eca5e06736db93a92536fde33bdbfdbc01a5
RMD160 (treetop-1.4.8.gem) = 2760c0b944ab4676922a6c4ce09698ed2243cb17
Size (treetop-1.4.8.gem) = 69632 bytes