summaryrefslogtreecommitdiffstats
path: root/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/documentation/threads.txt
diff options
context:
space:
mode:
Diffstat (limited to 'debian/uncrustify-trinity/uncrustify-trinity-0.78.0/documentation/threads.txt')
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.78.0/documentation/threads.txt111
1 files changed, 0 insertions, 111 deletions
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/documentation/threads.txt b/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/documentation/threads.txt
deleted file mode 100644
index f6ed4edd..00000000
--- a/debian/uncrustify-trinity/uncrustify-trinity-0.78.0/documentation/threads.txt
+++ /dev/null
@@ -1,111 +0,0 @@
-
-Notes on how to deal with the wicked corner case that is C/C++
-preprocessor #if magic. None of this is actually implemented.
-
-Languages not affected:
- - D
- - Java
- - ECMA (Java Script)
-
-Langauges affected:
- - C
- - C++
- - C#
- - Vala
- - Pawn
- - Objective C/C++
-
-
-Threads of code are created for functions that navigate the tokens.
-There is the master list of the raw tokens parsed out.
-
-There is at least one thread, which, in the absense of any #if statements, is
-the same as the raw token list.
-
-In the threads, a BARRIER is placed where ever code cannot move past.
-This represents and #if or #else statement.
-Normally, the barriers are skipped when navigating code. Only when removing a
-newline does the code need to check for a barrier.
-
-For #if statements without an #else, there is an implicit #else added that contains
-nothing.
-
-// example 1
-a
-#if X
-b
-#endif
-c
-
-Thread
- #if #endif
- V V
-0 - a -+- b -+- c
- | |
-1 +-----+ <- empty else path (ie, for '#if 0')
-
-Max depth = 2
-
-
-// example 2
-a
-#if X
-b
-#else
-c
-#endif
-d
- #if #endif
- V V
-0 - a -+- b -+- d
- | |
-1 +- c -+ <- else path
-
-Max depth = 2
-
-
-// example 3
-a
-#if X
-b
-#elif Y
-c
-#elif Z
-d
-#else
-e
-#endif
-f
-#if A
-g
-#endif
-h
- #if X #endif #if A
- V V V
-0 - a -+- b -+- f -----------+- g -+- h
- | | | |
-1 +- c -+ <- elif Y +-----+ <- empty else
- | |
-2 +- d -+ <- elif Z
- | |
-3 +- e -+ <- else
-
-Max depth = 4
-
-The detection routines need to be executed once for each thread, up to the maximum
-thread depth. Note that the typical maximum thread depth is going to be 2-3.
-
-0 - a - b - f - g - h
-1 - a - c - f ----- h
-2 - a - d - f - g - h
-3 - a - e - f - g - h
-
-The general rule is that if the current thread exceed the max, thread 0 is used.
-
-Identification is the primary use for the threads.
-The secondary use is indentation. The indentation of each token at each thread
-level is recorded.
-The maximum indentation for the token is used, assuming the thread is without
-error. ('#if 0' commented out code that is bad may not be handled.)
-
-I won't know if this will work for sure until I try it.