Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

m4 #92

Closed
wants to merge 216 commits into from
Closed

m4 #92

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
216 commits
Select commit Hold shift + click to select a range
978e5b0
m4: implement CLI parsing using clap
kellpossible Apr 18, 2024
b1c4f23
m4: Add README
kellpossible Apr 18, 2024
c5340f8
m4: Start working on lexer
kellpossible Apr 21, 2024
e5b1692
m4: Work in progress attempt to use nom
kellpossible Apr 22, 2024
0da19f3
m4: More work in progress on lexer
kellpossible Apr 23, 2024
ab112a8
m4: Fix some corner cases with parsing macros
kellpossible Apr 23, 2024
af1b195
m4: parse_quoted implementation
kellpossible Apr 24, 2024
e5d8745
m4: More work in progress on lexer and comments about multibyte chara…
kellpossible Apr 24, 2024
5fe7c07
m4: More documentation on the current progress
kellpossible Apr 24, 2024
f3ce62b
m4: Parse symbols and comments
kellpossible Apr 27, 2024
e91f809
m4: Add macro names input to parser
kellpossible Apr 28, 2024
49a757c
m4: Inject open and close quotes to parser
kellpossible Apr 28, 2024
89e5ee4
m4: add test fixtures from bsd version
kellpossible Apr 28, 2024
3fb8776
m4: Add recursion limit
kellpossible Apr 28, 2024
7e5a6c7
m4: Add evaluation order test
kellpossible Apr 28, 2024
3d773fa
m4: Move grouped arguments into ParseConfig
kellpossible Apr 28, 2024
624c196
m4: Refactor parse functions to be static members
kellpossible Apr 28, 2024
2babef8
m4: Improved text parsing logic
kellpossible Apr 30, 2024
b7d8118
m4: Work in progress comment parsing
kellpossible Apr 30, 2024
b0144ba
m4: Improved parse_comment
kellpossible May 1, 2024
d6c3cff
m4: Add test for lexer parsing symbols
kellpossible May 1, 2024
c0b0b1b
m4: Simplified lifetimes and started streaming parsing implementation
kellpossible May 2, 2024
a5f3ce0
m4: Work in progress streaming execution
kellpossible May 2, 2024
da7790d
m4: Change config to use owned data types to simplify the lifetime co…
kellpossible May 2, 2024
a8880fe
m4: Add assert to test
kellpossible May 2, 2024
4151e04
m4: Remove unecessary buffer
kellpossible May 2, 2024
9f86e81
m4: Add writer to argument for evaluate function
kellpossible May 2, 2024
a8719ee
m4: Work in progress streaming parsing
kellpossible May 2, 2024
726e372
m4: Work in progress streaming parsers, comment parser fixed
kellpossible May 2, 2024
5d46848
m4: Improved parse commend and parse quoted streaming
kellpossible May 2, 2024
f565a72
m4: More work in progress streaming parsing
kellpossible May 3, 2024
ec9a9ad
m4: Comment on why parsing marcro arguments streaming is broken, perhaps
kellpossible May 3, 2024
de238af
m4: Fixed macro arg parsing for streaming!
kellpossible May 4, 2024
ecc14ef
m4: Lexer now looking pretty much complete for streaming!
kellpossible May 5, 2024
e86f34b
m4: Fix some problems with process_streaming
kellpossible May 5, 2024
d62ec77
m4: Reformat code
kellpossible May 5, 2024
229e1a8
m4: Fix remaining streaming test
kellpossible May 5, 2024
06f38b5
m4: Explicit parsing of <newline>
kellpossible May 5, 2024
f77c75f
m4: Remove some TODO comments
kellpossible May 5, 2024
628873f
m4: Remove unneeded parse_symbols()
kellpossible May 5, 2024
6fbff29
m4: Add dnl support to parser for skipping input until <newline>
kellpossible May 5, 2024
f7d8cfc
m4: Remove unused test variable
kellpossible May 5, 2024
6b5ca22
m4: Converted CLI parsing back to derive macro, and work in progress …
kellpossible May 5, 2024
855d5f0
m4: Some more tests for lexing that cover case of macro missing closi…
kellpossible May 5, 2024
3473c7a
m4: Reformat code
kellpossible May 5, 2024
c20cb2b
m4: Work in progress fixing of parsing brackets inside macro argument…
kellpossible May 6, 2024
e6c4e89
m4: Improved lexing handling of dangling close brackets
kellpossible May 7, 2024
13db11e
m4: Remove unused code
kellpossible May 7, 2024
293545d
m4: Fix error with empty symbol should be complete
kellpossible May 7, 2024
6915f85
m4: Fix bug with text not being parsed on open bracket
kellpossible May 7, 2024
2978661
m4: Symbol recursion limit
kellpossible May 8, 2024
7ea4749
m4: Tests for dnl macro
kellpossible May 11, 2024
674aec0
m4: Add stderr output support
kellpossible May 13, 2024
8e8d3f5
m4: Work in progress improvements to macro mapping
kellpossible May 13, 2024
c83ab73
m4: Complete the refactor for macro parse configuration number of arg…
kellpossible May 15, 2024
de0f823
m4: Improved integration testing harness
kellpossible May 15, 2024
450f1e1
m4: Add more integration tests
kellpossible May 16, 2024
a6d34fd
m4: Add descriptive comments to integrationt tests
kellpossible May 16, 2024
8a287f5
m4: Switch integration tests to use tinyjson
kellpossible May 17, 2024
ff858b8
m4: Improved tests, and some refactoring for simplified macro support
kellpossible May 17, 2024
22748b9
m4: Improved test and more macro implementation
kellpossible May 17, 2024
5b02f8c
m4: Improved evaluation and improved test logging
kellpossible May 17, 2024
005a670
m4: Skip preceeding whitespace for macro arguments
kellpossible May 22, 2024
0e8d338
m4: Update snapshot test
kellpossible May 22, 2024
78afcf9
m4: Fix missing closing bracket for text inside macro arg
kellpossible May 22, 2024
0dd85b9
m4: Use different format for snapshots, no json now.
kellpossible May 22, 2024
0dfdd0f
m4: Unit test for define macro evaluation
kellpossible May 23, 2024
5c724d2
m4: Evaluate user defined macro args
kellpossible May 23, 2024
f5babc1
m4: New test for quoted remaining
kellpossible May 23, 2024
06dc83b
m4: Fix bug in parsing quoted input
kellpossible May 23, 2024
757b871
m4: Fix streaming bug in parsing empty quoted
kellpossible May 23, 2024
5dc0359
m4: include macro
kellpossible May 23, 2024
8bc55c8
m4: Started implementation of changequote and changecom
kellpossible May 23, 2024
b46e7f6
m4: More work in progress changequote and changecom macros
kellpossible May 23, 2024
f9d3f9c
m4: Improved integration tests for changequote
kellpossible May 24, 2024
85453f8
m4: Started implementation of changecom
kellpossible May 24, 2024
bc81597
m4: Fix bug in changecom
kellpossible May 24, 2024
f3e6d4b
m4: Fix bug in the parse_text() function with disabled comments
kellpossible May 24, 2024
dd7f146
m4: Some more unit tests for parsing text
kellpossible May 24, 2024
3bddc27
m4: Work in progress implementation of pushdef and popdef macros
kellpossible May 24, 2024
97847a7
m4: Implement sinclude macro
kellpossible May 24, 2024
8c2911b
m4: Ability to ignore integration tests
kellpossible May 24, 2024
458252b
m4: Improved define integrationt tests and fixed bug with define macr…
kellpossible May 27, 2024
9e7dc56
m4: WIP pushdef and popdef implementation
kellpossible May 27, 2024
743abb1
m4: Make the define macro undefined behaviour match that of GNU m4
kellpossible May 27, 2024
1d43836
m4: Properly support define list arguments
kellpossible May 27, 2024
67a259c
m4: WIP implementation of incr macro, trying to get forloop test to p…
kellpossible May 27, 2024
75593ce
m4: Fixed bug in build.rs generating integration tests
kellpossible May 28, 2024
b1daecb
m4: Updated define order tests
kellpossible May 28, 2024
b9fa9e3
m4: Improved define tests, work in progress Vec stack macro evaluation
kellpossible May 28, 2024
a9c5d37
m4: Updated define test
kellpossible May 28, 2024
9a5134e
m4: Work in progress reworking of evaluation
kellpossible May 28, 2024
2fb9b5c
m4: Revert change to test
kellpossible May 28, 2024
dd5b053
m4: Major progress on the evaluate() function I think, making it more…
kellpossible May 28, 2024
9678a5d
m4: Improved integration tests
kellpossible May 28, 2024
ea742d3
m4: Improved define test to include a macro name with underscore
kellpossible May 28, 2024
15ccbbc
m4: Improved incr error handling
kellpossible May 28, 2024
c5a4922
m4: Add some more tests for parsing macro names and symbols starting …
kellpossible May 28, 2024
545e615
m4: Fix bug with lexing text with underscores
kellpossible May 28, 2024
0e021fe
m4: Improved forloop tests
kellpossible May 28, 2024
f3a805d
m4: Add shift macro
kellpossible May 28, 2024
944d17f
m4: Work in progress reverse macro test
kellpossible May 29, 2024
863b91c
m4: More debug logging in tests and evaluate
kellpossible May 29, 2024
3cd3569
m4: Added recurse test
kellpossible May 29, 2024
3b87ab7
m4: Update test snapshot
kellpossible May 29, 2024
1cc317e
m4: Add more define tests, including one which shows the argument par…
kellpossible May 29, 2024
713d440
m4: Add another define test for argument expansion
kellpossible May 29, 2024
5725593
m4: Updated define test
kellpossible May 29, 2024
efb4e30
m4: Updated shift test
kellpossible May 29, 2024
37ea91c
m4: Some more tests about parsing comments inside macro definitions
kellpossible May 29, 2024
2328dac
m4: Update lexer snapshot
kellpossible May 29, 2024
2900961
m4: Add define unquoted number test
kellpossible May 29, 2024
de1c053
m4: Update define test
kellpossible May 29, 2024
e669f50
m4: Update define test
kellpossible May 29, 2024
456d7c6
m4: Add another test for stacked define containing number, failing to…
kellpossible May 29, 2024
52bec8a
m4: Updated tests
kellpossible May 29, 2024
05952f3
m4: Updated tests
kellpossible May 29, 2024
982abf9
m4: Comment in evaluate() function about why it's not working for
kellpossible May 29, 2024
880cf81
m4: Another comment
kellpossible May 29, 2024
8776405
m4: Another test for define
kellpossible May 29, 2024
73c544b
m4: Refactor evaluate into a trait and add an argument for unwrapping…
kellpossible May 30, 2024
02c47dc
m4: Now parsing simple recursive algorithms!
kellpossible May 30, 2024
870b41a
m4: Add another test case to reverse
kellpossible May 30, 2024
6ffc5cf
m4: Add define depth-first ordering test
kellpossible May 30, 2024
8c36b7c
m4: Debug logging and updated tests
kellpossible May 30, 2024
48358ef
m4: forloop tests now passing!!!
kellpossible May 30, 2024
d6f009c
m4: Add initial version of eval macro
kellpossible May 31, 2024
c1a98bc
m4: Add some additional operators for the eval macro
kellpossible Jun 3, 2024
a000b12
m4: Solve problem parsing >= and <= due to order of parsing operations
kellpossible Jun 4, 2024
683468f
m4: Add the remaining operators for eval macro
kellpossible Jun 4, 2024
a182efd
m4: Improved incr/decr macros
kellpossible Jun 4, 2024
abcfc71
m4: Add test for decr macro
kellpossible Jun 4, 2024
62ed990
m4: Add len macro
kellpossible Jun 4, 2024
3bc55f5
m4: Add index macro
kellpossible Jun 4, 2024
9c6d0c3
m4: Add ifdef macro
kellpossible Jun 4, 2024
a64b7f8
m4: Add failing test for space after macro invocation in macro defini…
kellpossible Jun 4, 2024
4e7bbc4
m4: Work in progress add expect_error argument for integrationt tests…
kellpossible Jun 4, 2024
89cd677
m4: Fixed bug in expect_error for integration tests
kellpossible Jun 4, 2024
6377563
m4: Fix remaining broken tests, cargo test now works again
kellpossible Jun 4, 2024
4d8518b
m4: Add translit macro
kellpossible Jun 4, 2024
13e131d
m4: Work in progress implementation of defn macro
kellpossible Jun 4, 2024
4ec4c4e
m4: Add some more defn integration tests
kellpossible Jun 5, 2024
5446267
m4: Refactor macro implementation to use enum static dispatch
kellpossible Jun 5, 2024
fd979fa
m4: Work in progress defn macro (seems to be some problem with dnl!)
kellpossible Jun 5, 2024
e6a6401
m4: Updated dnl test
kellpossible Jun 6, 2024
8c14ac6
m4: Fix bug in parsing with dnl macro after expansion
kellpossible Jun 6, 2024
02be7d0
m4: Add substr macro
kellpossible Jun 6, 2024
5ab7569
m4: Add integration test for dumpdef
kellpossible Jun 6, 2024
e4c29b9
m4: WIP dumpdef implementation
kellpossible Jun 6, 2024
ae74447
m4: Fix error in formatting for dumpdef
kellpossible Jun 6, 2024
b5fb880
m4: Started trying to integrate the bsd test suite there are a few is…
kellpossible Jun 6, 2024
38866ac
m4: Clear up some compiler warnings in evaluate module
kellpossible Jun 6, 2024
3b324c8
m4: Add m4exit and mkstemp macros, along with regex matching for inte…
kellpossible Jun 7, 2024
a46e0d4
m4: Refactor how error codes are propagated and WIP m4wrap macro impl
kellpossible Jun 7, 2024
aed5afe
m4: Add skip_update for integration tests, and add m4wrap builtin macro
kellpossible Jun 7, 2024
ee3d5bd
m4: Add syscmd and sysval
kellpossible Jun 7, 2024
df8f1ef
m4: WIP divert macro, small refactoring in evaluate.rs
kellpossible Jun 7, 2024
73bedf5
m4: Work in progress divert, divnum and undivert macros
kellpossible Jun 8, 2024
98152e6
m4: Finish implementing undivert macro
kellpossible Jun 9, 2024
bcfa3f5
m4: Remove a couple of TODO comments
kellpossible Jun 9, 2024
233311d
m4: Rename CLI arguments and add multiple files support there
kellpossible Jun 15, 2024
3b45b90
m4: Fix broken test
kellpossible Jun 15, 2024
56971e5
m4: Add notes about compatibility with autoconf
kellpossible Jun 21, 2024
4f732c5
m4: Add test for redefining inbuilt macros
kellpossible Jun 28, 2024
29a706d
m4: Updated documentation
kellpossible Jun 29, 2024
0f4eaf3
m4: Allow testing CLI arguments in integration tests
kellpossible Jun 30, 2024
538612b
m4: Support multiple input files
kellpossible Jun 30, 2024
ca4506b
m4: Fix problem with error not being printed
kellpossible Jun 30, 2024
53f77bd
m4: Add __file__ builtin macro
kellpossible Jun 30, 2024
0193ba8
m4: Add divert to negative number index for discard
kellpossible Jul 3, 2024
0b18526
m4: Update dnl test with failure from sendmail
kellpossible Jul 3, 2024
89554f4
m4: Disable RUST_LOG for .args tests
kellpossible Jul 3, 2024
64380fc
m4: Add new dnl_nested test
kellpossible Jul 3, 2024
cbdb320
m4: Updated dnl_nested test
kellpossible Jul 3, 2024
ad2494b
m4: Update divert_nested test to cover the problem faced with dnl
kellpossible Jul 4, 2024
fc08efa
m4: Some more notes about compatibility with sendmail and comparison to
kellpossible Jul 5, 2024
93123d5
m4: Add new test for nested bracket expansion in macro invocation
kellpossible Jul 5, 2024
efe1840
m4: More comparison to BSD implementation
kellpossible Jul 5, 2024
42d0b3e
m4: Comment about bug with diverting!
kellpossible Jul 5, 2024
b0083f7
m4: WIP re-implementation of divert
kellpossible Jul 5, 2024
9371cdc
m4: More WIP re-implementing divert
kellpossible Jul 5, 2024
1a37415
m4: Finish refactoring output for divert/undivert
kellpossible Jul 8, 2024
37eadc7
m4: Fix bug in final undivert_all
kellpossible Jul 8, 2024
f7dd8c4
m4: Leave comment about bug with parsing and evaluating nested syntax!
kellpossible Jul 8, 2024
d6d843d
m4: Refactor evaluate module, and some modifications to improve neste…
kellpossible Jul 9, 2024
1333002
m4: Fix EOF in quotes (should be error)
kellpossible Jul 9, 2024
43fbc9b
m4: Add another dnl_nested test case
kellpossible Jul 9, 2024
bdd4138
m4: Improved error context
kellpossible Jul 9, 2024
676a8b8
m4: A little more clear parsing complete sematics
kellpossible Jul 9, 2024
c5b3765
m4: Bug comment
kellpossible Jul 9, 2024
453a236
m4: Major refactor of evaluate loop to simplify it
kellpossible Jul 9, 2024
e8886d6
m4: Fix problem with nested dnl
kellpossible Jul 11, 2024
b7b0376
m4: Add maketemp macro
kellpossible Jul 11, 2024
095c3f2
m4: Add test for including a file with a divert
kellpossible Jul 11, 2024
18ffb17
m4: Updated include_divert test
kellpossible Jul 11, 2024
197fc00
m4: Refactored include macros and improved include_divert test
kellpossible Jul 11, 2024
325896f
m4: Remove unneeded logging
kellpossible Jul 11, 2024
797f71f
m4: Improved divert include test
kellpossible Jul 11, 2024
e04a55d
m4: Improved include_divert test
kellpossible Jul 11, 2024
52eb1fc
m4: Added ability to swap output for Output
kellpossible Jul 11, 2024
df8006a
m4: Notes about bug with diverts
kellpossible Jul 11, 2024
a755990
m4: Updated divert nested test
kellpossible Jul 11, 2024
278ac08
m4: Improved divert nested test
kellpossible Jul 11, 2024
b0508a3
m4: more notes on bug
kellpossible Jul 11, 2024
01bb99f
m4: Add new define_iterative test
kellpossible Jul 11, 2024
f879479
m4: Revert output change in evaluate()
kellpossible Jul 11, 2024
a2d1bbd
m4: More complex divert_nested test
kellpossible Jul 11, 2024
4274b36
m4: More divert_nested tests
kellpossible Jul 11, 2024
defb040
m4: Another define_iterative test
kellpossible Jul 11, 2024
49f32bf
m4: Define iterative tests
kellpossible Jul 11, 2024
1a53c62
m4: major refactor of evaluate loop into the streaming parser
kellpossible Jul 11, 2024
3f094e9
m4: Another big simplification and refactor of evaluation loop
kellpossible Jul 11, 2024
df43bad
m4: Clean up compiler warnings
kellpossible Jul 11, 2024
78b3dc4
m4: Remove unused dependency
kellpossible Jul 15, 2024
ad7684b
m4: Input stored in state in a stack
kellpossible Jul 15, 2024
45f02dc
m4: Add todo for replace_output removal
kellpossible Jul 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
265 changes: 252 additions & 13 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading