Commit 25a0c78a authored by John van Groningen's avatar John van Groningen

also search in hierarchical modules of which the name starts with a lower case character

parent 9d14fbca
......@@ -315,21 +315,48 @@ FindIdentifiersInInput imp cleanid imports sym=:{repr} input positions
where
FindFrom :: !(List String) !(Input a) IdentifierPositionList -> (!Input a, !Symbol, !List String, !IdentifierPositionList) | ScanInput a;
FindFrom imports input positions
# (input,sym,linenr,charnr) = ScanInput input;
# (input,sym,linenr,charnr) = scan_module_symbol_from_input input;
| IdentSymId sym.repr
| sym.string == cleanid
# (input,sym,imports,positions) = FindFromIdent (sym.string :! imports) input positions
= (input,sym,imports,Pos linenr charnr positions)
= FindFromIdent (sym.string :! imports) input positions
= (input,sym, imports,positions);
FindFromIdent :: !(List String) !(Input a) IdentifierPositionList -> (!Input a, !Symbol, !List String, IdentifierPositionList) | ScanInput a;
FindFromIdent imports input positions
# (input,sym,_,_) = ScanInput input;
| sym.repr == ImportSymID
# (input,sym,_,positions) = FindImport Nil input positions
= (input,sym,imports,positions)
= (input, sym, imports,positions);
where
FindFromIdent :: !(List String) !(Input a) IdentifierPositionList -> (!Input a, !Symbol, !List String, IdentifierPositionList) | ScanInput a;
FindFromIdent imports input positions
# (input,sym,_,_) = ScanInput input;
| sym.repr == ImportSymID
# (input,sym,positions) = FindImport input positions
= (input,sym,imports,positions)
= (input, sym, imports,positions);
FindImport :: !(Input a) IdentifierPositionList -> (!Input a, !Symbol, !IdentifierPositionList) | ScanInput a;
FindImport input positions
# (input,sym,linenr,charnr) = ScanInput input
| IdentSymId sym.repr
| sym.string == cleanid
# (input,sym,positions) = FindImportIdent input positions
= (input,sym,Pos linenr charnr positions)
= FindImportIdent input positions
= (input,sym,positions);
where
FindImportIdent :: !(Input a) IdentifierPositionList -> (!Input a, !Symbol,IdentifierPositionList) | ScanInput a;
FindImportIdent input positions
# (input,sym,_,_) = ScanInput input
| sym.repr == CommaSymID
= FindImportIdentComma input positions
= (input,sym, positions);
FindImportIdentComma :: !(Input a) IdentifierPositionList -> (!Input a, !Symbol, IdentifierPositionList) | ScanInput a;
FindImportIdentComma input positions
# (input,sym,linenr,charnr) = ScanInput input
| IdentSymId sym.repr
| sym.string == cleanid
# (input,sym,positions) = FindImportIdent input positions
= (input,sym,Pos linenr charnr positions)
= FindImportIdent input positions
= (input,sym, positions)
FindImport :: !(List String) !(Input a) IdentifierPositionList -> (!Input a, !Symbol, !List String, !IdentifierPositionList) | ScanInput a;
FindImport imports input positions
......@@ -340,23 +367,23 @@ where
= (input,sym,imports,Pos linenr charnr positions)
= FindImportIdent (sym.string :! imports) input positions
= (input,sym,imports,positions);
FindImportIdent :: !(List String) !(Input a) IdentifierPositionList -> (!Input a, !Symbol, !List String,IdentifierPositionList) | ScanInput a;
FindImportIdent imports input positions
# (input,sym,_,_) = ScanInput input
| sym.repr == CommaSymID
= FindImportIdentComma imports input positions
= (input,sym, imports,positions);
FindImportIdentComma :: !(List String) !(Input a) IdentifierPositionList -> (!Input a, !Symbol, !List String,IdentifierPositionList) | ScanInput a;
FindImportIdentComma imports input positions
# (input,sym,linenr,charnr) = scan_module_symbol_from_input input
| IdentSymId sym.repr
| sym.string == cleanid
# (input,sym,imports,positions) = FindImportIdent (sym.string :! imports) input positions
= (input,sym,imports,Pos linenr charnr positions)
= FindImportIdent (sym.string :! imports) input positions
= (input,sym, imports, positions)
where
FindImportIdent :: !(List String) !(Input a) IdentifierPositionList -> (!Input a, !Symbol, !List String,IdentifierPositionList) | ScanInput a;
FindImportIdent imports input positions
# (input,sym,_,_) = ScanInput input
| sym.repr == CommaSymID
= FindImportIdentComma imports input positions
= (input,sym, imports,positions);
FindImportIdentComma :: !(List String) !(Input a) IdentifierPositionList -> (!Input a, !Symbol, !List String,IdentifierPositionList) | ScanInput a;
FindImportIdentComma imports input positions
# (input,sym,linenr,charnr) = scan_module_symbol_from_input input
| IdentSymId sym.repr
| sym.string == cleanid
# (input,sym,imports,positions) = FindImportIdent (sym.string :! imports) input positions
= (input,sym,imports,Pos linenr charnr positions)
= FindImportIdent (sym.string :! imports) input positions
= (input,sym, imports, positions)
FindDefinitionInInput :: !Bool !String !(List String) !(Input a) -> (!Input a, !List String,!IdentifierPositionList) | ScanInput a;
FindDefinitionInInput imp cleanid imports input
......@@ -792,7 +819,7 @@ find_module_symbol :: !Int !Int !String -> (!Bool,!Int,!Symbol);
find_module_symbol curpos curlen line
| curpos >= curlen
= (False, curpos, ErrorSym);
| UpperCase line.[curpos]
| UpperCase line.[curpos] || LowerCase line.[curpos]
= find_module_ident curpos (curpos+1) curlen line;
= FindSym curpos curlen line;
where
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment