Commit Graph

529 Commits

Author SHA1 Message Date
Pragmatic Software 0f00ceae95 Add -noheaders option to disable pre-included headers 2015-01-24 19:01:44 -08:00
Pragmatic Software a53b5473ae TenDRA: Show exit code return value from main() 2015-01-24 11:53:23 -08:00
Pragmatic Software c3dde27328 cjeopardy: If answer is integral, then respond "too big!" or "too small!" respectively 2015-01-24 08:05:47 -08:00
Pragmatic Software f31ce372cc Add language-specific comments for cmdline/output 2015-01-23 19:24:39 -08:00
Pragmatic Software 03d377000b Use language-specific commenting and syntax highlighter for pastes 2015-01-23 19:23:33 -08:00
Pragmatic Software 340cf07558 get_title.pl: remove trailing non-word character 2015-01-23 13:49:16 -08:00
Pragmatic Software 5f9dd151e2 nickometer.pl: update special cases 2015-01-23 13:47:08 -08:00
Pragmatic Software 3010cf1d8d compiler: Lowercase language 2015-01-23 13:46:18 -08:00
Pragmatic Software ac128312ac cjeopardy.txt: fix typo 2015-01-23 13:43:00 -08:00
Pragmatic Software 5d51fe9795 c2english.pl: show usage if no code, and add -Wno-implicit 2015-01-23 13:41:31 -08:00
Pragmatic Software 938561a2fb math.pl: add cbrt and add optional "the" to 42 question 2015-01-23 13:40:33 -08:00
Pragmatic Software 7ad726b383 Ensure $last_output is defined 2015-01-22 06:41:55 -08:00
Pragmatic Software 383c9f7813 Add bc language to compiler_vm 2015-01-21 17:43:51 -08:00
Pragmatic Software 361b53a64e Remove -Wa,-Wl flags from tendra cmdline 2015-01-21 17:43:39 -08:00
Pragmatic Software 36f2f91ba0 Add -fsanitize=undefined to gcc cmdlines 2015-01-21 17:43:13 -08:00
Pragmatic Software 48bd04ba31 Remove leading whitespace at beginning of diagnostics 2015-01-21 01:05:49 -08:00
Pragmatic Software d0a007853c Add sh, ksh and python3 languages 2015-01-20 10:13:09 -08:00
Pragmatic Software 540243764f Remove left-over uneeded $comma 2015-01-18 18:52:42 -08:00
Pragmatic Software a0f0249c8f Use more elegant Perlish method to print supported languages 2015-01-18 18:49:36 -08:00
Pragmatic Software a41906d323 Add python to compiler_vm languages 2015-01-18 18:36:57 -08:00
Pragmatic Software 5e2cd4fd22 Add bash to compiler_vm languages 2015-01-18 18:36:48 -08:00
Pragmatic Software 5f1f350046 Postprocess clang output for invalid %b format specifier 2015-01-18 05:43:16 -08:00
Pragmatic Software 76ead7c8cb Remove leading/trailing whitespace from nick/channel/lang/code 2015-01-18 05:42:28 -08:00
Pragmatic Software 8999e22db1 Ignore backup~ files when showing supported languages 2015-01-18 05:41:48 -08:00
Pragmatic Software ae957c0314 Lowercase language option 2015-01-17 07:00:47 -08:00
Pragmatic Software 728015672d Update local cc to use new compiler_vm_client.pl properly 2015-01-17 05:00:42 -08:00
Pragmatic Software 53f3a59ba1 Fix #inclue typo 2015-01-17 05:00:07 -08:00
Pragmatic Software fb286837bb Clean up compiler_vm directory a bit 2015-01-17 04:59:14 -08:00
Pragmatic Software d473c1650b Add options conditional on whether code is being pasted 2015-01-17 04:41:50 -08:00
Pragmatic Software 9dfe67c7b3 Add missing C89 includes 2015-01-17 04:40:00 -08:00
Pragmatic Software 0afaf9eb1b Show usage if no code given 2015-01-17 04:39:19 -08:00
Pragmatic Software c4c325085a Update clang options 2015-01-16 22:40:49 -08:00
Pragmatic Software e8fc3e965d Improve output filtering; show line-numbers in pastes 2015-01-16 22:24:54 -08:00
Pragmatic Software c40fc622ff Remove -fsanitize=address because it interfered with showing locals 2015-01-16 22:24:26 -08:00
Pragmatic Software 999ec05afc Show cmdline in pastes 2015-01-16 22:23:28 -08:00
Pragmatic Software b7fe220152 Add the Brainfuck language to compiler_vm 2015-01-16 17:56:28 -08:00
Pragmatic Software f552695393 Remove errant addition of backup file 2015-01-16 17:31:01 -08:00
Pragmatic Software 1a1f8f8e63 Correct handling of no-output 2015-01-16 17:30:09 -08:00
Pragmatic Software e0359cba32 Update TenDRA output postprocessing and default options 2015-01-16 17:29:41 -08:00
Pragmatic Software 925f2292e0 Correct handling of no-output 2015-01-16 17:28:38 -08:00
Pragmatic Software 16dce2c484 Add -info standard option to show cmdline information 2015-01-15 22:00:20 -08:00
Pragmatic Software 45e403b51f Add support for TenDRA compiler 2015-01-15 21:21:40 -08:00
Pragmatic Software 77e95a69ae Remove debug message 2015-01-15 21:21:20 -08:00
Pragmatic Software ac8dadb7f7 Show supported languages when invalid language given 2015-01-15 21:20:34 -08:00
Pragmatic Software b3081b9e9f Add compiler_vm support for clang
Also renamed c11.pm to _c_base.pm and set the C languages to inherit
from _c_base.pm instead of c11.pm.
2015-01-15 01:21:18 -08:00
Pragmatic Software bfd373814c Set compiler_watchdog.pl breakpoint one previous end of main
The clang compiler doesn't generate debug info for line number at the
closing } bracket terminating the main function.

Setting the breakpoint to the line immediately before that works for
gcc and clang.
2015-01-15 01:18:35 -08:00
Pragmatic Software b6b90ffa49 Significantly refactor compiler_vm module
The compiler_vm module has been significantly refactored into distinct
modules in order to better facilitate the addition of other languages
and compilers.

Currently there is support for C89, C99 and C11 using gcc, as well as
support for Perl.

This is an initial work-in-progress commit and there are still some minor
rough edges to polish up.
2015-01-14 21:51:17 -08:00
Pragmatic Software 6f3d5f3179 Allow case-insensitive section-matching in c99std/c11std 2015-01-06 15:35:40 -08:00
Pragmatic Software 4116afb86d Improve text search in c99std/c11std modules
Regular expression special characters are now escaped.
A trailing word-boundary is added to limit results to exact matches.
2014-12-29 23:24:54 -08:00
Pragmatic Software f9e2c3fb49 CJeopardy improvements
- Reduce hint wait-period from 60 seconds to 30 seconds
- Improve ignoring of common leading words in answers
- Correct several grammar mistakes/typos in questions
2014-12-29 23:19:32 -08:00
Pragmatic Software ba59edb040 Update paren.py module to improve parentheses verbosity 2014-12-20 19:44:40 +00:00
Pragmatic Software 79796f9710 CGrammar: Add istrue to static assertion expression; add ability to customize istrue truthiness result, add isfalse 2014-09-19 04:17:37 +00:00
Pragmatic Software 9d3c8c0285 CGrammar: Correct translation of sizeof in static assertions 2014-09-19 03:54:13 +00:00
Pragmatic Software da352f64d7 compiler_vm: Save command-line args and compiler flags to history; handle \b properly; other misc fixes 2014-09-11 13:37:41 +00:00
Pragmatic Software 2529d49aac CGrammar: Remove excessive "result of the expression" for parenthesized expressions 2014-09-09 07:20:42 +00:00
Pragmatic Software d40361a2bf Disallow ?, [, ], and ~~ in math.pl 2014-08-31 20:27:40 +00:00
Pragmatic Software fa2e3e4b5d Dump LWP error text if get_title.pl fails to fetch webpage 2014-08-31 20:26:24 +00:00
Pragmatic Software 838f232d68 Update C Jeopardy questions 2014-08-31 20:24:08 +00:00
Pragmatic Software a5ede3307e Update C facts module 2014-08-31 20:23:27 +00:00
Pragmatic Software 021401b538 C Jeopardy: Show correctness percentage when an answer is almost correct; recommend #cjeopardy channel when attempting to play via /msg 2014-08-31 20:21:09 +00:00
Pragmatic Software 749fda0ff3 Add HHGTTG easter egg to math.pl 2014-08-13 16:55:04 +00:00
Pragmatic Software c03a1288b6 CGrammar: Fix a|an substitution to an|a 2014-08-10 05:31:29 +00:00
Pragmatic Software 527e8490a3 CGrammar: Add offsetof 2014-08-10 05:03:37 +00:00
Pragmatic Software 74cffe091c C Jeopardy: More improvements to question database 2014-08-04 21:51:23 +00:00
Pragmatic Software 18d245cf10 C Jeopardy: Now says "Too slow!" if someone else also answers the correct answer within 15 seconds 2014-08-04 06:25:56 +00:00
Pragmatic Software 7d6e505d9f C Jeopardy: Clean up some typoes in the questions 2014-08-04 05:20:28 +00:00
Pragmatic Software bf9fe32682 C Jeopardy: Fix and clean-up some questions; fix substitution if "is" in answers 2014-08-04 00:35:41 +00:00
Pragmatic Software 4bf78bf978 C Jeopardy: Add tons of new questions; add support for supplemental tidbits; don't obscure dashes and underscors in hints 2014-08-03 22:20:54 +00:00
Pragmatic Software 55bdc5b930 Enforce CPU limit on expand_macro module 2014-08-03 22:02:36 +00:00
Pragmatic Software bc871bf4b2 C facts: Improve generation of C facts; update cfacts.txt with new facts 2014-08-02 16:01:51 +00:00
Pragmatic Software 9651847165 C Jeopardy: Correct showing of text/answer in "close enough" output due to recent change in handling of typographical case 2014-07-29 20:21:06 +00:00
Pragmatic Software 236b4c1d06 C Jeopardy: Add time-limit to hints 2014-07-29 20:07:48 +00:00
Pragmatic Software 88dc009ae7 C Jeopardy: Show correct typographical case for answers 2014-07-29 19:00:06 +00:00
Pragmatic Software d49700d1e1 C Jeopardy: Add hint command to slowly reveal answer when stumped 2014-07-29 17:30:12 +00:00
Pragmatic Software 2d0a490ed2 C Jeopardy: Fix minor inconsequential typo 2014-07-28 16:28:11 +00:00
Pragmatic Software 00fd1eee89 C Jeopardy: Update question data with additional acceptable answers 2014-07-28 15:56:13 +00:00
Pragmatic Software 9978f0c793 C Jeopardy: Add shuffler to preventing repeating questions 2014-07-28 15:25:54 +00:00
Pragmatic Software 1f8445d3bc C Jeopardy: Add time-limit to `cjeopardy` command. The current question will be shown if within this time-limit, otherwise a new question is shown 2014-07-28 07:45:05 +00:00
Pragmatic Software 4b2abf316f Add C Jeopardy module 2014-07-28 04:29:05 +00:00
Pragmatic Software cf63d9d46a compiler_vm: maintain original ordering of statements before, after and between functions instead of shoving everything to the top or into main 2014-07-23 21:27:09 +00:00
Pragmatic Software 491b4243ad More clean-up of C facts 2014-07-23 20:16:10 +00:00
Pragmatic Software d266e04284 More clean-up of C facts 2014-07-22 09:45:36 +00:00
Pragmatic Software 978c6b1f9d Fix typo in C facts: `simple` -> `simply` 2014-07-22 03:10:10 +00:00
Pragmatic Software c04896aa32 Fix up a couple more C facts misparses 2014-07-22 03:08:56 +00:00
Pragmatic Software d90c845a3b Clean-up some misparsed C facts 2014-07-22 02:14:44 +00:00
Pragmatic Software bcf76471c8 Add `cfact` module 2014-07-22 01:46:16 +00:00
Pragmatic Software da7a827c01 CGrammar: Add "result of the expression" to assignment expressions with spaces; remove extraneous trailing "Do nothing" 2014-07-21 21:27:22 +00:00
Pragmatic Software de375e63a1 CGrammar: Add _Generic; fix issue with compound-literals 2014-07-21 07:11:11 +00:00
Pragmatic Software fd89a4d0f4 CGrammar: Correct placement of "to" in conditional operator; restore "Begin block" and "End block" for nested compound statements 2014-07-18 03:52:16 +00:00
Pragmatic Software 3e47f6bc58 CGrammar: Emit "Do nothing" for empty case statements 2014-07-18 00:39:06 +00:00
Pragmatic Software 7f293450ef CGrammar: Fix for loop init and break statement 2014-07-17 19:04:09 +00:00
Pragmatic Software a59cc20128 CGrammar: Improve if/else in switch block, and improve "Fall through to next case" 2014-07-17 18:51:29 +00:00
Pragmatic Software af8787797a CGrammar: Improve translation of switch/case block 2014-07-17 18:36:09 +00:00
Pragmatic Software 46a0184791 CGrammar: Translate ' ' to "a space"; touch up translation of "the result of the expression the result of the function" to just "the result of the function" 2014-07-16 13:36:40 +00:00
Pragmatic Software ed73046d6b CGrammar: Limit "the result of the expression" to initializer expressions; improve grammar of bitwise assignments 2014-07-15 07:27:34 +00:00
Pragmatic Software 2a8d9152f5 CGrammar: Improve handling of "the result of the expression" 2014-07-13 06:36:55 +00:00
Pragmatic Software b2114ca03f CGrammar: Concatenate adjacent string literals 2014-07-11 11:30:05 +00:00
Pragmatic Software 69eca9a336 CGrammar: Change "Repeatedly never" to "Never repeatedly" 2014-07-10 13:13:57 +00:00
Pragmatic Software bea4480cf3 CGrammar: Fix handling 0 as conditional in for loop 2014-07-10 13:11:13 +00:00
Pragmatic Software 38b6edf656 CGrammar: Fix passing 0 as argument to function 2014-07-10 12:35:33 +00:00
Pragmatic Software 5f9fb29e7e CGrammar: Add some missing lowercasing specifiers 2014-07-10 12:24:29 +00:00
Pragmatic Software fab1986a3e CGrammar: Do not use "result of the expression" for single terms 2014-07-10 01:23:19 +00:00
Pragmatic Software 4520be1a2c CGrammar: Improve translation of initializer expressions such as `int i = 'a' > 'b';` 2014-07-09 09:19:49 +00:00
Pragmatic Software de3493f1ca CGrammar: Do not use "an" for items beginning with 'y'; improve translation of array of array indices 2014-07-08 05:24:21 +00:00
Pragmatic Software 029cc1ec7a CGrammar: Improve handling of space seperator in declaration initializers; fix issue with typedefs starting with a type specifier 2014-07-08 03:28:51 +00:00
Pragmatic Software 0c8078c6db CGrammar: Don't pluralize "member" for structs with a single function pointer 2014-07-08 01:15:51 +00:00
Pragmatic Software cc0957b060 CGrammar: Improve handling of declarations and initializers; improve translation of sizeof in statement context 2014-07-08 00:33:50 +00:00
Pragmatic Software 4a646f61c9 CGrammar: correct order of sizeof unary expressions 2014-07-07 10:24:15 +00:00
Pragmatic Software fbfc390b0c CGrammar: _Static_assert: use "unless" instead of negating the condition 2014-07-07 09:48:25 +00:00
Pragmatic Software 6295b0f503 CGrammar: Add _Atomic 2014-07-07 09:15:46 +00:00
Pragmatic Software d244af52d8 CGrammar: Improve _Static_assert translation 2014-07-07 08:39:06 +00:00
Pragmatic Software b470359071 CGrammar: Add _Static_assert 2014-07-07 08:27:10 +00:00
Pragmatic Software 9623086310 CGrammar: Add C11's _Alignof 2014-07-07 06:45:50 +00:00
Pragmatic Software 162e264e82 CGrammar: Remove left-over debugging statements 2014-07-06 04:49:10 +00:00
Pragmatic Software 8de131b871 CGrammar: Support C11's _Alignas; improve handling of comments in declaration specifiers 2014-07-06 04:47:07 +00:00
Pragmatic Software 520d1a2c9c CGrammar: Support flexible array struct members; fix up minor whitespace issue 2014-07-05 05:11:07 +00:00
Pragmatic Software 5b10d9769e CGrammar: Correct order of pointer abstract declarator -- now parses `int *[]` properly 2014-07-05 04:39:35 +00:00
Pragmatic Software c638b2c993 CGrammar: Fix shebangs to use env to detect perl location 2014-07-05 00:04:15 +00:00
Pragmatic Software e17c749ca7 CGrammar: Remove todo comments 2014-07-04 23:45:38 +00:00
Pragmatic Software 4583d85b50 CGrammar: Fix declarations without identifier 2014-07-04 23:41:54 +00:00
Pragmatic Software 9c5b307bef compiler_vm: Fix #include parsing logic against mismatched #include <foo" tokens 2014-07-04 13:04:27 +00:00
Pragmatic Software 9b93a33acf CGrammar improvements:
- show return type if _Noreturn function has type other than void
  - improve translation of function body
  - replace "Let `i` be an int" with "Declare `i` as an int"
