Comments (2)
In favor of spatial locality we should probably change the signature of the tokenizer to take std::string_view while we're at it.
Re2c by default checks for \0
as a sentinel, string_views obviously have no sentinels, but I think there is a simple workaround.
from logifix.
If we change the signature of the tokenizer to tokenize(std::string_view str) -> std::vector<std::pair<sjp::token,std::string_view>>
we should be able to just do:
- bool edit_scripts_are_equal(std::string o, std::string a, std::string b, std::string c) {
+ bool edit_scripts_are_equal(std::string_view o, std::string_view a, std::string_view b, std::string_view c) {
...
- auto diff = nway::diff(o, {a, b, c});
+ auto diff = nway::diff(tokenize(o), {tokenize(a), tokenize(b), tokenize(c)});
It is significant that sjp::token
is first in the pair since ==
on pairs compare the left member side first.
from logifix.
Related Issues (20)
- Improve detection for remove redundant parentheses
- Improve detection for simplify_code_using_map_computeifabsent
- Hide progress when using `--patch`
- Rule simplify_code_using_streams should check for variables that are not effectively final HOT 2
- Rule simplify_code_using_streams should check for calls to methods that may throw
- Rule simplify_code_using_method_references should be aware that some classes may be type variables
- Unable to selectively apply rules HOT 1
- Learn the code style from the project being analyzed
- Add flag --show-all-rules
- Add flag --verbose
- Add "explain" option in CLI
- Change the accept flag to use spaces
- Speed up edge case
- Disable rule fix_null_pointer_exceptions_by_changing_the_order_of_arguments_in_string_comparison by default
- Invalid patch for simplify_ternary_conditional_expressions
- Add automatic line breaks for stream chains
- Improve detection for simplify_inverted_boolean_expressions
- Add syntax support for Java 12 switch expressions
- Type error introduced by `Collections.emptyMap` HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from logifix.