pygments.rb-jruby 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +6 -0
- data/CHANGELOG.md +71 -0
- data/Gemfile +2 -0
- data/LICENSE +17 -0
- data/README.md +118 -0
- data/Rakefile +66 -0
- data/bench.rb +22 -0
- data/cache-lexers.rb +8 -0
- data/lexers +0 -0
- data/lib/pygments.rb +8 -0
- data/lib/pygments/lexer.rb +148 -0
- data/lib/pygments/mentos.py +351 -0
- data/lib/pygments/popen.rb +404 -0
- data/lib/pygments/version.rb +3 -0
- data/pygments.rb.gemspec +24 -0
- data/test/test_data.c +2581 -0
- data/test/test_data.py +514 -0
- data/test/test_data_generated +2582 -0
- data/test/test_pygments.rb +287 -0
- data/vendor/custom_lexers/github.py +565 -0
- data/vendor/pygments-main/AUTHORS +153 -0
- data/vendor/pygments-main/CHANGES +889 -0
- data/vendor/pygments-main/LICENSE +25 -0
- data/vendor/pygments-main/MANIFEST.in +6 -0
- data/vendor/pygments-main/Makefile +59 -0
- data/vendor/pygments-main/REVISION +1 -0
- data/vendor/pygments-main/TODO +15 -0
- data/vendor/pygments-main/docs/generate.py +472 -0
- data/vendor/pygments-main/docs/pygmentize.1 +94 -0
- data/vendor/pygments-main/docs/src/api.txt +270 -0
- data/vendor/pygments-main/docs/src/authors.txt +5 -0
- data/vendor/pygments-main/docs/src/changelog.txt +5 -0
- data/vendor/pygments-main/docs/src/cmdline.txt +147 -0
- data/vendor/pygments-main/docs/src/filterdevelopment.txt +70 -0
- data/vendor/pygments-main/docs/src/filters.txt +42 -0
- data/vendor/pygments-main/docs/src/formatterdevelopment.txt +169 -0
- data/vendor/pygments-main/docs/src/formatters.txt +48 -0
- data/vendor/pygments-main/docs/src/index.txt +69 -0
- data/vendor/pygments-main/docs/src/installation.txt +71 -0
- data/vendor/pygments-main/docs/src/integrate.txt +48 -0
- data/vendor/pygments-main/docs/src/java.txt +70 -0
- data/vendor/pygments-main/docs/src/lexerdevelopment.txt +603 -0
- data/vendor/pygments-main/docs/src/lexers.txt +67 -0
- data/vendor/pygments-main/docs/src/moinmoin.txt +39 -0
- data/vendor/pygments-main/docs/src/plugins.txt +93 -0
- data/vendor/pygments-main/docs/src/quickstart.txt +202 -0
- data/vendor/pygments-main/docs/src/rstdirective.txt +22 -0
- data/vendor/pygments-main/docs/src/styles.txt +143 -0
- data/vendor/pygments-main/docs/src/tokens.txt +349 -0
- data/vendor/pygments-main/docs/src/unicode.txt +49 -0
- data/vendor/pygments-main/external/autopygmentize +64 -0
- data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +144 -0
- data/vendor/pygments-main/external/markdown-processor.py +67 -0
- data/vendor/pygments-main/external/moin-parser.py +112 -0
- data/vendor/pygments-main/external/pygments.bashcomp +38 -0
- data/vendor/pygments-main/external/rst-directive-old.py +77 -0
- data/vendor/pygments-main/external/rst-directive.py +83 -0
- data/vendor/pygments-main/ez_setup.py +276 -0
- data/vendor/pygments-main/pygmentize +7 -0
- data/vendor/pygments-main/pygments/__init__.py +91 -0
- data/vendor/pygments-main/pygments/cmdline.py +441 -0
- data/vendor/pygments-main/pygments/console.py +74 -0
- data/vendor/pygments-main/pygments/filter.py +74 -0
- data/vendor/pygments-main/pygments/filters/__init__.py +356 -0
- data/vendor/pygments-main/pygments/formatter.py +95 -0
- data/vendor/pygments-main/pygments/formatters/__init__.py +68 -0
- data/vendor/pygments-main/pygments/formatters/_mapping.py +92 -0
- data/vendor/pygments-main/pygments/formatters/bbcode.py +109 -0
- data/vendor/pygments-main/pygments/formatters/html.py +821 -0
- data/vendor/pygments-main/pygments/formatters/img.py +553 -0
- data/vendor/pygments-main/pygments/formatters/latex.py +378 -0
- data/vendor/pygments-main/pygments/formatters/other.py +115 -0
- data/vendor/pygments-main/pygments/formatters/rtf.py +136 -0
- data/vendor/pygments-main/pygments/formatters/svg.py +154 -0
- data/vendor/pygments-main/pygments/formatters/terminal.py +112 -0
- data/vendor/pygments-main/pygments/formatters/terminal256.py +222 -0
- data/vendor/pygments-main/pygments/lexer.py +765 -0
- data/vendor/pygments-main/pygments/lexers/__init__.py +240 -0
- data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1645 -0
- data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +232 -0
- data/vendor/pygments-main/pygments/lexers/_lassobuiltins.py +5172 -0
- data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +249 -0
- data/vendor/pygments-main/pygments/lexers/_mapping.py +354 -0
- data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +562 -0
- data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +3787 -0
- data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +233 -0
- data/vendor/pygments-main/pygments/lexers/_robotframeworklexer.py +557 -0
- data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +40 -0
- data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +1072 -0
- data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +360 -0
- data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +13 -0
- data/vendor/pygments-main/pygments/lexers/agile.py +2290 -0
- data/vendor/pygments-main/pygments/lexers/asm.py +398 -0
- data/vendor/pygments-main/pygments/lexers/compiled.py +3723 -0
- data/vendor/pygments-main/pygments/lexers/dalvik.py +104 -0
- data/vendor/pygments-main/pygments/lexers/dotnet.py +671 -0
- data/vendor/pygments-main/pygments/lexers/foxpro.py +428 -0
- data/vendor/pygments-main/pygments/lexers/functional.py +2731 -0
- data/vendor/pygments-main/pygments/lexers/github.py +565 -0
- data/vendor/pygments-main/pygments/lexers/hdl.py +356 -0
- data/vendor/pygments-main/pygments/lexers/jvm.py +1112 -0
- data/vendor/pygments-main/pygments/lexers/math.py +1918 -0
- data/vendor/pygments-main/pygments/lexers/other.py +3778 -0
- data/vendor/pygments-main/pygments/lexers/parsers.py +778 -0
- data/vendor/pygments-main/pygments/lexers/shell.py +424 -0
- data/vendor/pygments-main/pygments/lexers/special.py +100 -0
- data/vendor/pygments-main/pygments/lexers/sql.py +559 -0
- data/vendor/pygments-main/pygments/lexers/templates.py +1742 -0
- data/vendor/pygments-main/pygments/lexers/text.py +1893 -0
- data/vendor/pygments-main/pygments/lexers/web.py +4045 -0
- data/vendor/pygments-main/pygments/modeline.py +40 -0
- data/vendor/pygments-main/pygments/plugin.py +74 -0
- data/vendor/pygments-main/pygments/scanner.py +104 -0
- data/vendor/pygments-main/pygments/style.py +117 -0
- data/vendor/pygments-main/pygments/styles/__init__.py +70 -0
- data/vendor/pygments-main/pygments/styles/autumn.py +65 -0
- data/vendor/pygments-main/pygments/styles/borland.py +51 -0
- data/vendor/pygments-main/pygments/styles/bw.py +49 -0
- data/vendor/pygments-main/pygments/styles/colorful.py +81 -0
- data/vendor/pygments-main/pygments/styles/default.py +73 -0
- data/vendor/pygments-main/pygments/styles/emacs.py +72 -0
- data/vendor/pygments-main/pygments/styles/friendly.py +72 -0
- data/vendor/pygments-main/pygments/styles/fruity.py +42 -0
- data/vendor/pygments-main/pygments/styles/manni.py +75 -0
- data/vendor/pygments-main/pygments/styles/monokai.py +106 -0
- data/vendor/pygments-main/pygments/styles/murphy.py +80 -0
- data/vendor/pygments-main/pygments/styles/native.py +65 -0
- data/vendor/pygments-main/pygments/styles/pastie.py +75 -0
- data/vendor/pygments-main/pygments/styles/perldoc.py +69 -0
- data/vendor/pygments-main/pygments/styles/rrt.py +33 -0
- data/vendor/pygments-main/pygments/styles/tango.py +141 -0
- data/vendor/pygments-main/pygments/styles/trac.py +63 -0
- data/vendor/pygments-main/pygments/styles/vim.py +63 -0
- data/vendor/pygments-main/pygments/styles/vs.py +38 -0
- data/vendor/pygments-main/pygments/token.py +195 -0
- data/vendor/pygments-main/pygments/unistring.py +140 -0
- data/vendor/pygments-main/pygments/util.py +277 -0
- data/vendor/pygments-main/scripts/check_sources.py +242 -0
- data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +32 -0
- data/vendor/pygments-main/scripts/epydoc.css +280 -0
- data/vendor/pygments-main/scripts/find_codetags.py +205 -0
- data/vendor/pygments-main/scripts/find_error.py +170 -0
- data/vendor/pygments-main/scripts/get_vimkw.py +43 -0
- data/vendor/pygments-main/scripts/pylintrc +301 -0
- data/vendor/pygments-main/scripts/reindent.py +291 -0
- data/vendor/pygments-main/scripts/vim2pygments.py +933 -0
- data/vendor/pygments-main/setup.cfg +7 -0
- data/vendor/pygments-main/setup.py +90 -0
- data/vendor/pygments-main/tests/dtds/HTML4-f.dtd +37 -0
- data/vendor/pygments-main/tests/dtds/HTML4-s.dtd +869 -0
- data/vendor/pygments-main/tests/dtds/HTML4.dcl +88 -0
- data/vendor/pygments-main/tests/dtds/HTML4.dtd +1092 -0
- data/vendor/pygments-main/tests/dtds/HTML4.soc +9 -0
- data/vendor/pygments-main/tests/dtds/HTMLlat1.ent +195 -0
- data/vendor/pygments-main/tests/dtds/HTMLspec.ent +77 -0
- data/vendor/pygments-main/tests/dtds/HTMLsym.ent +241 -0
- data/vendor/pygments-main/tests/examplefiles/ANTLRv3.g +608 -0
- data/vendor/pygments-main/tests/examplefiles/AcidStateAdvanced.hs +209 -0
- data/vendor/pygments-main/tests/examplefiles/AlternatingGroup.mu +102 -0
- data/vendor/pygments-main/tests/examplefiles/BOM.js +1 -0
- data/vendor/pygments-main/tests/examplefiles/CPDictionary.j +611 -0
- data/vendor/pygments-main/tests/examplefiles/Config.in.cache +1973 -0
- data/vendor/pygments-main/tests/examplefiles/Constants.mo +158 -0
- data/vendor/pygments-main/tests/examplefiles/DancingSudoku.lhs +411 -0
- data/vendor/pygments-main/tests/examplefiles/Deflate.fs +578 -0
- data/vendor/pygments-main/tests/examplefiles/Errors.scala +18 -0
- data/vendor/pygments-main/tests/examplefiles/File.hy +174 -0
- data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +66 -0
- data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +104 -0
- data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +671 -0
- data/vendor/pygments-main/tests/examplefiles/Intro.java +1660 -0
- data/vendor/pygments-main/tests/examplefiles/Makefile +1131 -0
- data/vendor/pygments-main/tests/examplefiles/Object.st +4394 -0
- data/vendor/pygments-main/tests/examplefiles/OrderedMap.hx +584 -0
- data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +23 -0
- data/vendor/pygments-main/tests/examplefiles/SmallCheck.hs +378 -0
- data/vendor/pygments-main/tests/examplefiles/Sorting.mod +470 -0
- data/vendor/pygments-main/tests/examplefiles/Sudoku.lhs +382 -0
- data/vendor/pygments-main/tests/examplefiles/addressbook.proto +30 -0
- data/vendor/pygments-main/tests/examplefiles/antlr_throws +1 -0
- data/vendor/pygments-main/tests/examplefiles/apache2.conf +393 -0
- data/vendor/pygments-main/tests/examplefiles/as3_test.as +143 -0
- data/vendor/pygments-main/tests/examplefiles/as3_test2.as +46 -0
- data/vendor/pygments-main/tests/examplefiles/as3_test3.as +3 -0
- data/vendor/pygments-main/tests/examplefiles/aspx-cs_example +27 -0
- data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +25 -0
- data/vendor/pygments-main/tests/examplefiles/badcase.java +2 -0
- data/vendor/pygments-main/tests/examplefiles/batchfile.bat +49 -0
- data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +308 -0
- data/vendor/pygments-main/tests/examplefiles/boot-9.scm +1557 -0
- data/vendor/pygments-main/tests/examplefiles/ca65_example +284 -0
- data/vendor/pygments-main/tests/examplefiles/cbmbas_example +9 -0
- data/vendor/pygments-main/tests/examplefiles/cells.ps +515 -0
- data/vendor/pygments-main/tests/examplefiles/ceval.c +2604 -0
- data/vendor/pygments-main/tests/examplefiles/cheetah_example.html +13 -0
- data/vendor/pygments-main/tests/examplefiles/classes.dylan +125 -0
- data/vendor/pygments-main/tests/examplefiles/condensed_ruby.rb +10 -0
- data/vendor/pygments-main/tests/examplefiles/coq_RelationClasses +447 -0
- data/vendor/pygments-main/tests/examplefiles/database.pytb +20 -0
- data/vendor/pygments-main/tests/examplefiles/de.MoinMoin.po +2461 -0
- data/vendor/pygments-main/tests/examplefiles/demo.ahk +181 -0
- data/vendor/pygments-main/tests/examplefiles/demo.cfm +38 -0
- data/vendor/pygments-main/tests/examplefiles/django_sample.html+django +68 -0
- data/vendor/pygments-main/tests/examplefiles/dwarf.cw +17 -0
- data/vendor/pygments-main/tests/examplefiles/erl_session +10 -0
- data/vendor/pygments-main/tests/examplefiles/escape_semicolon.clj +1 -0
- data/vendor/pygments-main/tests/examplefiles/evil_regex.js +48 -0
- data/vendor/pygments-main/tests/examplefiles/example.Rd +78 -0
- data/vendor/pygments-main/tests/examplefiles/example.bug +54 -0
- data/vendor/pygments-main/tests/examplefiles/example.c +2080 -0
- data/vendor/pygments-main/tests/examplefiles/example.ceylon +52 -0
- data/vendor/pygments-main/tests/examplefiles/example.clay +33 -0
- data/vendor/pygments-main/tests/examplefiles/example.cls +15 -0
- data/vendor/pygments-main/tests/examplefiles/example.cob +3556 -0
- data/vendor/pygments-main/tests/examplefiles/example.cpp +2363 -0
- data/vendor/pygments-main/tests/examplefiles/example.gs +106 -0
- data/vendor/pygments-main/tests/examplefiles/example.gst +7 -0
- data/vendor/pygments-main/tests/examplefiles/example.hx +142 -0
- data/vendor/pygments-main/tests/examplefiles/example.jag +48 -0
- data/vendor/pygments-main/tests/examplefiles/example.kt +47 -0
- data/vendor/pygments-main/tests/examplefiles/example.lagda +19 -0
- data/vendor/pygments-main/tests/examplefiles/example.lua +250 -0
- data/vendor/pygments-main/tests/examplefiles/example.monkey +152 -0
- data/vendor/pygments-main/tests/examplefiles/example.moo +26 -0
- data/vendor/pygments-main/tests/examplefiles/example.moon +629 -0
- data/vendor/pygments-main/tests/examplefiles/example.msc +43 -0
- data/vendor/pygments-main/tests/examplefiles/example.nim +1010 -0
- data/vendor/pygments-main/tests/examplefiles/example.ns2 +69 -0
- data/vendor/pygments-main/tests/examplefiles/example.p +34 -0
- data/vendor/pygments-main/tests/examplefiles/example.pas +2708 -0
- data/vendor/pygments-main/tests/examplefiles/example.prg +161 -0
- data/vendor/pygments-main/tests/examplefiles/example.rb +1852 -0
- data/vendor/pygments-main/tests/examplefiles/example.reg +19 -0
- data/vendor/pygments-main/tests/examplefiles/example.rexx +50 -0
- data/vendor/pygments-main/tests/examplefiles/example.rhtml +561 -0
- data/vendor/pygments-main/tests/examplefiles/example.rkt +95 -0
- data/vendor/pygments-main/tests/examplefiles/example.rpf +4 -0
- data/vendor/pygments-main/tests/examplefiles/example.sh-session +19 -0
- data/vendor/pygments-main/tests/examplefiles/example.shell-session +45 -0
- data/vendor/pygments-main/tests/examplefiles/example.sml +156 -0
- data/vendor/pygments-main/tests/examplefiles/example.snobol +15 -0
- data/vendor/pygments-main/tests/examplefiles/example.stan +108 -0
- data/vendor/pygments-main/tests/examplefiles/example.tea +34 -0
- data/vendor/pygments-main/tests/examplefiles/example.ts +28 -0
- data/vendor/pygments-main/tests/examplefiles/example.u +548 -0
- data/vendor/pygments-main/tests/examplefiles/example.weechatlog +9 -0
- data/vendor/pygments-main/tests/examplefiles/example.xhtml +376 -0
- data/vendor/pygments-main/tests/examplefiles/example.xtend +34 -0
- data/vendor/pygments-main/tests/examplefiles/example.yaml +302 -0
- data/vendor/pygments-main/tests/examplefiles/example2.aspx +29 -0
- data/vendor/pygments-main/tests/examplefiles/example2.msc +79 -0
- data/vendor/pygments-main/tests/examplefiles/example_elixir.ex +363 -0
- data/vendor/pygments-main/tests/examplefiles/example_file.fy +128 -0
- data/vendor/pygments-main/tests/examplefiles/firefox.mak +586 -0
- data/vendor/pygments-main/tests/examplefiles/flipflop.sv +19 -0
- data/vendor/pygments-main/tests/examplefiles/foo.sce +6 -0
- data/vendor/pygments-main/tests/examplefiles/format.ml +1213 -0
- data/vendor/pygments-main/tests/examplefiles/fucked_up.rb +77 -0
- data/vendor/pygments-main/tests/examplefiles/function.mu +1 -0
- data/vendor/pygments-main/tests/examplefiles/functional.rst +1472 -0
- data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +133 -0
- data/vendor/pygments-main/tests/examplefiles/genclass.clj +510 -0
- data/vendor/pygments-main/tests/examplefiles/genshi_example.xml+genshi +193 -0
- data/vendor/pygments-main/tests/examplefiles/genshitext_example.genshitext +33 -0
- data/vendor/pygments-main/tests/examplefiles/glsl.frag +7 -0
- data/vendor/pygments-main/tests/examplefiles/glsl.vert +13 -0
- data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +22 -0
- data/vendor/pygments-main/tests/examplefiles/hello.smali +40 -0
- data/vendor/pygments-main/tests/examplefiles/hello.sp +9 -0
- data/vendor/pygments-main/tests/examplefiles/html+php_faulty.php +1 -0
- data/vendor/pygments-main/tests/examplefiles/http_request_example +15 -0
- data/vendor/pygments-main/tests/examplefiles/http_response_example +29 -0
- data/vendor/pygments-main/tests/examplefiles/import.hs +4 -0
- data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +71 -0
- data/vendor/pygments-main/tests/examplefiles/intro.ik +24 -0
- data/vendor/pygments-main/tests/examplefiles/ints.php +10 -0
- data/vendor/pygments-main/tests/examplefiles/intsyn.fun +675 -0
- data/vendor/pygments-main/tests/examplefiles/intsyn.sig +286 -0
- data/vendor/pygments-main/tests/examplefiles/irb_heredoc +8 -0
- data/vendor/pygments-main/tests/examplefiles/irc.lsp +214 -0
- data/vendor/pygments-main/tests/examplefiles/java.properties +16 -0
- data/vendor/pygments-main/tests/examplefiles/jbst_example1.jbst +28 -0
- data/vendor/pygments-main/tests/examplefiles/jbst_example2.jbst +45 -0
- data/vendor/pygments-main/tests/examplefiles/jinjadesignerdoc.rst +713 -0
- data/vendor/pygments-main/tests/examplefiles/json.lasso +301 -0
- data/vendor/pygments-main/tests/examplefiles/json.lasso9 +213 -0
- data/vendor/pygments-main/tests/examplefiles/lighttpd_config.conf +13 -0
- data/vendor/pygments-main/tests/examplefiles/linecontinuation.py +47 -0
- data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +41 -0
- data/vendor/pygments-main/tests/examplefiles/logos_example.xm +28 -0
- data/vendor/pygments-main/tests/examplefiles/ltmain.sh +2849 -0
- data/vendor/pygments-main/tests/examplefiles/main.cmake +42 -0
- data/vendor/pygments-main/tests/examplefiles/markdown.lsp +679 -0
- data/vendor/pygments-main/tests/examplefiles/matlab_noreturn +3 -0
- data/vendor/pygments-main/tests/examplefiles/matlab_sample +30 -0
- data/vendor/pygments-main/tests/examplefiles/matlabsession_sample.txt +37 -0
- data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +455 -0
- data/vendor/pygments-main/tests/examplefiles/mg_sample.pro +73 -0
- data/vendor/pygments-main/tests/examplefiles/minehunt.qml +112 -0
- data/vendor/pygments-main/tests/examplefiles/minimal.ns2 +4 -0
- data/vendor/pygments-main/tests/examplefiles/moin_SyntaxReference.txt +340 -0
- data/vendor/pygments-main/tests/examplefiles/multiline_regexes.rb +38 -0
- data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +95 -0
- data/vendor/pygments-main/tests/examplefiles/nasm_aoutso.asm +96 -0
- data/vendor/pygments-main/tests/examplefiles/nasm_objexe.asm +30 -0
- data/vendor/pygments-main/tests/examplefiles/nemerle_sample.n +87 -0
- data/vendor/pygments-main/tests/examplefiles/nginx_nginx.conf +118 -0
- data/vendor/pygments-main/tests/examplefiles/numbers.c +12 -0
- data/vendor/pygments-main/tests/examplefiles/objc_example.m +32 -0
- data/vendor/pygments-main/tests/examplefiles/objc_example2.m +24 -0
- data/vendor/pygments-main/tests/examplefiles/perl_misc +62 -0
- data/vendor/pygments-main/tests/examplefiles/perl_perl5db +998 -0
- data/vendor/pygments-main/tests/examplefiles/perl_regex-delims +120 -0
- data/vendor/pygments-main/tests/examplefiles/perlfunc.1 +856 -0
- data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +163 -0
- data/vendor/pygments-main/tests/examplefiles/phpcomplete.vim +567 -0
- data/vendor/pygments-main/tests/examplefiles/pleac.in.rb +1223 -0
- data/vendor/pygments-main/tests/examplefiles/postgresql_test.txt +47 -0
- data/vendor/pygments-main/tests/examplefiles/pppoe.applescript +10 -0
- data/vendor/pygments-main/tests/examplefiles/psql_session.txt +122 -0
- data/vendor/pygments-main/tests/examplefiles/py3_test.txt +2 -0
- data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +4 -0
- data/vendor/pygments-main/tests/examplefiles/pycon_test.pycon +14 -0
- data/vendor/pygments-main/tests/examplefiles/pytb_test2.pytb +2 -0
- data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +4 -0
- data/vendor/pygments-main/tests/examplefiles/python25-bsd.mak +234 -0
- data/vendor/pygments-main/tests/examplefiles/qsort.prolog +13 -0
- data/vendor/pygments-main/tests/examplefiles/r-console-transcript.Rout +38 -0
- data/vendor/pygments-main/tests/examplefiles/ragel-cpp_rlscan +280 -0
- data/vendor/pygments-main/tests/examplefiles/ragel-cpp_snippet +2 -0
- data/vendor/pygments-main/tests/examplefiles/regex.js +22 -0
- data/vendor/pygments-main/tests/examplefiles/reversi.lsp +427 -0
- data/vendor/pygments-main/tests/examplefiles/robotframework.txt +39 -0
- data/vendor/pygments-main/tests/examplefiles/ruby_func_def.rb +11 -0
- data/vendor/pygments-main/tests/examplefiles/rust_example.rs +233 -0
- data/vendor/pygments-main/tests/examplefiles/scilab.sci +30 -0
- data/vendor/pygments-main/tests/examplefiles/session.dylan-console +9 -0
- data/vendor/pygments-main/tests/examplefiles/sibling.prolog +19 -0
- data/vendor/pygments-main/tests/examplefiles/simple.md +747 -0
- data/vendor/pygments-main/tests/examplefiles/smarty_example.html +209 -0
- data/vendor/pygments-main/tests/examplefiles/source.lgt +343 -0
- data/vendor/pygments-main/tests/examplefiles/sources.list +62 -0
- data/vendor/pygments-main/tests/examplefiles/sphere.pov +18 -0
- data/vendor/pygments-main/tests/examplefiles/sqlite3.sqlite3-console +27 -0
- data/vendor/pygments-main/tests/examplefiles/squid.conf +30 -0
- data/vendor/pygments-main/tests/examplefiles/string.jl +1031 -0
- data/vendor/pygments-main/tests/examplefiles/string_delimiters.d +21 -0
- data/vendor/pygments-main/tests/examplefiles/stripheredoc.sh +3 -0
- data/vendor/pygments-main/tests/examplefiles/swig_java.swg +1329 -0
- data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +225 -0
- data/vendor/pygments-main/tests/examplefiles/test.R +153 -0
- data/vendor/pygments-main/tests/examplefiles/test.adb +211 -0
- data/vendor/pygments-main/tests/examplefiles/test.agda +102 -0
- data/vendor/pygments-main/tests/examplefiles/test.asy +131 -0
- data/vendor/pygments-main/tests/examplefiles/test.awk +121 -0
- data/vendor/pygments-main/tests/examplefiles/test.bas +29 -0
- data/vendor/pygments-main/tests/examplefiles/test.bb +95 -0
- data/vendor/pygments-main/tests/examplefiles/test.bmx +145 -0
- data/vendor/pygments-main/tests/examplefiles/test.boo +39 -0
- data/vendor/pygments-main/tests/examplefiles/test.bro +250 -0
- data/vendor/pygments-main/tests/examplefiles/test.cs +374 -0
- data/vendor/pygments-main/tests/examplefiles/test.css +54 -0
- data/vendor/pygments-main/tests/examplefiles/test.cu +36 -0
- data/vendor/pygments-main/tests/examplefiles/test.d +135 -0
- data/vendor/pygments-main/tests/examplefiles/test.dart +23 -0
- data/vendor/pygments-main/tests/examplefiles/test.dtd +89 -0
- data/vendor/pygments-main/tests/examplefiles/test.ebnf +31 -0
- data/vendor/pygments-main/tests/examplefiles/test.ec +605 -0
- data/vendor/pygments-main/tests/examplefiles/test.ecl +58 -0
- data/vendor/pygments-main/tests/examplefiles/test.eh +315 -0
- data/vendor/pygments-main/tests/examplefiles/test.erl +169 -0
- data/vendor/pygments-main/tests/examplefiles/test.evoque +33 -0
- data/vendor/pygments-main/tests/examplefiles/test.fan +818 -0
- data/vendor/pygments-main/tests/examplefiles/test.flx +57 -0
- data/vendor/pygments-main/tests/examplefiles/test.gdc +13 -0
- data/vendor/pygments-main/tests/examplefiles/test.groovy +97 -0
- data/vendor/pygments-main/tests/examplefiles/test.html +339 -0
- data/vendor/pygments-main/tests/examplefiles/test.ini +10 -0
- data/vendor/pygments-main/tests/examplefiles/test.java +653 -0
- data/vendor/pygments-main/tests/examplefiles/test.jsp +24 -0
- data/vendor/pygments-main/tests/examplefiles/test.maql +45 -0
- data/vendor/pygments-main/tests/examplefiles/test.mod +374 -0
- data/vendor/pygments-main/tests/examplefiles/test.moo +51 -0
- data/vendor/pygments-main/tests/examplefiles/test.myt +166 -0
- data/vendor/pygments-main/tests/examplefiles/test.nim +93 -0
- data/vendor/pygments-main/tests/examplefiles/test.opa +10 -0
- data/vendor/pygments-main/tests/examplefiles/test.p6 +252 -0
- data/vendor/pygments-main/tests/examplefiles/test.pas +743 -0
- data/vendor/pygments-main/tests/examplefiles/test.php +505 -0
- data/vendor/pygments-main/tests/examplefiles/test.plot +333 -0
- data/vendor/pygments-main/tests/examplefiles/test.ps1 +108 -0
- data/vendor/pygments-main/tests/examplefiles/test.pypylog +1839 -0
- data/vendor/pygments-main/tests/examplefiles/test.r3 +94 -0
- data/vendor/pygments-main/tests/examplefiles/test.rb +177 -0
- data/vendor/pygments-main/tests/examplefiles/test.rhtml +43 -0
- data/vendor/pygments-main/tests/examplefiles/test.scaml +8 -0
- data/vendor/pygments-main/tests/examplefiles/test.ssp +12 -0
- data/vendor/pygments-main/tests/examplefiles/test.tcsh +830 -0
- data/vendor/pygments-main/tests/examplefiles/test.vb +407 -0
- data/vendor/pygments-main/tests/examplefiles/test.vhdl +161 -0
- data/vendor/pygments-main/tests/examplefiles/test.xqy +138 -0
- data/vendor/pygments-main/tests/examplefiles/test.xsl +23 -0
- data/vendor/pygments-main/tests/examplefiles/test2.pypylog +120 -0
- data/vendor/pygments-main/tests/examplefiles/truncated.pytb +15 -0
- data/vendor/pygments-main/tests/examplefiles/type.lisp +1218 -0
- data/vendor/pygments-main/tests/examplefiles/underscore.coffee +603 -0
- data/vendor/pygments-main/tests/examplefiles/unicode.applescript +5 -0
- data/vendor/pygments-main/tests/examplefiles/unicodedoc.py +11 -0
- data/vendor/pygments-main/tests/examplefiles/unix-io.lid +37 -0
- data/vendor/pygments-main/tests/examplefiles/webkit-transition.css +3 -0
- data/vendor/pygments-main/tests/examplefiles/while.pov +13 -0
- data/vendor/pygments-main/tests/examplefiles/wiki.factor +384 -0
- data/vendor/pygments-main/tests/examplefiles/xml_example +1897 -0
- data/vendor/pygments-main/tests/examplefiles/zmlrpc.f90 +798 -0
- data/vendor/pygments-main/tests/old_run.py +138 -0
- data/vendor/pygments-main/tests/run.py +49 -0
- data/vendor/pygments-main/tests/support.py +15 -0
- data/vendor/pygments-main/tests/support/tags +36 -0
- data/vendor/pygments-main/tests/test_basic_api.py +295 -0
- data/vendor/pygments-main/tests/test_clexer.py +31 -0
- data/vendor/pygments-main/tests/test_cmdline.py +105 -0
- data/vendor/pygments-main/tests/test_examplefiles.py +99 -0
- data/vendor/pygments-main/tests/test_html_formatter.py +178 -0
- data/vendor/pygments-main/tests/test_latex_formatter.py +55 -0
- data/vendor/pygments-main/tests/test_lexers_other.py +68 -0
- data/vendor/pygments-main/tests/test_perllexer.py +137 -0
- data/vendor/pygments-main/tests/test_regexlexer.py +47 -0
- data/vendor/pygments-main/tests/test_token.py +46 -0
- data/vendor/pygments-main/tests/test_using_api.py +40 -0
- data/vendor/pygments-main/tests/test_util.py +135 -0
- data/vendor/simplejson/.gitignore +10 -0
- data/vendor/simplejson/.travis.yml +5 -0
- data/vendor/simplejson/CHANGES.txt +291 -0
- data/vendor/simplejson/LICENSE.txt +19 -0
- data/vendor/simplejson/MANIFEST.in +5 -0
- data/vendor/simplejson/README.rst +19 -0
- data/vendor/simplejson/conf.py +179 -0
- data/vendor/simplejson/index.rst +628 -0
- data/vendor/simplejson/scripts/make_docs.py +18 -0
- data/vendor/simplejson/setup.py +104 -0
- data/vendor/simplejson/simplejson/__init__.py +510 -0
- data/vendor/simplejson/simplejson/_speedups.c +2745 -0
- data/vendor/simplejson/simplejson/decoder.py +425 -0
- data/vendor/simplejson/simplejson/encoder.py +567 -0
- data/vendor/simplejson/simplejson/ordered_dict.py +119 -0
- data/vendor/simplejson/simplejson/scanner.py +77 -0
- data/vendor/simplejson/simplejson/tests/__init__.py +67 -0
- data/vendor/simplejson/simplejson/tests/test_bigint_as_string.py +55 -0
- data/vendor/simplejson/simplejson/tests/test_check_circular.py +30 -0
- data/vendor/simplejson/simplejson/tests/test_decimal.py +66 -0
- data/vendor/simplejson/simplejson/tests/test_decode.py +83 -0
- data/vendor/simplejson/simplejson/tests/test_default.py +9 -0
- data/vendor/simplejson/simplejson/tests/test_dump.py +67 -0
- data/vendor/simplejson/simplejson/tests/test_encode_basestring_ascii.py +46 -0
- data/vendor/simplejson/simplejson/tests/test_encode_for_html.py +32 -0
- data/vendor/simplejson/simplejson/tests/test_errors.py +34 -0
- data/vendor/simplejson/simplejson/tests/test_fail.py +91 -0
- data/vendor/simplejson/simplejson/tests/test_float.py +19 -0
- data/vendor/simplejson/simplejson/tests/test_indent.py +86 -0
- data/vendor/simplejson/simplejson/tests/test_item_sort_key.py +20 -0
- data/vendor/simplejson/simplejson/tests/test_namedtuple.py +121 -0
- data/vendor/simplejson/simplejson/tests/test_pass1.py +76 -0
- data/vendor/simplejson/simplejson/tests/test_pass2.py +14 -0
- data/vendor/simplejson/simplejson/tests/test_pass3.py +20 -0
- data/vendor/simplejson/simplejson/tests/test_recursion.py +67 -0
- data/vendor/simplejson/simplejson/tests/test_scanstring.py +117 -0
- data/vendor/simplejson/simplejson/tests/test_separators.py +42 -0
- data/vendor/simplejson/simplejson/tests/test_speedups.py +20 -0
- data/vendor/simplejson/simplejson/tests/test_tuple.py +49 -0
- data/vendor/simplejson/simplejson/tests/test_unicode.py +109 -0
- data/vendor/simplejson/simplejson/tool.py +39 -0
- metadata +557 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
/*##############################################################################
|
2
|
+
|
3
|
+
Copyright (C) 2011 HPCC Systems.
|
4
|
+
|
5
|
+
All rights reserved. This program is free software: you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU Affero General Public License as
|
7
|
+
published by the Free Software Foundation, either version 3 of the
|
8
|
+
License, or (at your option) any later version.
|
9
|
+
|
10
|
+
This program is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU Affero General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU Affero General Public License
|
16
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
############################################################################## */
|
18
|
+
|
19
|
+
#option ('slidingJoins', true);
|
20
|
+
|
21
|
+
namesRecord :=
|
22
|
+
RECORD
|
23
|
+
string20 surname;
|
24
|
+
string10 forename;
|
25
|
+
integer2 age;
|
26
|
+
integer2 dadAge;
|
27
|
+
integer2 mumAge;
|
28
|
+
END;
|
29
|
+
|
30
|
+
namesRecord2 :=
|
31
|
+
record
|
32
|
+
string10 extra;
|
33
|
+
namesRecord;
|
34
|
+
end;
|
35
|
+
|
36
|
+
namesTable := dataset('x',namesRecord,FLAT);
|
37
|
+
namesTable2 := dataset('y',namesRecord2,FLAT);
|
38
|
+
|
39
|
+
integer2 aveAgeL(namesRecord l) := (l.dadAge+l.mumAge)/2;
|
40
|
+
integer2 aveAgeR(namesRecord2 r) := (r.dadAge+r.mumAge)/2;
|
41
|
+
|
42
|
+
// Standard join on a function of left and right
|
43
|
+
output(join(namesTable, namesTable2, aveAgeL(left) = aveAgeR(right)));
|
44
|
+
|
45
|
+
//Several simple examples of sliding join syntax
|
46
|
+
output(join(namesTable, namesTable2, left.age >= right.age - 10 and left.age <= right.age +10));
|
47
|
+
output(join(namesTable, namesTable2, left.age between right.age - 10 and right.age +10));
|
48
|
+
output(join(namesTable, namesTable2, left.age between right.age + 10 and right.age +30));
|
49
|
+
output(join(namesTable, namesTable2, left.age between (right.age + 20) - 10 and (right.age +20) + 10));
|
50
|
+
output(join(namesTable, namesTable2, aveAgeL(left) between aveAgeR(right)+10 and aveAgeR(right)+40));
|
51
|
+
|
52
|
+
//Same, but on strings. Also includes age to ensure sort is done by non-sliding before sliding.
|
53
|
+
output(join(namesTable, namesTable2, left.surname between right.surname[1..10]+'AAAAAAAAAA' and right.surname[1..10]+'ZZZZZZZZZZ' and left.age=right.age));
|
54
|
+
output(join(namesTable, namesTable2, left.surname between right.surname[1..10]+'AAAAAAAAAA' and right.surname[1..10]+'ZZZZZZZZZZ' and left.age=right.age,all));
|
55
|
+
|
56
|
+
//This should not generate a self join
|
57
|
+
output(join(namesTable, namesTable, left.age between right.age - 10 and right.age +10));
|
58
|
+
|
@@ -0,0 +1,315 @@
|
|
1
|
+
/* A Bison parser, made by GNU Bison 2.0. */
|
2
|
+
|
3
|
+
/* Skeleton parser for Yacc-like parsing with Bison,
|
4
|
+
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
5
|
+
|
6
|
+
This program is free software; you can redistribute it and/or modify
|
7
|
+
it under the terms of the GNU General Public License as published by
|
8
|
+
the Free Software Foundation; either version 2, or (at your option)
|
9
|
+
any later version.
|
10
|
+
|
11
|
+
This program is distributed in the hope that it will be useful,
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
+
GNU General Public License for more details.
|
15
|
+
|
16
|
+
You should have received a copy of the GNU General Public License
|
17
|
+
along with this program; if not, write to the Free Software
|
18
|
+
Foundation, Inc., 59 Temple Place - Suite 330,
|
19
|
+
Boston, MA 02111-1307, USA. */
|
20
|
+
|
21
|
+
/* As a special exception, when this file is copied by Bison into a
|
22
|
+
Bison output file, you may use that output file without restriction.
|
23
|
+
This special exception was added by the Free Software Foundation
|
24
|
+
in version 1.24 of Bison. */
|
25
|
+
|
26
|
+
/* Tokens. */
|
27
|
+
#ifndef YYTOKENTYPE
|
28
|
+
# define YYTOKENTYPE
|
29
|
+
/* Put the tokens into the symbol table, so that GDB and other debuggers
|
30
|
+
know about them. */
|
31
|
+
enum yytokentype {
|
32
|
+
IDENTIFIER = 258,
|
33
|
+
CONSTANT = 259,
|
34
|
+
STRING_LITERAL = 260,
|
35
|
+
SIZEOF = 261,
|
36
|
+
PTR_OP = 262,
|
37
|
+
INC_OP = 263,
|
38
|
+
DEC_OP = 264,
|
39
|
+
LEFT_OP = 265,
|
40
|
+
RIGHT_OP = 266,
|
41
|
+
LE_OP = 267,
|
42
|
+
GE_OP = 268,
|
43
|
+
EQ_OP = 269,
|
44
|
+
NE_OP = 270,
|
45
|
+
AND_OP = 271,
|
46
|
+
OR_OP = 272,
|
47
|
+
MUL_ASSIGN = 273,
|
48
|
+
DIV_ASSIGN = 274,
|
49
|
+
MOD_ASSIGN = 275,
|
50
|
+
ADD_ASSIGN = 276,
|
51
|
+
SUB_ASSIGN = 277,
|
52
|
+
LEFT_ASSIGN = 278,
|
53
|
+
RIGHT_ASSIGN = 279,
|
54
|
+
AND_ASSIGN = 280,
|
55
|
+
XOR_ASSIGN = 281,
|
56
|
+
OR_ASSIGN = 282,
|
57
|
+
TYPE_NAME = 283,
|
58
|
+
TYPEDEF = 284,
|
59
|
+
EXTERN = 285,
|
60
|
+
STATIC = 286,
|
61
|
+
AUTO = 287,
|
62
|
+
REGISTER = 288,
|
63
|
+
CHAR = 289,
|
64
|
+
SHORT = 290,
|
65
|
+
INT = 291,
|
66
|
+
UINT = 292,
|
67
|
+
INT64 = 293,
|
68
|
+
LONG = 294,
|
69
|
+
SIGNED = 295,
|
70
|
+
UNSIGNED = 296,
|
71
|
+
FLOAT = 297,
|
72
|
+
DOUBLE = 298,
|
73
|
+
CONST = 299,
|
74
|
+
VOLATILE = 300,
|
75
|
+
VOID = 301,
|
76
|
+
VALIST = 302,
|
77
|
+
STRUCT = 303,
|
78
|
+
UNION = 304,
|
79
|
+
ENUM = 305,
|
80
|
+
ELLIPSIS = 306,
|
81
|
+
CASE = 307,
|
82
|
+
DEFAULT = 308,
|
83
|
+
IF = 309,
|
84
|
+
SWITCH = 310,
|
85
|
+
WHILE = 311,
|
86
|
+
DO = 312,
|
87
|
+
FOR = 313,
|
88
|
+
GOTO = 314,
|
89
|
+
CONTINUE = 315,
|
90
|
+
BREAK = 316,
|
91
|
+
RETURN = 317,
|
92
|
+
IFX = 318,
|
93
|
+
ELSE = 319,
|
94
|
+
CLASS = 320,
|
95
|
+
THISCLASS = 321,
|
96
|
+
CLASS_NAME = 322,
|
97
|
+
PROPERTY = 323,
|
98
|
+
SETPROP = 324,
|
99
|
+
GETPROP = 325,
|
100
|
+
NEWOP = 326,
|
101
|
+
RENEW = 327,
|
102
|
+
DELETE = 328,
|
103
|
+
EXT_DECL = 329,
|
104
|
+
EXT_STORAGE = 330,
|
105
|
+
IMPORT = 331,
|
106
|
+
DEFINE = 332,
|
107
|
+
VIRTUAL = 333,
|
108
|
+
EXT_ATTRIB = 334,
|
109
|
+
PUBLIC = 335,
|
110
|
+
PRIVATE = 336,
|
111
|
+
TYPED_OBJECT = 337,
|
112
|
+
ANY_OBJECT = 338,
|
113
|
+
_INCREF = 339,
|
114
|
+
EXTENSION = 340,
|
115
|
+
ASM = 341,
|
116
|
+
TYPEOF = 342,
|
117
|
+
WATCH = 343,
|
118
|
+
STOPWATCHING = 344,
|
119
|
+
FIREWATCHERS = 345,
|
120
|
+
WATCHABLE = 346,
|
121
|
+
CLASS_DESIGNER = 347,
|
122
|
+
CLASS_NO_EXPANSION = 348,
|
123
|
+
CLASS_FIXED = 349,
|
124
|
+
ISPROPSET = 350,
|
125
|
+
CLASS_DEFAULT_PROPERTY = 351,
|
126
|
+
PROPERTY_CATEGORY = 352,
|
127
|
+
CLASS_DATA = 353,
|
128
|
+
CLASS_PROPERTY = 354,
|
129
|
+
SUBCLASS = 355,
|
130
|
+
NAMESPACE = 356,
|
131
|
+
NEW0OP = 357,
|
132
|
+
RENEW0 = 358,
|
133
|
+
VAARG = 359,
|
134
|
+
DBTABLE = 360,
|
135
|
+
DBFIELD = 361,
|
136
|
+
DBINDEX = 362,
|
137
|
+
DATABASE_OPEN = 363
|
138
|
+
};
|
139
|
+
#endif
|
140
|
+
#define IDENTIFIER 258
|
141
|
+
#define CONSTANT 259
|
142
|
+
#define STRING_LITERAL 260
|
143
|
+
#define SIZEOF 261
|
144
|
+
#define PTR_OP 262
|
145
|
+
#define INC_OP 263
|
146
|
+
#define DEC_OP 264
|
147
|
+
#define LEFT_OP 265
|
148
|
+
#define RIGHT_OP 266
|
149
|
+
#define LE_OP 267
|
150
|
+
#define GE_OP 268
|
151
|
+
#define EQ_OP 269
|
152
|
+
#define NE_OP 270
|
153
|
+
#define AND_OP 271
|
154
|
+
#define OR_OP 272
|
155
|
+
#define MUL_ASSIGN 273
|
156
|
+
#define DIV_ASSIGN 274
|
157
|
+
#define MOD_ASSIGN 275
|
158
|
+
#define ADD_ASSIGN 276
|
159
|
+
#define SUB_ASSIGN 277
|
160
|
+
#define LEFT_ASSIGN 278
|
161
|
+
#define RIGHT_ASSIGN 279
|
162
|
+
#define AND_ASSIGN 280
|
163
|
+
#define XOR_ASSIGN 281
|
164
|
+
#define OR_ASSIGN 282
|
165
|
+
#define TYPE_NAME 283
|
166
|
+
#define TYPEDEF 284
|
167
|
+
#define EXTERN 285
|
168
|
+
#define STATIC 286
|
169
|
+
#define AUTO 287
|
170
|
+
#define REGISTER 288
|
171
|
+
#define CHAR 289
|
172
|
+
#define SHORT 290
|
173
|
+
#define INT 291
|
174
|
+
#define UINT 292
|
175
|
+
#define INT64 293
|
176
|
+
#define LONG 294
|
177
|
+
#define SIGNED 295
|
178
|
+
#define UNSIGNED 296
|
179
|
+
#define FLOAT 297
|
180
|
+
#define DOUBLE 298
|
181
|
+
#define CONST 299
|
182
|
+
#define VOLATILE 300
|
183
|
+
#define VOID 301
|
184
|
+
#define VALIST 302
|
185
|
+
#define STRUCT 303
|
186
|
+
#define UNION 304
|
187
|
+
#define ENUM 305
|
188
|
+
#define ELLIPSIS 306
|
189
|
+
#define CASE 307
|
190
|
+
#define DEFAULT 308
|
191
|
+
#define IF 309
|
192
|
+
#define SWITCH 310
|
193
|
+
#define WHILE 311
|
194
|
+
#define DO 312
|
195
|
+
#define FOR 313
|
196
|
+
#define GOTO 314
|
197
|
+
#define CONTINUE 315
|
198
|
+
#define BREAK 316
|
199
|
+
#define RETURN 317
|
200
|
+
#define IFX 318
|
201
|
+
#define ELSE 319
|
202
|
+
#define CLASS 320
|
203
|
+
#define THISCLASS 321
|
204
|
+
#define CLASS_NAME 322
|
205
|
+
#define PROPERTY 323
|
206
|
+
#define SETPROP 324
|
207
|
+
#define GETPROP 325
|
208
|
+
#define NEWOP 326
|
209
|
+
#define RENEW 327
|
210
|
+
#define DELETE 328
|
211
|
+
#define EXT_DECL 329
|
212
|
+
#define EXT_STORAGE 330
|
213
|
+
#define IMPORT 331
|
214
|
+
#define DEFINE 332
|
215
|
+
#define VIRTUAL 333
|
216
|
+
#define EXT_ATTRIB 334
|
217
|
+
#define PUBLIC 335
|
218
|
+
#define PRIVATE 336
|
219
|
+
#define TYPED_OBJECT 337
|
220
|
+
#define ANY_OBJECT 338
|
221
|
+
#define _INCREF 339
|
222
|
+
#define EXTENSION 340
|
223
|
+
#define ASM 341
|
224
|
+
#define TYPEOF 342
|
225
|
+
#define WATCH 343
|
226
|
+
#define STOPWATCHING 344
|
227
|
+
#define FIREWATCHERS 345
|
228
|
+
#define WATCHABLE 346
|
229
|
+
#define CLASS_DESIGNER 347
|
230
|
+
#define CLASS_NO_EXPANSION 348
|
231
|
+
#define CLASS_FIXED 349
|
232
|
+
#define ISPROPSET 350
|
233
|
+
#define CLASS_DEFAULT_PROPERTY 351
|
234
|
+
#define PROPERTY_CATEGORY 352
|
235
|
+
#define CLASS_DATA 353
|
236
|
+
#define CLASS_PROPERTY 354
|
237
|
+
#define SUBCLASS 355
|
238
|
+
#define NAMESPACE 356
|
239
|
+
#define NEW0OP 357
|
240
|
+
#define RENEW0 358
|
241
|
+
#define VAARG 359
|
242
|
+
#define DBTABLE 360
|
243
|
+
#define DBFIELD 361
|
244
|
+
#define DBINDEX 362
|
245
|
+
#define DATABASE_OPEN 363
|
246
|
+
|
247
|
+
|
248
|
+
|
249
|
+
|
250
|
+
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
|
251
|
+
#line 42 "grammar.y"
|
252
|
+
typedef union YYSTYPE {
|
253
|
+
SpecifierType specifierType;
|
254
|
+
int i;
|
255
|
+
AccessMode declMode;
|
256
|
+
Identifier id;
|
257
|
+
Expression exp;
|
258
|
+
Specifier specifier;
|
259
|
+
OldList * list;
|
260
|
+
Enumerator enumerator;
|
261
|
+
Declarator declarator;
|
262
|
+
Pointer pointer;
|
263
|
+
Initializer initializer;
|
264
|
+
InitDeclarator initDeclarator;
|
265
|
+
TypeName typeName;
|
266
|
+
Declaration declaration;
|
267
|
+
Statement stmt;
|
268
|
+
FunctionDefinition function;
|
269
|
+
External external;
|
270
|
+
Context context;
|
271
|
+
AsmField asmField;
|
272
|
+
|
273
|
+
Instantiation instance;
|
274
|
+
MembersInit membersInit;
|
275
|
+
MemberInit memberInit;
|
276
|
+
ClassFunction classFunction;
|
277
|
+
ClassDefinition _class;
|
278
|
+
ClassDef classDef;
|
279
|
+
PropertyDef prop;
|
280
|
+
char * string;
|
281
|
+
Symbol symbol;
|
282
|
+
PropertyWatch propertyWatch;
|
283
|
+
TemplateParameter templateParameter;
|
284
|
+
TemplateArgument templateArgument;
|
285
|
+
TemplateDatatype templateDatatype;
|
286
|
+
|
287
|
+
DBTableEntry dbtableEntry;
|
288
|
+
DBIndexItem dbindexItem;
|
289
|
+
DBTableDef dbtableDef;
|
290
|
+
} YYSTYPE;
|
291
|
+
/* Line 1318 of yacc.c. */
|
292
|
+
#line 293 "grammar.eh"
|
293
|
+
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
294
|
+
# define YYSTYPE_IS_DECLARED 1
|
295
|
+
# define YYSTYPE_IS_TRIVIAL 1
|
296
|
+
#endif
|
297
|
+
|
298
|
+
extern YYSTYPE yylval;
|
299
|
+
|
300
|
+
#if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
|
301
|
+
typedef struct YYLTYPE
|
302
|
+
{
|
303
|
+
int first_line;
|
304
|
+
int first_column;
|
305
|
+
int last_line;
|
306
|
+
int last_column;
|
307
|
+
} YYLTYPE;
|
308
|
+
# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
|
309
|
+
# define YYLTYPE_IS_DECLARED 1
|
310
|
+
# define YYLTYPE_IS_TRIVIAL 1
|
311
|
+
#endif
|
312
|
+
|
313
|
+
extern YYLTYPE yylloc;
|
314
|
+
|
315
|
+
|
@@ -0,0 +1,169 @@
|
|
1
|
+
-module(test).
|
2
|
+
-export([listen/1,
|
3
|
+
handle_client/1,
|
4
|
+
maintain_clients/1,
|
5
|
+
start/1,
|
6
|
+
stop/0,
|
7
|
+
controller/1]).
|
8
|
+
|
9
|
+
-author("jerith").
|
10
|
+
|
11
|
+
-define(TCP_OPTIONS,[list, {packet, 0}, {active, false}, {reuseaddr, true}]).
|
12
|
+
|
13
|
+
-record(player, {name=none, socket, mode}).
|
14
|
+
|
15
|
+
%% To allow incoming connections, we need to listen on a TCP port.
|
16
|
+
%% This is also the entry point for our server as a whole, so it
|
17
|
+
%% starts the client_manager process and gives it a name so the rest
|
18
|
+
%% of the code can get to it easily.
|
19
|
+
|
20
|
+
listen(Port) ->
|
21
|
+
{ok, LSocket} = gen_tcp:listen(Port, ?TCP_OPTIONS),
|
22
|
+
register(client_manager, spawn(?MODULE, maintain_clients, [[]])),
|
23
|
+
do_accept(LSocket).
|
24
|
+
|
25
|
+
%% Accepting a connection gives us a connection socket with the
|
26
|
+
%% newly-connected client on the other end. Since we want to accept
|
27
|
+
%% more than one client, we spawn a new process for each and then wait
|
28
|
+
%% for another connection on our listening socket.
|
29
|
+
|
30
|
+
do_accept(LSocket) ->
|
31
|
+
case gen_tcp:accept(LSocket) of
|
32
|
+
{ok, Socket} ->
|
33
|
+
spawn(?MODULE, handle_client, [Socket]),
|
34
|
+
client_manager ! {connect, Socket};
|
35
|
+
{error, Reason} ->
|
36
|
+
io:format("Socket accept error: ~s~n", [Reason])
|
37
|
+
end,
|
38
|
+
do_accept(LSocket).
|
39
|
+
|
40
|
+
%% All the client-socket process needs to do is wait for data and
|
41
|
+
%% forward it to the client_manager process which decides what to do
|
42
|
+
%% with it. If the client disconnects, we let client_manager know and
|
43
|
+
%% then quietly go away.
|
44
|
+
|
45
|
+
handle_client(Socket) ->
|
46
|
+
case gen_tcp:recv(Socket, 0) of
|
47
|
+
{ok, Data} ->
|
48
|
+
client_manager ! {data, Socket, Data},
|
49
|
+
handle_client(Socket);
|
50
|
+
{error, closed} ->
|
51
|
+
client_manager ! {disconnect, Socket}
|
52
|
+
end.
|
53
|
+
|
54
|
+
%% This is the main loop of the client_manager process. It maintains
|
55
|
+
%% the list of "players" and calls the handler for client input.
|
56
|
+
|
57
|
+
maintain_clients(Players) ->
|
58
|
+
io:format("Players:~n", []),
|
59
|
+
lists:foreach(fun(P) -> io:format(">>> ~w~n", [P]) end, Players),
|
60
|
+
receive
|
61
|
+
{connect, Socket} ->
|
62
|
+
Player = #player{socket=Socket, mode=connect},
|
63
|
+
send_prompt(Player),
|
64
|
+
io:format("client connected: ~w~n", [Player]),
|
65
|
+
NewPlayers = [Player | Players];
|
66
|
+
{disconnect, Socket} ->
|
67
|
+
Player = find_player(Socket, Players),
|
68
|
+
io:format("client disconnected: ~w~n", [Player]),
|
69
|
+
NewPlayers = lists:delete(Player, Players);
|
70
|
+
{data, Socket, Data} ->
|
71
|
+
Player = find_player(Socket, Players),
|
72
|
+
NewPlayers = parse_data(Player, Players, Data),
|
73
|
+
NewPlayer = find_player(Socket, NewPlayers),
|
74
|
+
send_prompt(NewPlayer)
|
75
|
+
end,
|
76
|
+
maintain_clients(NewPlayers).
|
77
|
+
|
78
|
+
%% find_player is a utility function to get a player record associated
|
79
|
+
%% with a particular socket out of the player list.
|
80
|
+
|
81
|
+
find_player(Socket, Players) ->
|
82
|
+
{value, Player} = lists:keysearch(Socket, #player.socket, Players),
|
83
|
+
Player.
|
84
|
+
|
85
|
+
%% delete_player returns the player list without the given player. It
|
86
|
+
%% deletes the player from the list based on the socket rather than
|
87
|
+
%% the whole record because the list might hold a different version.
|
88
|
+
|
89
|
+
delete_player(Player, Players) ->
|
90
|
+
lists:keydelete(Player#player.socket, #player.socket, Players).
|
91
|
+
|
92
|
+
%% Sends an appropriate prompt to the player. Currently the only
|
93
|
+
%% prompt we send is the initial "Name: " when the player connects.
|
94
|
+
|
95
|
+
send_prompt(Player) ->
|
96
|
+
case Player#player.mode of
|
97
|
+
connect ->
|
98
|
+
gen_tcp:send(Player#player.socket, "Name: ");
|
99
|
+
active ->
|
100
|
+
ok
|
101
|
+
end.
|
102
|
+
|
103
|
+
%% Sends the given data to all players in active mode.
|
104
|
+
|
105
|
+
send_to_active(Prefix, Players, Data) ->
|
106
|
+
ActivePlayers = lists:filter(fun(P) -> P#player.mode == active end,
|
107
|
+
Players),
|
108
|
+
lists:foreach(fun(P) -> gen_tcp:send(P#player.socket, Prefix ++ Data) end,
|
109
|
+
ActivePlayers),
|
110
|
+
ok.
|
111
|
+
|
112
|
+
%% We don't really do much parsing, but that will probably change as
|
113
|
+
%% more features are added. Currently this handles naming the player
|
114
|
+
%% when he first connects and treats everything else as a message to
|
115
|
+
%% send.
|
116
|
+
|
117
|
+
parse_data(Player, Players, Data) ->
|
118
|
+
case Player#player.mode of
|
119
|
+
active ->
|
120
|
+
send_to_active(Player#player.name ++ ": ",
|
121
|
+
delete_player(Player, Players), Data),
|
122
|
+
Players;
|
123
|
+
connect ->
|
124
|
+
UPlayer = Player#player{name=bogostrip(Data), mode=active},
|
125
|
+
[UPlayer | delete_player(Player, Players)]
|
126
|
+
end.
|
127
|
+
|
128
|
+
%% Utility methods to clean up the name before we apply it. Called
|
129
|
+
%% bogostrip rather than strip because it returns the first continuous
|
130
|
+
%% block of non-matching characters rather stripping matching
|
131
|
+
%% characters off the front and back.
|
132
|
+
|
133
|
+
bogostrip(String) ->
|
134
|
+
bogostrip(String, "\r\n\t ").
|
135
|
+
|
136
|
+
bogostrip(String, Chars) ->
|
137
|
+
LStripped = string:substr(String, string:span(String, Chars)+1),
|
138
|
+
string:substr(LStripped, 1, string:cspan(LStripped, Chars)).
|
139
|
+
|
140
|
+
%% Here we have some extra code to test other bits of pygments' Erlang
|
141
|
+
%% lexer.
|
142
|
+
|
143
|
+
get_timestamp() ->
|
144
|
+
{{Year,Month,Day},{Hour,Min,Sec}} = erlang:universaltime(),
|
145
|
+
lists:flatten(io_lib:format(
|
146
|
+
"~4.10.0B-~2.10.0B-~2.10.0BT~2.10.0B:~2.10.0B:~2.10.0BZ",
|
147
|
+
[Year, Month, Day, Hour, Min, Sec])).
|
148
|
+
|
149
|
+
a_binary() ->
|
150
|
+
<< 100:16/integer, 16#7f >>.
|
151
|
+
|
152
|
+
a_list_comprehension() ->
|
153
|
+
[X*2 || X <- [1,2,3]].
|
154
|
+
|
155
|
+
map(Fun, [H|T]) ->
|
156
|
+
[Fun(H) | map(Fun, T)];
|
157
|
+
|
158
|
+
map(Fun, []) ->
|
159
|
+
[].
|
160
|
+
|
161
|
+
%% pmap, just because it's cool.
|
162
|
+
|
163
|
+
pmap(F, L) ->
|
164
|
+
Parent = self(),
|
165
|
+
[receive {Pid, Result} ->
|
166
|
+
Result
|
167
|
+
end || Pid <- [spawn(fun() ->
|
168
|
+
Parent ! {self(), F(X)}
|
169
|
+
end) || X <- L]].
|