#!/bin/bash SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) TOP_DIR="$SCRIPT_DIR/../../.." OUTPUT="$SCRIPT_DIR/rost.dict" echo > "$OUTPUT" echo "# Syntax core keywords" >> "$OUTPUT" cat "$TOP_DIR/src/analysis/scan/grammar.y" | \ grep '%token.*".*' | grep -o -E '"[^"]+"' | sort >> "$OUTPUT" echo >> "$OUTPUT" echo "# Modifiers" >> "$OUTPUT" "$TOP_DIR/src/rost" --dump-modifiers | sort | sed -e 's/^/"/' -e 's/$/"/' >> "$OUTPUT" echo >> "$OUTPUT" echo "# Namespace" >> "$OUTPUT" "$TOP_DIR/src/rost" --dump-namespaces | sort | sed -e 's/^/"/' -e 's/$/"/' >> "$OUTPUT" echo >> "$OUTPUT" echo "# Identifiers" >> "$OUTPUT" for t in "$" "#" "@" "!" "~" ; do echo "\"${t}a0\"" >> "$OUTPUT" echo "\"${t}a1\"" >> "$OUTPUT" echo "\"${t}b\"" >> "$OUTPUT" echo "\"${t}c\"" >> "$OUTPUT" echo "\"${t}a*\"" >> "$OUTPUT" echo "\"${t}*\"" >> "$OUTPUT" echo "\"${t}\"" >> "$OUTPUT" done echo >> "$OUTPUT" echo "# Numbers" >> "$OUTPUT" for i in $( seq 0 32 ); do echo -$(( 2 ** i - 1 )) ; echo -$(( 2 ** i )) ; echo -$(( 2 ** i + 1 )) ; echo $(( 2 ** i - 1 )) ; echo $(( 2 ** i )) ; echo $(( 2 ** i + 1 )) ; done | sort | uniq | sort -n >> "$OUTPUT" echo >> "$OUTPUT" echo "# Misc" >> "$OUTPUT" echo "\"kb\"" >> "$OUTPUT" echo "\"mb\"" >> "$OUTPUT" echo "\"gb\"" >> "$OUTPUT" echo "\"a0\"" >> "$OUTPUT" echo "\"a1\"" >> "$OUTPUT" echo "\"b\"" >> "$OUTPUT" echo "\"c\"" >> "$OUTPUT" echo "\"\\\"abcdef\\\"\"" >> "$OUTPUT" echo "\"\\\"azerty\\\"\"" >> "$OUTPUT" echo "\"\\\"qwertyqwerty\\\"\"" >> "$OUTPUT" echo "\"??\"" >> "$OUTPUT" echo "\"0?\"" >> "$OUTPUT" echo "\"?a\"" >> "$OUTPUT" echo >> "$OUTPUT"