• Places
    • Home
    • Graphs
    • Prefixes
  • Admin
    • Users
    • Settings
    • Plugins
    • Statistics
  • CPACK
    • Home
    • List packs
    • Submit pack
  • Repository
    • Load local file
    • Load from HTTP
    • Load from library
    • Remove triples
    • Clear repository
  • Query
    • YASGUI SPARQL Editor
    • Simple Form
    • SWISH Prolog shell
  • Help
    • Documentation
    • Tutorial
    • Roadmap
    • HTTP Services
  • Login

/home/swipl/lib/swipl/library/prolog_source.pl
AllApplicationManualNameSummaryHelp

  • swipl
    • library
      • error.pl -- Error generating support
      • apply.pl -- Apply predicates on a list
      • lists.pl -- List Manipulation
      • pairs.pl -- Operations on key-value lists
      • debug.pl -- Print debug messages and test assertions
      • broadcast.pl -- Event service
      • socket.pl -- Network socket (TCP and UDP) library
      • shlib.pl -- Utility library for loading foreign objects (DLLs, shared objects)
      • zip.pl -- Access resource ZIP archives
      • option.pl -- Option list processing
      • uid.pl -- User and group management on Unix systems
      • unix.pl -- Unix specific operations
      • syslog.pl -- Unix syslog interface
      • thread_pool.pl -- Resource bounded thread management
      • rbtrees.pl -- Red black trees
      • gensym.pl -- Generate unique symbols
      • readutil.pl -- Read utilities
      • url.pl -- Analysing and constructing URL
      • utf8.pl -- UTF-8 encoding/decoding on lists of character codes.
      • uri.pl -- Process URIs
      • memfile.pl
      • settings.pl -- Setting management
      • arithmetic.pl -- Extensible arithmetic
      • sgml.pl -- SGML, XML and HTML parser
      • iostream.pl -- Utilities to deal with streams
      • dialect.pl
      • quasi_quotations.pl -- Define Quasi Quotation syntax
      • pure_input.pl -- Pure Input from files and streams
      • time.pl -- Time and alarm library
      • main.pl -- Provide entry point for scripts
      • ssl.pl -- Secure Socket Layer (SSL) library
      • crypto.pl -- Cryptography and authentication library
      • filesex.pl -- Extended operations on files
      • doc_http.pl -- Documentation server
      • pldoc.pl -- Process source documentation
      • operators.pl -- Manage operators
      • prolog_source.pl -- Examine Prolog source-files
        • quasi_quotation_syntax/2
        • xref_open_source/2
        • xref_close_source/2
        • prolog_read_source_term/4
        • requires_library/2
        • load_quasi_quotation_syntax/2
        • read_source_term_at_location/3
        • prolog_open_source/2
        • prolog_close_source/1
        • prolog_canonical_source/2
        • file_name_on_path/2
        • file_alias_path/2
        • path_segments_atom/2
        • directory_source_files/3
      • base64.pl -- Base64 encoding and decoding
      • aggregate.pl -- Aggregation operators on backtrackable predicates
      • ordsets.pl -- Ordered set manipulation
      • oset.pl -- Ordered set manipulation
      • www_browser.pl -- Open a URL in the users browser
      • process.pl -- Create processes and redirect I/O
      • prolog_colour.pl -- Prolog syntax colouring support.
      • prolog_xref.pl -- Prolog cross-referencer data collection
      • solution_sequences.pl -- Modify solution sequences
      • nb_set.pl -- Non-backtrackable sets
      • terms.pl -- Term manipulation
      • apply_macros.pl -- Goal expansion rules to avoid meta-calling
      • modules.pl -- Module utility predicates
      • predicate_options.pl -- Access and analyse predicate options
      • prolog_clause.pl -- Get detailed source-information about a clause
      • occurs.pl -- Finding and counting sub-terms
      • listing.pl -- List programs and pretty print clauses
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • record.pl -- Access compound arguments by name
      • assoc.pl -- Binary associations
      • ugraphs.pl -- Graph manipulation library
      • xpath.pl -- Select nodes in an XML DOM
      • atom.pl -- Operations on atoms
      • ctypes.pl -- Character code classification
      • porter_stem.pl
      • backcomp.pl -- Backward compatibility
      • system.pl -- System utilities
      • prolog_pack.pl -- A package manager for Prolog
      • prolog_config.pl -- Provide configuration information
      • rdf.pl
      • rdf_parser.pl
      • rewrite.pl
      • quintus.pl -- Quintus compatibility
      • rdf_triple.pl -- Create triples from intermediate representation
      • sgml_write.pl -- XML/SGML writer module
      • xsdp_types.pl -- XML-Schema primitive types
      • thread.pl -- High level thread primitives
      • git.pl -- Run GIT commands
      • sha.pl -- SHA secure hashes
      • crypt.pl
      • persistency.pl -- Provide persistent dynamic predicates
      • c14n2.pl -- C14n2 canonical XML documents
      • dicts.pl -- Dict utilities
      • snowball.pl -- The Snowball multi-lingual stemmer library
      • sandbox.pl -- Sandboxed Prolog code
      • prolog_format.pl -- Analyse format specifications
      • when.pl -- Conditional coroutining
      • double_metaphone.pl -- Phonetic string matching
      • uuid.pl -- Universally Unique Identifier (UUID) Library
      • pcre.pl -- Perl compatible regular expression matching for SWI-Prolog
      • rdf_write.pl -- Write RDF/XML from a list of triples
      • date.pl -- Process dates and times
      • archive.pl -- Access several archive formats
      • csv.pl -- Process CSV (Comma-Separated Values) data
      • dif.pl -- The dif/2 constraint
      • nb_rbtrees.pl -- Non-backtrackable operations on red black trees
      • pengines.pl -- Pengines: Web Logic Programming Made Easy
      • charsio.pl -- I/O on Lists of Character Codes
      • term_to_json.pl
      • random.pl -- Random numbers
      • pengines_io.pl -- Provide Prolog I/O for HTML clients
      • yall.pl -- Lambda expressions
      • prolog_stream.pl -- A stream with Prolog callbacks
      • zlib.pl -- Zlib wrapper for SWI-Prolog
      • bdb.pl -- Berkeley DB interface
      • hash_stream.pl -- Maintain a hash on a stream
      • md5.pl -- MD5 hashes
      • pprint.pl -- Pretty Print Prolog terms
      • lazy_lists.pl -- Lazy list handling
      • edinburgh.pl -- Some traditional Edinburgh predicates
      • prolog_breakpoints.pl -- Manage Prolog break-points
      • wfs.pl -- Well Founded Semantics interface
      • qsave.pl -- Save current program as a state or executable
      • udp_broadcast.pl -- A UDP broadcast proxy
      • doc_latex.pl -- PlDoc LaTeX backend
      • varnumbers.pl -- Utilities for numbered terms
      • jpl.pl -- A Java interface for SWI Prolog 7.x
      • tty.pl -- Terminal operations
      • win_menu.pl -- Console window menu
      • edit.pl -- Editor interface
      • make.pl -- Reload modified source files
      • check.pl -- Consistency checking
      • prolog_codewalk.pl -- Prolog code walker
      • prolog_metainference.pl -- Infer meta-predicate properties
      • sort.pl
      • statistics.pl -- Get information about resource usage
      • prolog_code.pl -- Utilities for reasoning about code
      • unicode.pl -- Unicode string handling
      • editline.pl -- BSD libedit based command line editing
      • console_input.pl
      • readline.pl -- GNU readline interface
      • explain.pl -- Describe Prolog Terms
      • odbc.pl
      • prolog_stack.pl -- Examine the Prolog stack
      • optparse.pl -- command line parsing
      • heaps.pl -- heaps/priority queues
      • paxos.pl -- A Replicated Data Store
      • pdt_console.pl
      • base32.pl -- Base32 encoding and decoding
      • codesio.pl -- I/O on Lists of Character Codes
      • coinduction.pl -- Co-Logic Programming
      • plunit.pl -- Unit Testing
      • threadutil.pl -- Interactive thread utilities
      • xmlenc.pl -- XML encryption library
      • cgi.pl -- Read CGI parameters
      • table.pl
      • protobufs.pl -- Google's Protocol Buffers
      • prolog_autoload.pl -- Autoload all dependencies
      • prolog_trace.pl -- Print access to predicates
      • xmldsig.pl -- XML Digital signature
      • isub.pl -- isub: a string similarity measure
      • files.pl
      • streampool.pl -- Input multiplexing
      • writef.pl -- Old-style formatted write
      • yaml.pl -- Process YAML data
      • shell.pl -- Elementary shell commands
      • help.pl -- Text based manual
      • prolog_wrap.pl -- Wrapping predicates
      • prolog_history.pl -- Per-directory persistent commandline history
      • pwp.pl -- Prolog Well-formed Pages
      • doc_files.pl -- Create stand-alone documentation files
      • test_cover.pl -- Clause cover analysis
      • rlimit.pl
 read_source_term_at_location(+Stream, -Term, +Options) is semidet
