K and R exercise 1-24

712 Views Asked by At

I am doing programs in The C Programming Language by Kernighan and Ritchie.

I am currently at exercise 1-24 that says:

Write a program to check a C Program for rudimentary syntax errors like unbalanced parentheses, brackets and braces. Don't forget about quotes, both single and double, escape sequences, and comments.

I have done everything well... But I am not getting how escape sequences would affect these parentheses, brackets and braces?

Why did they warned about escape sequences?

3

There are 3 best solutions below

2
Fred Foo On BEST ANSWER

In "\"", there are three double quote characters, but still it's a valid string literal. The middle " is escaped, meaning the outer two balance each other. Similarly, '\'' is a valid character literal.

Parentheses, brackets and braces are not affected, unless of course they appear in a string literal that you don't parse correctly because of an escaped quote.

0
simonc On

I'd guess they mean that you need to differentiate between " (which starts or ends a string) and \" (which is a " character, possibly inside a string)

This is important if you're to avoid reporting e.g. strlen("\")"); as having unbalanced parentheses.

0
Jerry Coffin On

The obvious possibility would be an escaped quote inside a string. If you don't take the escape into account, you might think the string ended there. For example: "\")\"". The ) is part of the string literal, so it doesn't count as a mis-matched parenthesis.