Overview
    1_Building_a_parse_tree
    2_A_universal_source_code/text_generation
    3_About_the_manual
Getting_started
    4_The_parse_tree
    5_Scanning_our_design_with_a_BNF-driven_script
    6_Parsing_our_design_with_a_BNF-driven_script
    7_Implementing_a_leader_script
    8_Generating_code_with_a_pattern_script
    9_Expanding_text_with_a_pattern_script
Discovering_more_with_an_example
    10_The_parse_tree
    11_Parsing_our_design
        11.1_The_parsing_scripts_that_read_tokens
        11.2_The_parsing_scripts_that_describe_a_BNF_syntax
    12_Decorating_the_parse_tree
    13_Generating_code
        13.1_C++_classes
        13.2_JAVA_classes
    14_Expanding_a_file
    15_Translating_a_file
        15.1_Design_of_a_solar_system
            15.1.1_Planet
            15.1.2_Earth
            15.1.3_SolarSystem
    16_The_debugger
    17_Scripts_coverage_and_time_consuming
    18_Translating_interpreted_scripts_to_C++_source_code
The_scripting_language
    19_Command_line_of_the_interpreter
    20_Syntax_generalities_and_statements
        20.1_preprocessor_directives
            20.1.1_Including_a_file
            20.1.2_Extending_the_language_via_a_package
            20.1.3_Changing_the_syntax_of_the_scripting_language
            20.1.4_Managing_changes_in_a_multi-language_generation
        20.2_Constant_literals
        20.3_Variables,_declaration_and_assignment
            20.3.1_Declaring_variables
            20.3.2_Scope
            20.3.3_Navigating_along_branches
            20.3.4_Assignments
        20.4_Expressions
            20.4.1_Presentation
            20.4.2_Arithmetic_expressions
        20.5_Common_statements
            20.5.1_The_'if'_statement
            20.5.2_The_'while'/'do'_statements
            20.5.3_The_'switch'_statement
            20.5.4_The_'foreach'_statement
            20.5.5_The_'forfile'_statement
            20.5.6_The_'select'_statement
            20.5.7_The_'try'/'catch'_statement
            20.5.8_The_'exit'_statement
        20.6_User-defined_functions
            20.6.1_Parameters_and_return_value
            20.6.2_The_'finally'_statement
            20.6.3_Unusual_function_declarations
            20.6.4_Template_functions
            20.6.5_Methods
            20.6.6_The_'readonly'_hook
            20.6.7_The_'write_file'_hook
            20.6.8_The_'step_into'_hook
            20.6.9_The_'step_out'_hook
        20.7_Statement's_modifiers
            20.7.1_Statement's_modifier_'delay'
            20.7.2_Statement_modifier_'quiet'
            20.7.3_Statement_modifier_'new_project'
            20.7.4_Statement_modifier_'file_as_standard_input'
            20.7.5_Statement_modifier_'string_as_standard_input'
            20.7.6_Statement_modifier_'parsed_file'
            20.7.7_Statement_modifier_'parsed_string'
            20.7.8_Statement_modifier_'generated_file'
            20.7.9_Statement_modifier_'generated_string'
            20.7.10_Statement_modifier_'appended_file'
    21_Common_functions_and_procedures
        21.1_acceptSocket
        21.2_add
        21.3_addGenerationTagsHandler
        21.4_addToDate
        21.5_appendFile
        21.6_autoexpand
        21.7_bytesToLong
        21.8_bytesToShort
        21.9_byteToChar
        21.10_canonizePath
        21.11_ceil
        21.12_changeDirectory
        21.13_changeFileTime
        21.14_charAt
        21.15_charToByte
        21.16_charToInt
        21.17_chmod
        21.18_clearVariable
        21.19_closeSocket
        21.20_compareDate
        21.21_compileToCpp
        21.22_completeDate
        21.23_completeLeftSpaces
        21.24_completeRightSpaces
        21.25_composeAdaLikeString
        21.26_composeCLikeString
        21.27_composeHTMLLikeString
        21.28_composeSQLLikeString
        21.29_computeMD5
        21.30_copyFile
        21.31_copyGenerableFile
        21.32_copySmartDirectory
        21.33_copySmartFile
        21.34_coreString
        21.35_countStringOccurences
        21.36_createDirectory
        21.37_createINETClientSocket
        21.38_createINETServerSocket
        21.39_createIterator
        21.40_createReverseIterator
        21.41_createVirtualFile
        21.42_createVirtualTemporaryFile
        21.43_cutString
        21.44_decodeURL
        21.45_decrement
        21.46_deleteFile
        21.47_deleteVirtualFile
        21.48_div
        21.49_duplicateIterator
        21.50_encodeURL
        21.51_endl
        21.52_endString
        21.53_environTable
        21.54_equal
        21.55_equalsIgnoreCase
        21.56_equalTrees
        21.57_error
        21.58_executeString
        21.59_executeStringQuiet
        21.60_existDirectory
        21.61_existEnv
        21.62_existFile
        21.63_existVariable
        21.64_existVirtualFile
        21.65_exp
        21.66_expand
        21.67_exploreDirectory
        21.68_extendExecutedScript
        21.69_extractGenerationHeader
        21.70_fileCreation
        21.71_fileLastAccess
        21.72_fileLastModification
        21.73_fileLines
        21.74_fileMode
        21.75_fileSize
        21.76_findElement
        21.77_findFirstChar
        21.78_findFirstSubstringIntoKeys
        21.79_findLastString
        21.80_findNextString
        21.81_findNextSubstringIntoKeys
        21.82_findString
        21.83_first
        21.84_floor
        21.85_formatDate
        21.86_generate
        21.87_generateString
        21.88_getArraySize
        21.89_getCommentBegin
        21.90_getCommentEnd
        21.91_getCurrentDirectory
        21.92_getEnv
        21.93_getGenerationHeader
        21.94_getHTTPRequest
        21.95_getIncludePath
        21.96_getLastDelay
        21.97_getNow
        21.98_getProperty
        21.99_getShortFilename
        21.100_getTextMode
        21.101_getVariableAttributes
        21.102_getVersion
        21.103_getWorkingPath
        21.104_getWriteMode
        21.105_hexaToDecimal
        21.106_hostToNetworkLong
        21.107_hostToNetworkShort
        21.108_increment
        21.109_indentFile
        21.110_index
        21.111_inf
        21.112_inputKey
        21.113_inputLine
        21.114_insertElementAt
        21.115_invertArray
        21.116_isEmpty
        21.117_isIdentifier
        21.118_isNegative
        21.119_isNumeric
        21.120_isPositive
        21.121_joinStrings
        21.122_key
        21.123_last
        21.124_leftString
        21.125_lengthString
        21.126_listAllGeneratedFiles
        21.127_loadBinaryFile
        21.128_loadFile
        21.129_loadProject
        21.130_loadVirtualFile
        21.131_log
        21.132_longToBytes
        21.133_midString
        21.134_mod
        21.135_mult
        21.136_networkLongToHost
        21.137_networkShortToHost
        21.138_next
        21.139_not
        21.140_octalToDecimal
        21.141_openLogFile
        21.142_parseAsBNF
        21.143_parseFree
        21.144_parseFreeQuiet
        21.145_parseStringAsBNF
        21.146_pathFromPackage
        21.147_postHTTPRequest
        21.148_pow
        21.149_prec
        21.150_produceHTML
        21.151_putEnv
        21.152_randomInteger
        21.153_randomSeed
        21.154_receiveBinaryFromSocket
        21.155_receiveFromSocket
        21.156_receiveTextFromSocket
        21.157_relativePath
        21.158_removeAllElements
        21.159_removeDirectory
        21.160_removeElement
        21.161_removeFirstElement
        21.162_removeGenerationTagsHandler
        21.163_removeLastElement
        21.164_removeRecursive
        21.165_removeVariable
        21.166_repeatString
        21.167_replaceString
        21.168_replaceTabulations
        21.169_resolveFilePath
        21.170_rightString
        21.171_rsubString
        21.172_saveBinaryToFile
        21.173_saveProject
        21.174_saveProjectTypes
        21.175_saveToFile
        21.176_scanDirectories
        21.177_scanFiles
        21.178_selectGenerationTagsHandler
        21.179_sendBinaryToSocket
        21.180_sendHTTPRequest
        21.181_sendTextToSocket
        21.182_setCommentBegin
        21.183_setCommentEnd
        21.184_setGenerationHeader
        21.185_setIncludePath
        21.186_setNow
        21.187_setProperty
        21.188_setTextMode
        21.189_setVersion
        21.190_setWorkingPath
        21.191_setWriteMode
        21.192_shortToBytes
        21.193_sleep
        21.194_slideNodeContent
        21.195_sortArray
        21.196_sqrt
        21.197_startString
        21.198_sub
        21.199_subString
        21.200_sup
        21.201_system
        21.202_toLowerString
        21.203_toUpperString
        21.204_traceEngine
        21.205_traceLine
        21.206_traceObject
        21.207_traceStack
        21.208_traceText
        21.209_translate
        21.210_translateString
        21.211_trim
        21.212_trimLeft
        21.213_trimRight
        21.214_truncateAfterString
        21.215_truncateBeforeString
        21.216_UUID
    22_The_extended_BNF_syntax_for_parsing
        22.1_BNF_tokens
        22.2_Preprocessing_of_a_clause
        22.3_Inserting_instructions_of_the_scripting_language
        22.4_Common_properties_of_BNF_tokens
        22.5_BNF_directives
        22.6_Declaring_a_clause
    23_Reading_tokens_for_parsing
        23.1_attachInputToSocket
        23.2_countInputCols
        23.3_countInputLines
        23.4_detachInputFromSocket
        23.5_getInputFilename
        23.6_getInputLocation
        23.7_getLastReadChars
        23.8_goBack
        23.9_lookAhead
        23.10_peekChar
        23.11_readAdaString
        23.12_readByte
        23.13_readBytes
        23.14_readCChar
        23.15_readChar
        23.16_readCharAsInt
        23.17_readChars
        23.18_readIdentifier
        23.19_readIfEqualTo
        23.20_readIfEqualToIdentifier
        23.21_readIfEqualToIgnoreCase
        23.22_readLine
        23.23_readNextText
        23.24_readNumber
        23.25_readPythonString
        23.26_readString
        23.27_readUptoJustOneChar
        23.28_readWord
        23.29_setInputLocation
        23.30_skipBlanks
        23.31_skipEmptyCpp
        23.32_skipEmptyCppExceptDoxygen
        23.33_skipEmptyHTML
        23.34_skipEmptyLaTeX
        23.35_skipSpaces
    24_Syntax_and_instructions_for_generating_source_code
        24.1_Preprocessor_directive:_coverage_recording
        24.2_Aspect-Oriented_Programming_and_template-based_scripts
        24.3_allFloatingLocations
        24.4_attachOutputToSocket
        24.5_countOutputCols
        24.6_countOutputLines
        24.7_decrementIndentLevel
        24.8_detachOutputFromSocket
        24.9_equalLastWrittenChars
        24.10_existFloatingLocation
        24.11_flushOutputToSocket
        24.12_getFloatingLocation
        24.13_getLastWrittenChars
        24.14_getMarkupKey
        24.15_getMarkupValue
        24.16_getOutputFilename
        24.17_getOutputLocation
        24.18_getProtectedArea
        24.19_getProtectedAreaKeys
        24.20_incrementIndentLevel
        24.21_indentText
        24.22_insertText
        24.23_insertTextOnce
        24.24_insertTextOnceToFloatingLocation
        24.25_insertTextToFloatingLocation
        24.26_newFloatingLocation
        24.27_overwritePortion
        24.28_populateProtectedArea
        24.29_remainingProtectedAreas
        24.30_removeFloatingLocation
        24.31_removeProtectedArea
        24.32_resizeOutputStream
        24.33_setFloatingLocation
        24.34_setOutputLocation
        24.35_setProtectedArea
        24.36_writeBytes
        24.37_writeText
        24.38_writeTextOnce
External_bindings
    25_The_JAVA_binding
    26_Developing_external_functions
        26.1_Doing_the_C++_binding_by_hand_(good_luck!)
        26.2_Generating_the_C++_binding_automatically
The_integrated_debugger
    27_Opening_the_debugger
    28_General_functionalities
    29_Commands_of_the_debugger
Quantifying_scripts
    30_Presentation
    31_Running_the_profiling_tool
    32_The_profiling_results
Integrating_source_code_generation_into_a_project
    33_Reusability
    34_The_interest_of_controlling_the_format_of_the_design
    35_Driving_the_implementation_with_CodeWorker
Tutorials