Try to read a Prolog term form an arbitrary location inside a file. Due to Prolog's dynamic syntax, e.g., due to operator declarations that may change anywhere inside the file, this is theoreticaly impossible. Therefore, this predicate is fundamentally heuristic and may fail. This predicate is used by e.g., clause_info/4 and by PceEmacs to colour the current clause.

This predicate has two ways to find the right syntax. If the file is loaded, it can be passed the module using the module option. This deals with module files that define the used operators globally for the file. Second, there is a hook prolog:alternate_syntax/4 that can be used to temporary redefine the syntax.

The options below are processed in addition to the options of read_term/3. Note that the line and offset options are mutually exclusive.

line(+Line)
If present, start reading at line Line.
offset(+Characters)
Use seek/4 to go to the indicated location. See seek/4 for limitations of seeking in text-files.
module(+Module)
Use syntax from the given module. Default is the current `source module'.
operators(+List)
List of additional operator declarations to enforce while reading the term.
error(-Error)
If no correct parse can be found, unify Error with a term Offset:Message that indicates the (character) location of the error and the related message. Adding this option makes read_source_term_at_location/3 deterministic (det).
See also
- Use read_source_term/4 to read a file from the start.
- prolog:alternate_syntax/4 for locally scoped operators.
ClioPatria (version V3.1.1-33-g0aeb57d)