Comments (3)
mm, this is presumably due to a weirdness in the cpp spec where backslash-newline is elided and reinserted after the line. We use JoinReader to elide the \ sequences. In order to fix this, it's likely that we will have to merge JoinReader into LexerSource.
Hrrrrnnnng. OK, I accept this as a good bug, but I'll have to think about how to fix it!
from jcpp.
What's more, if we have a string broken by backslashes into multi-line token, the location of the following tokens is wrong. Example:
4: char *string = "a \
5: b \
6: c";
The expected semicolon's location is (6, 8) but actual is (4, 31).
from jcpp.
You're quite right. I need to merge JoinReader into LexerSource, but how one knows whether to unget a \ is a little beyond me at this time in the morning. Suggestions taken, else I'll get there soon enough. :-) I appreciate the test cases.
from jcpp.
Related Issues (20)
- NullPointerException when #endif is missing HOT 2
- 0x is not a legal hex constant
- Handle framework includes properly HOT 3
- Absolute paths in includes HOT 11
- Empty variadic arguments HOT 1
- ``, ## VA_ARGS'' should remove the comma, if the variadic argument is empty. HOT 5
- Whitespace used in token pasting HOT 5
- pragma() should use source_token() not token()
- Re-check multiline comment whitespace preservation HOT 1
- Line number mismatch after pop_source() HOT 1
- Fix unit test suite on windows
- Any tutorials on this project? HOT 5
- Stripping line comments HOT 1
- Support extension of preprocessor HOT 1
- ClassCastException with character constants in expressions HOT 1
- Please publish module names HOT 2
- skip empty LN with # instead of filling LN HOT 1
- Unable to run Main class via Gradle
- Link to coverage report on README.md is broken
- Main doesn't return nonzero exit code on failure. 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 jcpp.