2014-07-04 12:18:59 +00:00
Pragmatic Software 1f3533bf76 CGrammar: support inline and _Noreturn function specifiers 2014-07-04 11:09:58 +00:00
Pragmatic Software e1ed0bb6b9 CGrammar: replace `parameters` with `arguments` where appropriate 2014-07-04 08:20:01 +00:00
Pragmatic Software 8b626cc81e CGrammar: Wrap struct/union member declaration list with commas to disambiguate nested structs/unions 2014-07-04 02:58:55 +00:00
Pragmatic Software 8b72c03d34 CGrammar improvements:
- periods after "Call the function" and "Result of the function"
  - conditional operator in assignment expression now says "otherwise the value"
  - struct members now use "`identifer` as type" in declarations
  - fix chained designated initializers, e.g. s.i[0] = x and [0][0] = x
  - fix post/pre-incremented/decremented array elements
  - correct positioning of "is nonzero" in multidimensional array locations
2014-07-03 21:33:20 +00:00
Pragmatic Software df5fcbeaaa CGrammar: Add C11 use of type-qualifiers and static in array declarators in function parameter lists 2014-07-02 20:55:50 +00:00
Pragmatic Software d320d5e04a Fix compliment module 2014-07-02 20:54:17 +00:00
Pragmatic Software 8d38af0d69 CGrammar: Include preprocessor and comments in block items 2014-07-02 18:04:22 +00:00
Pragmatic Software 469e16ce28 CGrammar: Update compound-statements to C11's block-item-list mixing declarations and statements 2014-07-02 17:54:21 +00:00
Pragmatic Software 07f9ef6120 CGrammar: Remove "the list" from initializer lists; restore skipping of whitespace to struct/union/enum specifier 2014-07-02 16:54:02 +00:00
Pragmatic Software 7b42e9220e CGrammar: Fix case where `intx` could be parsed as a declaration instead of an identifier 2014-07-02 16:36:22 +00:00
Pragmatic Software 5eee740cd7 CGrammar: Add designated initializers 2014-07-02 01:32:13 +00:00
Pragmatic Software aca698374c CGrammar: Correct beautification regex for "the a" 2014-07-01 19:07:44 +00:00
Pragmatic Software 73967e0721 CGrammar: Progress on C11 features -- added compound-literals 2014-07-01 18:57:02 +00:00
Pragmatic Software 34def4f9ad CGrammar: Fix ordering of statement vs conditional/expression due to concatenated context 2014-07-01 17:03:07 +00:00
Pragmatic Software d6c20bc051 CGrammar: Put space after if/while/for keywords 2014-07-01 16:21:52 +00:00
Pragmatic Software b66e9502d7 CGrammar: Improve translation of structure postfix productions; concatenate contexts for multiple context 2014-07-01 16:16:40 +00:00
Pragmatic Software f4fdd9f221 CGrammar: Begin adding C11 features; add for-loop init declaration; add C11 keywords to reserved list 2014-06-29 21:13:18 +00:00
Pragmatic Software 5d9b45661d CGrammar: Correct handling of empty string literals during beautification 2014-06-28 14:49:59 +00:00
Pragmatic Software 086d5059b1 CGrammar: Move output beautification to c2eng.pl; white-out string literals before beautifying 2014-06-28 14:41:50 +00:00
Pragmatic Software 5730d56d54 CGrammar: Improvements to translation of comma operator 2014-06-28 10:18:28 +00:00
Pragmatic Software 99aea7fe63 CGrammar: Fix translation of multiple type specifiers, e.g. `long double` no longer becomes `double long` 2014-06-27 11:38:54 +00:00
Pragmatic Software 3a3827fe40 CGrammar: Correct context for translation of "post-incremented" vs "increment by one" 2014-06-27 11:25:45 +00:00
Pragmatic Software 26e8f1552c CGrammar: Improve translation of comma operator; remove redundant $arg{context}s 2014-06-26 07:35:11 +00:00
Pragmatic Software 682e6d2af3 CGrammar: Improve pluralization of arrays/pointers in declarations and improve translation of multiple identifiers in typedefs 2014-06-25 12:01:06 +00:00
Pragmatic Software 669e4e37c2 CGrammar: Fix typedefs 2014-06-25 10:15:12 +00:00
Pragmatic Software b38c6c91c1 CGrammar: Add more types; improve translation of comma operator; track identifiers 2014-06-25 08:19:56 +00:00
Pragmatic Software a232919dca CGrammar: Add more lower-case markers 2014-06-24 08:47:29 +00:00
Pragmatic Software a8320f52f9 CGrammar: Fix structure member access; add lower-case markers 2014-06-24 08:44:28 +00:00